From 40fcfc9e8dbbc5c6f490028859d5bcc4501345a3 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 3 Jul 2024 12:12:53 +0000 Subject: [PATCH 01/46] MySQL foreign key action handling at the backend with warning generation --- internal/convert.go | 3 + internal/helpers.go | 8 ++ internal/mapping.go | 47 ++++++++ internal/mapping_test.go | 182 +++++++++++++++++++++++++++++ internal/reports/report_helpers.go | 114 +++++++++++------- internal/test_util.go | 4 + sources/common/infoschema.go | 18 +-- sources/common/toddl.go | 8 +- sources/common/toddl_test.go | 23 +++- sources/common/utils.go | 4 +- sources/mysql/infoschema.go | 33 ++++-- sources/mysql/infoschema_test.go | 57 +++++---- sources/mysql/mysqldump.go | 15 ++- sources/mysql/mysqldump_test.go | 22 ++-- spanner/ddl/ast.go | 14 ++- spanner/ddl/ast_test.go | 76 ++++++++---- webv2/api/schema.go | 13 ++- webv2/api/schema_test.go | 109 +++++++++++++++-- 18 files changed, 607 insertions(+), 143 deletions(-) diff --git a/internal/convert.go b/internal/convert.go index 97320fc55..06b610151 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -123,6 +123,9 @@ const ( ShardIdColumnAdded ShardIdColumnPrimaryKey ArrayTypeNotSupported + ForeignKeyOnDelete + ForeignKeyOnUpdate + // ForeignKeyActionsNotSupported ) const ( diff --git a/internal/helpers.go b/internal/helpers.go index 8c7bb4cdd..8e1c0eb41 100644 --- a/internal/helpers.go +++ b/internal/helpers.go @@ -182,3 +182,11 @@ func ResolveForeignKeyIds(schema map[string]schema.Table) { } } } + +func AddTableLevelIssue(tableIssues TableIssues, issue SchemaIssue) TableIssues { + tableIssues = TableIssues{ + TableLevelIssues: append(tableIssues.TableLevelIssues, issue), + ColumnLevelIssues: tableIssues.ColumnLevelIssues} + + return tableIssues +} diff --git a/internal/mapping.go b/internal/mapping.go index 1b669a5c8..da524f29a 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -142,6 +142,53 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { return getSpannerValidName(conv, srcFkName) } +//this function already exists in sources/common/utils.go but is private - can I reuse it by making it public? +// func findSchemaIssue(schemaissue []SchemaIssue, issue SchemaIssue) bool { +// ind := -1 +// for i := 0; i < len(schemaissue); i++ { +// if schemaissue[i] == issue { +// ind = i +// } +// } +// return ind!=-1 +// } + +// if source schema is not reading the rule (i.e. srcDeleteRule = "", then return the same) +func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { + srcDeleteRule = strings.ToUpper(srcDeleteRule) + if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { + return srcDeleteRule + } + + // if srcDeleteRule == "" { + // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) + // return "" + // } + if conv.SchemaIssues == nil { + conv.SchemaIssues = make(map[string]TableIssues) + } + conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnDelete) + return "NO ACTION" +} + +// Add comment +func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { + srcUpdateRule = strings.ToUpper(srcUpdateRule) + if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { + return srcUpdateRule + } + + // if srcUpdateRule == "" { + // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) + // return "" + // } + if conv.SchemaIssues == nil { + conv.SchemaIssues = make(map[string]TableIssues) + } + conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnUpdate) + return "NO ACTION" +} + // ToSpannerIndexName maps source index name to legal Spanner index name. // We need to make sure of the following things: // a) the new index name is legal diff --git a/internal/mapping_test.go b/internal/mapping_test.go index f2f672daa..601d7156f 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -308,6 +308,188 @@ func TestToSpannerForeignKey(t *testing.T) { } } +func TestToSpannerOnDelete(t *testing.T) { + conv := MakeConv() + type arg struct { + conv *Conv + srcTableId string + srcDeleteRule string + } + + tests := []struct { + name string // Name of test. + args arg + expectedOnDelete string + expectedIssues []SchemaIssue + }{ + //more compact + // {"restrict", arg{conv, "t", "RESTRICT"}, "NO ACTION", []SchemaIssue{ForeignKeyOnDelete}}, + + //more readable + { + name: "restrict", + args: arg{ + conv: conv, + srcTableId: "t1", + srcDeleteRule: "RESTRICT", + }, + expectedOnDelete: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, + }, { + name: "set default", + args: arg{ + conv: conv, + srcTableId: "t2", + srcDeleteRule: "SET DEFAULT", + }, + expectedOnDelete: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, + }, { + name: "set null", + args: arg{ + conv: conv, + srcTableId: "t3", + srcDeleteRule: "SET NULL", + }, + expectedOnDelete: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, + }, { + name: "cascade", + args: arg{ + conv: conv, + srcTableId: "t4", + srcDeleteRule: "CASCADE", + }, + expectedOnDelete: "CASCADE", + expectedIssues: nil, + }, { + name: "no action - lowercase", + args: arg{ + conv: conv, + srcTableId: "t5", + srcDeleteRule: "no action", + }, + expectedOnDelete: "NO ACTION", + expectedIssues: nil, + }, { + name: "random", + args: arg{ + conv: conv, + srcTableId: "t6", + srcDeleteRule: "xyz", + }, + expectedOnDelete: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, + }, { + name: "fk action not read - for sources other than MySQL and Postgres", + args: arg{ + conv: conv, + srcTableId: "t7", + srcDeleteRule: "", + }, + expectedOnDelete: "", + // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: nil, + }, + } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + spKeyOnDelete := ToSpannerOnDelete(tc.args.conv, tc.args.srcTableId, tc.args.srcDeleteRule) + assert.Equal(t, tc.expectedOnDelete, spKeyOnDelete, tc.name) + assert.Equal(t, tc.expectedIssues, conv.SchemaIssues[tc.args.srcTableId].TableLevelIssues) + }) + } +} + +func TestToSpannerOnUpdate(t *testing.T) { + conv := MakeConv() + type arg struct { + conv *Conv + srcTableId string + srcUpdateRule string + } + + tests := []struct { + name string // Name of test. + args arg + expectedOnUpdate string + expectedIssues []SchemaIssue + }{ + { + name: "restrict", + args: arg{ + conv: conv, + srcTableId: "t1", + srcUpdateRule: "RESTRICT", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, + }, { + name: "set default", + args: arg{ + conv: conv, + srcTableId: "t2", + srcUpdateRule: "SET DEFAULT", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, + }, { + name: "set null", + args: arg{ + conv: conv, + srcTableId: "t3", + srcUpdateRule: "SET NULL", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, + }, { + name: "cascade", + args: arg{ + conv: conv, + srcTableId: "t4", + srcUpdateRule: "CASCADE", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, + }, { + name: "no action - lowercase", + args: arg{ + conv: conv, + srcTableId: "t5", + srcUpdateRule: "no action", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: nil, + }, { + name: "random", + args: arg{ + conv: conv, + srcTableId: "t6", + srcUpdateRule: "xyz", + }, + expectedOnUpdate: "NO ACTION", + expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, + }, { + name: "fk action not read - for sources other than MySQL and Postgres", + args: arg{ + conv: conv, + srcTableId: "t7", + srcUpdateRule: "", + }, + expectedOnUpdate: "", + // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: nil, + }, + } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + spKeyOUpdate := ToSpannerOnUpdate(tc.args.conv, tc.args.srcTableId, tc.args.srcUpdateRule) + assert.Equal(t, tc.expectedOnUpdate, spKeyOUpdate, tc.name) + assert.Equal(t, tc.expectedIssues, conv.SchemaIssues[tc.args.srcTableId].TableLevelIssues) + }) + } +} + func TestGetSpannerID(t *testing.T) { conv := MakeConv() basicTests := []struct { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index fa1ad321f..733a266fc 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -26,8 +26,6 @@ import ( "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" ) - - // AnalyzeTables generates table reports for all processed tables. func AnalyzeTables(conv *internal.Conv, badWrites map[string]int64) (r []tableReport) { // Process tables in alphabetical order. This ensures that tables @@ -86,12 +84,12 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string var body []tableReportBody for _, p := range []struct { heading string - severity severity + severity Severity }{ {"Warning", warning}, {"Note", note}, {"Suggestion", suggestion}, - {"Error", errors}, + {"Error", Errors}, } { // Print out issues is alphabetical column order. var colNames []string @@ -100,7 +98,7 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } sort.Strings(colNames) l := []Issue{} - if p.severity == errors && len(tableLevelIssues) != 0 { + if p.severity == Errors && len(tableLevelIssues) != 0 { for _, issue := range tableLevelIssues { if issue == internal.RowLimitExceeded { toAppend := Issue{ @@ -114,11 +112,40 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if p.severity == warning { + // flag := false for _, spFk := range conv.SpSchema[tableId].ForeignKeys { srcFk, err := internal.GetSrcFkFromId(conv.SrcSchema[tableId].ForeignKeys, spFk.Id) if err != nil { continue } + // if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { + // flag = true + // issue := internal.ForeignKeyActionsNotSupported + // toAppend := Issue{ + // Category: IssueDB[issue].Category, + // Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), + // } + // l = append(l, toAppend) + // } + + if srcFk.OnDelete != spFk.OnDelete { + issue := internal.ForeignKeyOnDelete + toAppend := Issue{ + Category: IssueDB[issue].Category, + Description: fmt.Sprintf("Table '%s': ON DELETE action of Foreign Key '%s' mapped from %s to %s - %s", conv.SpSchema[tableId].Name, srcFk.Name, srcFk.OnDelete, spFk.OnDelete, IssueDB[issue].Brief), + } + l = append(l, toAppend) + } + + if srcFk.OnUpdate != spFk.OnUpdate { + issue := internal.ForeignKeyOnUpdate + toAppend := Issue{ + Category: IssueDB[issue].Category, + Description: fmt.Sprintf("Table '%s': ON UPDATE action of Foreign Key '%s' mapped from %s to %s - %s", conv.SpSchema[tableId].Name, srcFk.Name, srcFk.OnUpdate, spFk.OnUpdate, IssueDB[issue].Brief), + } + l = append(l, toAppend) + } + _, isChanged := internal.FixName(srcFk.Name) if isChanged && srcFk.Name != spFk.Name { toAppend := Issue{ @@ -157,7 +184,7 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string for _, colName := range colNames { colId, _ := internal.GetColIdFromSpName(conv.SpSchema[tableId].ColDefs, colName) for _, i := range issues[colId] { - if IssueDB[i].severity != p.severity { + if IssueDB[i].Severity != p.severity { continue } if IssueDB[i].batch { @@ -476,63 +503,66 @@ func fillRowStats(conv *internal.Conv, srcTable string, badWrites map[string]int // e.g. for timestamp description. var IssueDB = map[internal.SchemaIssue]struct { Brief string // Short description of issue. - severity severity + Severity Severity batch bool // Whether multiple instances of this issue are combined. Category string // Standarized issue type CategoryDescription string }{ - internal.DefaultValue: {Brief: "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete", severity: note, batch: true, Category: "MISSING_DEFAULT_VALUE_CONSTRAINTS"}, - internal.ForeignKey: {Brief: "Spanner does not support foreign keys", severity: warning, Category: "FOREIGN_KEY_USES"}, - internal.MultiDimensionalArray: {Brief: "Spanner doesn't support multi-dimensional arrays", severity: warning, Category: "MULTI_DIMENSIONAL_ARRAY_USES"}, - internal.NoGoodType: {Brief: "No appropriate Spanner type. The column will be made nullable in Spanner", severity: warning, Category: "INAPPROPRIATE_TYPE", + internal.DefaultValue: {Brief: "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete", Severity: note, batch: true, Category: "MISSING_DEFAULT_VALUE_CONSTRAINTS"}, + internal.ForeignKey: {Brief: "Spanner does not support foreign keys", Severity: warning, Category: "FOREIGN_KEY_USES"}, + internal.MultiDimensionalArray: {Brief: "Spanner doesn't support multi-dimensional arrays", Severity: warning, Category: "MULTI_DIMENSIONAL_ARRAY_USES"}, + internal.NoGoodType: {Brief: "No appropriate Spanner type. The column will be made nullable in Spanner", Severity: warning, Category: "INAPPROPRIATE_TYPE", CategoryDescription: "No appropriate Spanner type"}, - internal.Numeric: {Brief: "Spanner does not support numeric. This type mapping could lose precision and is not recommended for production use", severity: warning, Category: "NUMERIC_USES"}, - internal.NumericThatFits: {Brief: "Spanner does not support numeric, but this type mapping preserves the numeric's specified precision", severity: suggestion, Category: "NUMERIC_THAT_FITS"}, - internal.Decimal: {Brief: "Spanner does not support decimal. This type mapping could lose precision and is not recommended for production use", severity: warning, Category: "DECIMAL_USES"}, - internal.DecimalThatFits: {Brief: "Spanner does not support decimal, but this type mapping preserves the decimal's specified precision", severity: suggestion, Category: "DECIMAL_THAT_FITS"}, - internal.Serial: {Brief: "Spanner does not support autoincrementing types", severity: warning, Category: "AUTOINCREMENTING_TYPE_USES"}, - internal.AutoIncrement: {Brief: "Spanner does not support auto_increment attribute", severity: warning, Category: "AUTO_INCREMENT_ATTRIBUTE_USES"}, - internal.Timestamp: {Brief: "Spanner timestamp is closer to PostgreSQL timestamptz", severity: suggestion, batch: true, Category: "TIMESTAMP_SUGGESTION"}, - internal.Datetime: {Brief: "Spanner timestamp is closer to MySQL timestamp", severity: warning, batch: true, Category: "TIMESTAMP_WARNING"}, - internal.Time: {Brief: "Spanner does not support time/year types", severity: warning, batch: true, Category: "TIME_YEAR_TYPE_USES"}, - internal.Widened: {Brief: "Some columns will consume more storage in Spanner", severity: warning, batch: true, Category: "STORAGE_WARNING"}, - internal.StringOverflow: {Brief: "String overflow issue might occur as maximum supported length in Spanner is 2621440", severity: warning, Category: "STRING_OVERFLOW_WARNING"}, - internal.HotspotTimestamp: {Brief: "Timestamp Hotspot Occured", severity: warning, Category: "TIMESTAMP_HOTSPOT"}, - internal.HotspotAutoIncrement: {Brief: "Autoincrement Hotspot Occured", severity: warning, Category: "AUTOINCREMENT_HOTSPOT"}, - internal.InterleavedOrder: {Brief: "can be converted as Interleaved with Table", severity: suggestion, Category: "INTERLEAVE_TABLE_SUGGESTION", + internal.Numeric: {Brief: "Spanner does not support numeric. This type mapping could lose precision and is not recommended for production use", Severity: warning, Category: "NUMERIC_USES"}, + internal.NumericThatFits: {Brief: "Spanner does not support numeric, but this type mapping preserves the numeric's specified precision", Severity: suggestion, Category: "NUMERIC_THAT_FITS"}, + internal.Decimal: {Brief: "Spanner does not support decimal. This type mapping could lose precision and is not recommended for production use", Severity: warning, Category: "DECIMAL_USES"}, + internal.DecimalThatFits: {Brief: "Spanner does not support decimal, but this type mapping preserves the decimal's specified precision", Severity: suggestion, Category: "DECIMAL_THAT_FITS"}, + internal.Serial: {Brief: "Spanner does not support autoincrementing types", Severity: warning, Category: "AUTOINCREMENTING_TYPE_USES"}, + internal.AutoIncrement: {Brief: "Spanner does not support auto_increment attribute", Severity: warning, Category: "AUTO_INCREMENT_ATTRIBUTE_USES"}, + internal.Timestamp: {Brief: "Spanner timestamp is closer to PostgreSQL timestamptz", Severity: suggestion, batch: true, Category: "TIMESTAMP_SUGGESTION"}, + internal.Datetime: {Brief: "Spanner timestamp is closer to MySQL timestamp", Severity: warning, batch: true, Category: "TIMESTAMP_WARNING"}, + internal.Time: {Brief: "Spanner does not support time/year types", Severity: warning, batch: true, Category: "TIME_YEAR_TYPE_USES"}, + internal.Widened: {Brief: "Some columns will consume more storage in Spanner", Severity: warning, batch: true, Category: "STORAGE_WARNING"}, + internal.StringOverflow: {Brief: "String overflow issue might occur as maximum supported length in Spanner is 2621440", Severity: warning, Category: "STRING_OVERFLOW_WARNING"}, + internal.HotspotTimestamp: {Brief: "Timestamp Hotspot Occured", Severity: warning, Category: "TIMESTAMP_HOTSPOT"}, + internal.HotspotAutoIncrement: {Brief: "Autoincrement Hotspot Occured", Severity: warning, Category: "AUTOINCREMENT_HOTSPOT"}, + internal.InterleavedOrder: {Brief: "can be converted as Interleaved with Table", Severity: suggestion, Category: "INTERLEAVE_TABLE_SUGGESTION", CategoryDescription: "Some tables can be interleaved"}, - internal.RedundantIndex: {Brief: "Redundant Index", severity: warning, Category: "REDUNDANT_INDEX"}, - internal.AutoIncrementIndex: {Brief: "Auto increment column in Index can create a Hotspot", severity: warning, Category: "AUTO-INCREMENT_INDEX"}, - internal.InterleaveIndex: {Brief: "can be converted to an Interleave Index", severity: suggestion, Category: "INTERLEAVE_INDEX_SUGGESTION", + internal.RedundantIndex: {Brief: "Redundant Index", Severity: warning, Category: "REDUNDANT_INDEX"}, + internal.AutoIncrementIndex: {Brief: "Auto increment column in Index can create a Hotspot", Severity: warning, Category: "AUTO-INCREMENT_INDEX"}, + internal.InterleaveIndex: {Brief: "can be converted to an Interleave Index", Severity: suggestion, Category: "INTERLEAVE_INDEX_SUGGESTION", CategoryDescription: "Some columns can be converted to interleave index"}, - internal.InterleavedNotInOrder: {Brief: "if primary key order parameter is changed for the table", severity: suggestion, Category: "INTERLEAVED_NOT_IN_ORDER", + internal.InterleavedNotInOrder: {Brief: "if primary key order parameter is changed for the table", Severity: suggestion, Category: "INTERLEAVED_NOT_IN_ORDER", CategoryDescription: "Some tables can be interleaved with parent table if primary key order parameter is changed to 1"}, - internal.InterleavedAddColumn: {Brief: "Candidate for Interleaved Table", severity: suggestion, Category: "ADD_INTERLEAVED_COLUMN", + internal.InterleavedAddColumn: {Brief: "Candidate for Interleaved Table", Severity: suggestion, Category: "ADD_INTERLEAVED_COLUMN", CategoryDescription: "If there is some primary key added in table, it can be interleaved"}, - internal.IllegalName: {Brief: "Names must adhere to the spanner regular expression {a-z|A-Z}[{a-z|A-Z|0-9|_}+]", severity: warning, Category: "ILLEGAL_NAME"}, - internal.InterleavedRenameColumn: {Brief: "Candidate for Interleaved Table", severity: suggestion, Category: "RENAME_INTERLEAVED_COLUMN_PRIMARY_KEY", + internal.IllegalName: {Brief: "Names must adhere to the spanner regular expression {a-z|A-Z}[{a-z|A-Z|0-9|_}+]", Severity: warning, Category: "ILLEGAL_NAME"}, + internal.InterleavedRenameColumn: {Brief: "Candidate for Interleaved Table", Severity: suggestion, Category: "RENAME_INTERLEAVED_COLUMN_PRIMARY_KEY", CategoryDescription: "If primary key is renamed in table to match the foreign key, the table can be interleaved"}, - internal.InterleavedChangeColumnSize: {Brief: "Candidate for Interleaved Table", severity: suggestion, Category: "CHANGE_INTERLEAVED_COLUMN_SIZE", + internal.InterleavedChangeColumnSize: {Brief: "Candidate for Interleaved Table", Severity: suggestion, Category: "CHANGE_INTERLEAVED_COLUMN_SIZE", CategoryDescription: "If column size of this table's primary key is changed to match the foreign key, the table can be interleaved"}, - internal.RowLimitExceeded: {Brief: "Non key columns exceed the spanner limit of 1600 MB. Please modify the column sizes", severity: errors, Category: "ROW_LIMIT_EXCEEDED"}, - internal.ShardIdColumnAdded: {Brief: "column was added because this is a sharded migration and this column cannot be dropped", severity: note, Category: "SHARD_ID_COLUMN_ADDED", + internal.RowLimitExceeded: {Brief: "Non key columns exceed the spanner limit of 1600 MB. Please modify the column sizes", Severity: Errors, Category: "ROW_LIMIT_EXCEEDED"}, + internal.ShardIdColumnAdded: {Brief: "column was added because this is a sharded migration and this column cannot be dropped", Severity: note, Category: "SHARD_ID_COLUMN_ADDED", CategoryDescription: "Shard id column was added because this is a sharded migration and that column couldn't be dropped"}, - internal.ShardIdColumnPrimaryKey: {Brief: "column is not a part of primary key. You may go to the Primary Key tab and add this column as a part of Primary Key", severity: suggestion, Category: "SHARD_ID_ADD_COLUMN_PRIMARY_KEY", + internal.ShardIdColumnPrimaryKey: {Brief: "column is not a part of primary key. You may go to the Primary Key tab and add this column as a part of Primary Key", Severity: suggestion, Category: "SHARD_ID_ADD_COLUMN_PRIMARY_KEY", CategoryDescription: "Shard id column is not a part of primary key. Please add it to primary key"}, internal.MissingPrimaryKey: {Category: "MISSING_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + // internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } -type severity int +type Severity int const ( - warning severity = iota + warning Severity = iota note suggestion - errors + Errors ) // AnalyzeCols returns information about the quality of schema mappings @@ -551,9 +581,9 @@ func AnalyzeCols(conv *internal.Conv, tableId string) (map[string][]internal.Sch m[c] = l for _, i := range l { switch { - case IssueDB[i].severity == warning && IssueDB[i].batch: + case IssueDB[i].Severity == warning && IssueDB[i].batch: warningBatcher[i] = true - case IssueDB[i].severity == warning && !IssueDB[i].batch: + case IssueDB[i].Severity == warning && !IssueDB[i].batch: colWarning = true } } diff --git a/internal/test_util.go b/internal/test_util.go index 161f06f15..861ff15f4 100644 --- a/internal/test_util.go +++ b/internal/test_util.go @@ -76,6 +76,8 @@ func assertSpFk(conv *Conv, t *testing.T, tableId string, expectedFks, actualFks assert.Equal(t, nil, err) expectedFks[i].ReferColumnIds[j] = colId } + assert.Equal(t, expectedFks[i].OnDelete, actualFks[i].OnDelete) + assert.Equal(t, expectedFks[i].OnUpdate, actualFks[i].OnUpdate) } assert.ElementsMatch(t, expectedFks, actualFks) } @@ -178,6 +180,8 @@ func assertSrcFk(t *testing.T, conv *Conv, tableId string, expectedFks, actualFk assert.NotEqual(t, colId, "") expectedFks[i].ReferColumnIds[j] = colId } + assert.Equal(t, expectedFks[i].OnDelete, actualFks[i].OnDelete) + assert.Equal(t, expectedFks[i].OnUpdate, actualFks[i].OnUpdate) } assert.ElementsMatch(t, expectedFks, actualFks) } diff --git a/sources/common/infoschema.go b/sources/common/infoschema.go index 7406c7b73..09f5cba11 100644 --- a/sources/common/infoschema.go +++ b/sources/common/infoschema.go @@ -52,10 +52,12 @@ type SchemaAndName struct { // FkConstraint contains foreign key constraints type FkConstraint struct { - Name string - Table string - Refcols []string - Cols []string + Name string + Table string + Refcols []string + Cols []string + OnDelete string + OnUpdate string } type InfoSchemaInterface interface { @@ -63,20 +65,20 @@ type InfoSchemaInterface interface { ProcessData(conv *internal.Conv, infoSchema InfoSchema, additionalAttributes internal.AdditionalDataAttributes) SetRowStats(conv *internal.Conv, infoSchema InfoSchema) processTable(conv *internal.Conv, table SchemaAndName, infoSchema InfoSchema) (schema.Table, error) - GetIncludedSrcTablesFromConv(conv *internal.Conv) (schemaToTablesMap map[string]internal.SchemaDetails, err error) + GetIncludedSrcTablesFromConv(conv *internal.Conv) (schemaToTablesMap map[string]internal.SchemaDetails, err error) } -type InfoSchemaImpl struct {} +type InfoSchemaImpl struct{} type ProcessSchemaInterface interface { ProcessSchema(conv *internal.Conv, infoSchema InfoSchema, numWorkers int, attributes internal.AdditionalSchemaAttributes, s SchemaToSpannerInterface, uo UtilsOrderInterface, is InfoSchemaInterface) error } -type ProcessSchemaImpl struct {} +type ProcessSchemaImpl struct{} // ProcessSchema performs schema conversion for source database // 'db'. Information schema tables are a broadly supported ANSI standard, // and we use them to obtain source database's schema information. -func (ps* ProcessSchemaImpl) ProcessSchema(conv *internal.Conv, infoSchema InfoSchema, numWorkers int, attributes internal.AdditionalSchemaAttributes, s SchemaToSpannerInterface, uo UtilsOrderInterface, is InfoSchemaInterface) error { +func (ps *ProcessSchemaImpl) ProcessSchema(conv *internal.Conv, infoSchema InfoSchema, numWorkers int, attributes internal.AdditionalSchemaAttributes, s SchemaToSpannerInterface, uo UtilsOrderInterface, is InfoSchemaInterface) error { tableCount, err := is.GenerateSrcSchema(conv, infoSchema, numWorkers) if err != nil { diff --git a/sources/common/toddl.go b/sources/common/toddl.go index bb66b2836..e61a6621c 100644 --- a/sources/common/toddl.go +++ b/sources/common/toddl.go @@ -54,7 +54,7 @@ type SchemaToSpannerInterface interface { SchemaToSpannerDDLHelper(conv *internal.Conv, toddl ToDdl, srcTable schema.Table, isRestore bool) error } -type SchemaToSpannerImpl struct {} +type SchemaToSpannerImpl struct{} // SchemaToSpannerDDL performs schema conversion from the source DB schema to // Spanner. It uses the source schema in conv.SrcSchema, and writes @@ -132,7 +132,7 @@ func (ss *SchemaToSpannerImpl) SchemaToSpannerDDLHelper(conv *internal.Conv, tod Comment: "From: " + quoteIfNeeded(srcCol.Name) + " " + srcCol.Type.Print(), Id: srcColId, AutoGen: ddl.AutoGenCol{ - Name: "", + Name: "", GenerationType: "", }, } @@ -214,6 +214,8 @@ func CvtForeignKeysHelper(conv *internal.Conv, spTableName string, srcTableId st spReferColIds = append(spReferColIds, srcKey.ReferColumnIds[i]) } spKeyName := internal.ToSpannerForeignKey(conv, srcKey.Name) + spDeleteRule := internal.ToSpannerOnDelete(conv, srcTableId, srcKey.OnDelete) + spUpdateRule := internal.ToSpannerOnUpdate(conv, srcTableId, srcKey.OnUpdate) spKey := ddl.Foreignkey{ Name: spKeyName, @@ -221,6 +223,8 @@ func CvtForeignKeysHelper(conv *internal.Conv, spTableName string, srcTableId st ReferTableId: srcKey.ReferTableId, ReferColumnIds: spReferColIds, Id: srcKey.Id, + OnDelete: spDeleteRule, + OnUpdate: spUpdateRule, } return spKey, nil } diff --git a/sources/common/toddl_test.go b/sources/common/toddl_test.go index 6aa02d444..296a8ce21 100644 --- a/sources/common/toddl_test.go +++ b/sources/common/toddl_test.go @@ -106,7 +106,7 @@ func Test_cvtForeignKeys(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, }, "t2": { Name: "table2", @@ -117,7 +117,8 @@ func Test_cvtForeignKeys(t *testing.T) { }, }, }, - UsedNames: map[string]bool{}, + UsedNames: map[string]bool{}, + SchemaIssues: map[string]internal.TableIssues{}, } spTableName := "table1" srcTableId := "t1" @@ -131,6 +132,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", + OnDelete: "RESTRICT", + OnUpdate: "CASCADE", }, } @@ -140,6 +143,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", + OnDelete: "NO ACTION", + OnUpdate: "NO ACTION", }, } @@ -287,7 +292,7 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, }, "t2": { Name: "table2", @@ -296,6 +301,7 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ColDefs: map[string]schema.Column{ "c3": {Name: "c", Id: "c3", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, }, + ForeignKeys: []schema.ForeignKey{}, }, }, UsedNames: map[string]bool{}, @@ -306,7 +312,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ColDefs: map[string]ddl.ColumnDef{ "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: 255}}, }, - Id: "t2", + Id: "t2", + ForeignKeys: []ddl.Foreignkey{}, }, }, } @@ -322,6 +329,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", + OnDelete: "RESTRICT", + OnUpdate: "CASCADE", }, } resultForeignKey := []ddl.Foreignkey{ @@ -331,6 +340,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", + OnDelete: "NO ACTION", + OnUpdate: "NO ACTION", }, { Name: "fk1", @@ -338,6 +349,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", + OnDelete: "NO ACTION", + OnUpdate: "NO ACTION", }, } spKey := []ddl.Foreignkey{{ @@ -346,6 +359,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", + OnDelete: "NO ACTION", + OnUpdate: "NO ACTION", }, } diff --git a/sources/common/utils.go b/sources/common/utils.go index 3d8645723..d635d8344 100644 --- a/sources/common/utils.go +++ b/sources/common/utils.go @@ -29,13 +29,13 @@ type UtilsOrderInterface interface { initPrimaryKeyOrder(conv *internal.Conv) initIndexOrder(conv *internal.Conv) } -type UtilsOrderImpl struct {} +type UtilsOrderImpl struct{} type RunParallelTasksInterface[I any, O any] interface { RunParallelTasks(input []I, numWorkers int, f func(i I, mutex *sync.Mutex) TaskResult[O], fastExit bool) ([]TaskResult[O], error) } -type RunParallelTasksImpl[I any, O any] struct {} +type RunParallelTasksImpl[I any, O any] struct{} // ToNotNull returns true if a column is not nullable and false if it is. func ToNotNull(conv *internal.Conv, isNullable string) bool { diff --git a/sources/mysql/infoschema.go b/sources/mysql/infoschema.go index 9a063f297..0f75ce979 100644 --- a/sources/mysql/infoschema.go +++ b/sources/mysql/infoschema.go @@ -264,16 +264,21 @@ func (isi InfoSchemaImpl) GetConstraints(conv *internal.Conv, table common.Schem // of the Spanner migration tool focuses on a specific database) and so we can't handle // them effectively. func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.SchemaAndName) (foreignKeys []schema.ForeignKey, err error) { - q := `SELECT k.REFERENCED_TABLE_NAME,k.COLUMN_NAME,k.REFERENCED_COLUMN_NAME,k.CONSTRAINT_NAME - FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t - INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS k - ON t.CONSTRAINT_NAME = k.CONSTRAINT_NAME - AND t.CONSTRAINT_SCHEMA = k.CONSTRAINT_SCHEMA - AND t.TABLE_NAME = k.TABLE_NAME + q := `SELECT k.REFERENCED_TABLE_NAME, + k.COLUMN_NAME, + k.REFERENCED_COLUMN_NAME, + k.CONSTRAINT_NAME, + r.DELETE_RULE, + r.UPDATE_RULE + FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS r + INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS k + ON r.CONSTRAINT_NAME = k.CONSTRAINT_NAME + AND r.CONSTRAINT_SCHEMA = k.CONSTRAINT_SCHEMA + AND r.TABLE_NAME = k.TABLE_NAME + AND r.REFERENCED_TABLE_NAME = k.REFERENCED_TABLE_NAME AND k.REFERENCED_TABLE_SCHEMA = k.TABLE_SCHEMA - WHERE k.TABLE_SCHEMA = ? - AND k.TABLE_NAME = ? - AND t.CONSTRAINT_TYPE = "FOREIGN KEY" + WHERE k.TABLE_SCHEMA = ? + AND k.TABLE_NAME = ? ORDER BY k.REFERENCED_TABLE_NAME, k.COLUMN_NAME, @@ -283,12 +288,12 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem return nil, err } defer rows.Close() - var col, refCol, refTable, fKeyName string + var col, refCol, refTable, fKeyName, OnDelete, OnUpdate string fKeys := make(map[string]common.FkConstraint) var keyNames []string for rows.Next() { - err := rows.Scan(&refTable, &col, &refCol, &fKeyName) + err := rows.Scan(&refTable, &col, &refCol, &fKeyName, &OnDelete, &OnUpdate) if err != nil { conv.Unexpected(fmt.Sprintf("Can't scan: %v", err)) continue @@ -298,9 +303,11 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem fk.Cols = append(fk.Cols, col) fk.Refcols = append(fk.Refcols, refCol) fKeys[fKeyName] = fk + fk.OnDelete = OnDelete + fk.OnUpdate = OnUpdate continue } - fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: refTable, Refcols: []string{refCol}, Cols: []string{col}} + fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: refTable, Refcols: []string{refCol}, Cols: []string{col}, OnDelete: OnDelete, OnUpdate: OnUpdate} keyNames = append(keyNames, fKeyName) } sort.Strings(keyNames) @@ -312,6 +319,8 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem ColumnNames: fKeys[k].Cols, ReferTableName: fKeys[k].Table, ReferColumnNames: fKeys[k].Refcols, + OnDelete: fKeys[k].OnDelete, + OnUpdate: fKeys[k].OnUpdate, }) } return foreignKeys, nil diff --git a/sources/mysql/infoschema_test.go b/sources/mysql/infoschema_test.go index fde3f5ff0..89f4f5ae4 100644 --- a/sources/mysql/infoschema_test.go +++ b/sources/mysql/infoschema_test.go @@ -57,11 +57,11 @@ func TestProcessSchemaMYSQL(t *testing.T) { {"user_id", "PRIMARY KEY"}, {"ref", "FOREIGN KEY"}}, }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "user"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"test", "ref", "id", "fk_test"}, + {"test", "ref", "id", "fk_test", "SET NULL", "CASCADE"}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -86,12 +86,13 @@ func TestProcessSchemaMYSQL(t *testing.T) { {"productid", "PRIMARY KEY"}, {"userid", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "cart"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"product", "productid", "product_id", "fk_test2"}, - {"user", "userid", "user_id", "fk_test3"}}, + {"product", "productid", "product_id", "fk_test2", "NO ACTION", "NO ACTION"}, + {"user", "userid", "user_id", "fk_test3", "RESTRICT", "SET NULL"}, + }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "cart"}, @@ -120,9 +121,9 @@ func TestProcessSchemaMYSQL(t *testing.T) { rows: [][]driver.Value{ {"product_id", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "product"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "product"}, @@ -143,11 +144,11 @@ func TestProcessSchemaMYSQL(t *testing.T) { cols: []string{"column_name", "constraint_type"}, rows: [][]driver.Value{{"id", "PRIMARY KEY"}, {"id", "FOREIGN KEY"}}, }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, - rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4"}, - {"test_ref", "txt", "ref_txt", "fk_test4"}}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, + rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", "CASCADE", "RESTRICT"}, + {"test_ref", "txt", "ref_txt", "fk_test4", "CASCADE", "RESTRICT"}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, @@ -188,9 +189,9 @@ func TestProcessSchemaMYSQL(t *testing.T) { {"ref_id", "PRIMARY KEY"}, {"ref_txt", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test_ref"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test_ref"}, @@ -219,13 +220,15 @@ func TestProcessSchemaMYSQL(t *testing.T) { "quantity": schema.Column{Name: "quantity", Type: schema.Type{Name: "bigint", Mods: []int64{64}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "userid": schema.Column{Name: "userid", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: "", OnUpdate: "", Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnDelete: "", OnUpdate: "", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION", Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: "SET NULL", OnDelete: "RESTRICT", Id: ""}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}, schema.Key{ColId: "productid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index3", Unique: true, Keys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}}, Id: ""}, "product": schema.Table{Name: "product", Schema: "test", ColIds: []string{"product_id", "product_name"}, ColDefs: map[string]schema.Column{ "product_id": schema.Column{Name: "product_id", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "product_name": schema.Column{Name: "product_name", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, - PrimaryKeys: []schema.Key{schema.Key{ColId: "product_id", Desc: false, Order: 0}}, ForeignKeys: []schema.ForeignKey(nil), Indexes: []schema.Index(nil), Id: ""}, + PrimaryKeys: []schema.Key{schema.Key{ColId: "product_id", Desc: false, Order: 0}}, + ForeignKeys: []schema.ForeignKey(nil), + Indexes: []schema.Index(nil), Id: ""}, "test": schema.Table{Name: "test", Schema: "test", ColIds: []string{"id", "s", "txt", "b", "bs", "bl", "c", "c8", "d", "dec", "f8", "f4", "i8", "i4", "i2", "si", "ts", "tz", "vc", "vc6"}, ColDefs: map[string]schema.Column{ "b": schema.Column{Name: "b", Type: schema.Type{Name: "boolean", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "bl": schema.Column{Name: "bl", Type: schema.Type{Name: "blob", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, @@ -247,17 +250,23 @@ func TestProcessSchemaMYSQL(t *testing.T) { "tz": schema.Column{Name: "tz", Type: schema.Type{Name: "timestamp", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "vc": schema.Column{Name: "vc", Type: schema.Type{Name: "varchar", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "vc6": schema.Column{Name: "vc6", Type: schema.Type{Name: "varchar", Mods: []int64{6}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, - PrimaryKeys: []schema.Key{schema.Key{ColId: "id", Desc: false, Order: 0}}, ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnDelete: "", OnUpdate: "", Id: ""}}, Indexes: []schema.Index(nil), Id: ""}, + PrimaryKeys: []schema.Key{schema.Key{ColId: "id", Desc: false, Order: 0}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: "RESTRICT", OnDelete: "CASCADE", Id: ""}}, + Indexes: []schema.Index(nil), Id: ""}, "test_ref": schema.Table{Name: "test_ref", Schema: "test", ColIds: []string{"ref_id", "ref_txt", "abc"}, ColDefs: map[string]schema.Column{ "abc": schema.Column{Name: "abc", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "ref_id": schema.Column{Name: "ref_id", Type: schema.Type{Name: "bigint", Mods: []int64{64}, ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "ref_txt": schema.Column{Name: "ref_txt", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, - PrimaryKeys: []schema.Key{schema.Key{ColId: "ref_id", Desc: false, Order: 0}, schema.Key{ColId: "ref_txt", Desc: false, Order: 0}}, ForeignKeys: []schema.ForeignKey(nil), Indexes: []schema.Index(nil), Id: ""}, + PrimaryKeys: []schema.Key{schema.Key{ColId: "ref_id", Desc: false, Order: 0}, schema.Key{ColId: "ref_txt", Desc: false, Order: 0}}, + ForeignKeys: []schema.ForeignKey(nil), + Indexes: []schema.Index(nil), Id: ""}, "user": schema.Table{Name: "user", Schema: "test", ColIds: []string{"user_id", "name", "ref"}, ColDefs: map[string]schema.Column{ "name": schema.Column{Name: "name", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "ref": schema.Column{Name: "ref", Type: schema.Type{Name: "bigint", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "user_id": schema.Column{Name: "user_id", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, - PrimaryKeys: []schema.Key{schema.Key{ColId: "user_id", Desc: false, Order: 0}}, ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnDelete: "", OnUpdate: "", Id: ""}}, Indexes: []schema.Index(nil), Id: ""}} + PrimaryKeys: []schema.Key{schema.Key{ColId: "user_id", Desc: false, Order: 0}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: "CASCADE", OnDelete: "SET NULL", Id: ""}}, + Indexes: []schema.Index(nil), Id: ""}} internal.AssertSrcSchema(t, conv, expectedSchema, conv.SrcSchema) assert.Equal(t, int64(0), conv.Unexpecteds()) } @@ -340,9 +349,9 @@ func TestProcessData_MultiCol(t *testing.T) { cols: []string{"column_name", "constraint_type"}, rows: [][]driver.Value{}, // No primary key --> force generation of synthetic key. }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, @@ -429,9 +438,9 @@ func TestProcessSchema_Sharded(t *testing.T) { cols: []string{"column_name", "constraint_type"}, rows: [][]driver.Value{}, // No primary key --> force generation of synthetic key. }, { - query: "SELECT (.+) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, - cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, diff --git a/sources/mysql/mysqldump.go b/sources/mysql/mysqldump.go index 149f3d4b4..6301376ee 100644 --- a/sources/mysql/mysqldump.go +++ b/sources/mysql/mysqldump.go @@ -357,14 +357,25 @@ func toForeignKeys(conv *internal.Conv, fk *ast.Constraint) (fkey schema.Foreign colNames = append(colNames, column.Column.Name.String()) referColNames = append(referColNames, referColumns[i].Column.Name.String()) } + onDelete := fk.Refer.OnDelete.ReferOpt.String() + onUpdate := fk.Refer.OnUpdate.ReferOpt.String() + + if onDelete == "" { + onDelete = "NO ACTION" + } + + if onUpdate == "" { + onUpdate = "NO ACTION" + } + fkey = schema.ForeignKey{ Id: internal.GenerateForeignkeyId(), Name: fk.Name, ColumnNames: colNames, ReferTableName: referTable, ReferColumnNames: referColNames, - OnDelete: fk.Refer.OnDelete.ReferOpt.String(), - OnUpdate: fk.Refer.OnUpdate.ReferOpt.String()} + OnDelete: onDelete, + OnUpdate: onUpdate} return fkey } diff --git a/sources/mysql/mysqldump_test.go b/sources/mysql/mysqldump_test.go index adf9c634d..4bbff11eb 100644 --- a/sources/mysql/mysqldump_test.go +++ b/sources/mysql/mysqldump_test.go @@ -168,7 +168,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { { name: "Create table with single foreign key", input: "CREATE TABLE test (a SMALLINT, b text, PRIMARY KEY (a) );\n" + - "CREATE TABLE test2 (c SMALLINT, d SMALLINT, CONSTRAINT `fk_test` FOREIGN KEY (d) REFERENCES test (a) ON DELETE RESTRICT ON UPDATE CASCADE );", + "CREATE TABLE test2 (c SMALLINT, d SMALLINT, CONSTRAINT `fk_test` FOREIGN KEY (d) REFERENCES test (a) ON DELETE RESTRICT ON UPDATE CASCADE);", expectedSchema: map[string]ddl.CreateTable{ "test": { Name: "test", @@ -187,7 +187,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": {Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Create table with multiple foreign key test constraint name", @@ -221,8 +221,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}, - ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}, + ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Alter table add foreign key", @@ -247,7 +247,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Alter table add constraint foreign key", @@ -272,13 +272,13 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Create table with multiple foreign keys", input: "CREATE TABLE test (a SMALLINT, b text, PRIMARY KEY (a) );\n" + "CREATE TABLE test2 (c SMALLINT, d text, PRIMARY KEY (c) );\n" + - "CREATE TABLE test3 (e SMALLINT, f SMALLINT, g text, CONSTRAINT `fk_test` FOREIGN KEY (e) REFERENCES test (a) ON DELETE RESTRICT ON UPDATE CASCADE,CONSTRAINT `fk_test2` FOREIGN KEY (f) REFERENCES test2 (c) ON DELETE RESTRICT ON UPDATE CASCADE );", + "CREATE TABLE test3 (e SMALLINT, f SMALLINT, g text, CONSTRAINT `fk_test` FOREIGN KEY (e) REFERENCES test (a) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `fk_test2` FOREIGN KEY (f) REFERENCES test2 (c) ON DELETE RESTRICT);", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -306,13 +306,13 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Create table with single foreign key multiple column", input: "CREATE TABLE test (a SMALLINT, b SMALLINT, c text, PRIMARY KEY (a) );\n" + - "CREATE TABLE test2 (e SMALLINT, f SMALLINT, g text, CONSTRAINT `fk_test` FOREIGN KEY (e,f) REFERENCES test (a,b) ON DELETE RESTRICT ON UPDATE CASCADE );", + "CREATE TABLE test2 (e SMALLINT, f SMALLINT, g text, CONSTRAINT `fk_test` FOREIGN KEY (e,f) REFERENCES test (a,b) ON UPDATE CASCADE );", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -334,7 +334,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, }, { name: "Create table with index keys", diff --git a/spanner/ddl/ast.go b/spanner/ddl/ast.go index 425100ad6..2174f8976 100644 --- a/spanner/ddl/ast.go +++ b/spanner/ddl/ast.go @@ -278,6 +278,8 @@ type Foreignkey struct { ReferTableId string ReferColumnIds []string Id string + OnDelete string + OnUpdate string } // PrintForeignKey unparses the foreign keys. @@ -291,7 +293,11 @@ func (k Foreignkey) PrintForeignKey(c Config) string { if k.Name != "" { s = fmt.Sprintf("CONSTRAINT %s ", c.quote(k.Name)) } - return s + fmt.Sprintf("FOREIGN KEY (%s) REFERENCES %s (%s)", strings.Join(cols, ", "), c.quote(k.ReferTableId), strings.Join(referCols, ", ")) + s = s + fmt.Sprintf("FOREIGN KEY (%s) REFERENCES %s (%s)", strings.Join(cols, ", "), c.quote(k.ReferTableId), strings.Join(referCols, ", ")) + if k.OnDelete != "" { + s = s + fmt.Sprintf(" ON DELETE %s", k.OnDelete) + } + return s } // CreateTable encodes the following DDL definition: @@ -464,7 +470,11 @@ func (k Foreignkey) PrintForeignKeyAlterTable(spannerSchema Schema, c Config, ta if k.Name != "" { s = fmt.Sprintf("CONSTRAINT %s ", c.quote(k.Name)) } - return fmt.Sprintf("ALTER TABLE %s ADD %sFOREIGN KEY (%s) REFERENCES %s (%s)", c.quote(spannerSchema[tableId].Name), s, strings.Join(cols, ", "), c.quote(spannerSchema[k.ReferTableId].Name), strings.Join(referCols, ", ")) + s = fmt.Sprintf("ALTER TABLE %s ADD %sFOREIGN KEY (%s) REFERENCES %s (%s)", c.quote(spannerSchema[tableId].Name), s, strings.Join(cols, ", "), c.quote(spannerSchema[k.ReferTableId].Name), strings.Join(referCols, ", ")) + if k.OnDelete != "" { + s = s + fmt.Sprintf(" ON DELETE %s", k.OnDelete) + } + return s } // Schema stores a map of table names and Tables. diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index 23cbac4bc..e5f39dd3d 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -327,6 +327,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1", "ref_c2"}, "1", + "NO ACTION", + "NO ACTION", }, { "", @@ -334,6 +336,17 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1"}, "1", + "CASCADE", + "NO ACTION", + }, + { + "fk_test", + []string{"c1", "c2"}, + "ref_table", + []string{"ref_c1", "ref_c2"}, + "1", + "", + "", }, } tests := []struct { @@ -343,13 +356,16 @@ func TestPrintForeignKey(t *testing.T) { expected string fk Foreignkey }{ - {"no quote", false, "", "CONSTRAINT fk_test FOREIGN KEY (c1, c2) REFERENCES ref_table (ref_c1, ref_c2)", fk[0]}, - {"quote", true, "", "CONSTRAINT `fk_test` FOREIGN KEY (`c1`, `c2`) REFERENCES `ref_table` (`ref_c1`, `ref_c2`)", fk[0]}, - {"no constraint name", false, "", "FOREIGN KEY (c1) REFERENCES ref_table (ref_c1)", fk[1]}, - {"quote PG", true, constants.DIALECT_POSTGRESQL, "CONSTRAINT fk_test FOREIGN KEY (c1, c2) REFERENCES ref_table (ref_c1, ref_c2)", fk[0]}, + {"no quote", false, "", "CONSTRAINT fk_test FOREIGN KEY (c1, c2) REFERENCES ref_table (ref_c1, ref_c2) ON DELETE NO ACTION", fk[0]}, + {"quote", true, "", "CONSTRAINT `fk_test` FOREIGN KEY (`c1`, `c2`) REFERENCES `ref_table` (`ref_c1`, `ref_c2`) ON DELETE NO ACTION", fk[0]}, + {"no constraint name", false, "", "FOREIGN KEY (c1) REFERENCES ref_table (ref_c1) ON DELETE CASCADE", fk[1]}, + {"quote PG", true, constants.DIALECT_POSTGRESQL, "CONSTRAINT fk_test FOREIGN KEY (c1, c2) REFERENCES ref_table (ref_c1, ref_c2) ON DELETE NO ACTION", fk[0]}, + {"foreign key constraints not supported i.e. dont print ON DELETE", false, "", "CONSTRAINT fk_test FOREIGN KEY (c1, c2) REFERENCES ref_table (ref_c1, ref_c2)", fk[2]}, } for _, tc := range tests { - assert.Equal(t, tc.expected, tc.fk.PrintForeignKey(Config{ProtectIds: tc.protectIds, SpDialect: tc.spDialect})) + t.Run(tc.name, func(t *testing.T) { + assert.Equal(t, tc.expected, tc.fk.PrintForeignKey(Config{ProtectIds: tc.protectIds, SpDialect: tc.spDialect})) + }) } } @@ -370,6 +386,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4", "c5"}, "f1", + "CASCADE", + "NO ACTION", }, { "", @@ -377,6 +395,17 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4"}, "f2", + "NO ACTION", + "NO ACTION", + }, + { + "fk_test2", + []string{"c1", "c2"}, + "t2", + []string{"c4", "c5"}, + "f1", + "", + "", }, }, }, @@ -398,13 +427,16 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { expected string fk Foreignkey }{ - {"no quote", "t1", false, "", "ALTER TABLE table1 ADD CONSTRAINT fk_test FOREIGN KEY (productid, userid) REFERENCES table2 (productid, userid)", spannerSchema["t1"].ForeignKeys[0]}, - {"quote", "t1", true, "", "ALTER TABLE `table1` ADD CONSTRAINT `fk_test` FOREIGN KEY (productid, userid) REFERENCES `table2` (productid, userid)", spannerSchema["t1"].ForeignKeys[0]}, - {"no constraint name", "t1", false, "", "ALTER TABLE table1 ADD FOREIGN KEY (productid) REFERENCES table2 (productid)", spannerSchema["t1"].ForeignKeys[1]}, - {"quote PG", "t1", true, constants.DIALECT_POSTGRESQL, "ALTER TABLE table1 ADD CONSTRAINT fk_test FOREIGN KEY (productid, userid) REFERENCES table2 (productid, userid)", spannerSchema["t1"].ForeignKeys[0]}, + {"no quote", "t1", false, "", "ALTER TABLE table1 ADD CONSTRAINT fk_test FOREIGN KEY (productid, userid) REFERENCES table2 (productid, userid) ON DELETE CASCADE", spannerSchema["t1"].ForeignKeys[0]}, + {"quote", "t1", true, "", "ALTER TABLE `table1` ADD CONSTRAINT `fk_test` FOREIGN KEY (productid, userid) REFERENCES `table2` (productid, userid) ON DELETE CASCADE", spannerSchema["t1"].ForeignKeys[0]}, + {"no constraint name", "t1", false, "", "ALTER TABLE table1 ADD FOREIGN KEY (productid) REFERENCES table2 (productid) ON DELETE NO ACTION", spannerSchema["t1"].ForeignKeys[1]}, + {"quote PG", "t1", true, constants.DIALECT_POSTGRESQL, "ALTER TABLE table1 ADD CONSTRAINT fk_test FOREIGN KEY (productid, userid) REFERENCES table2 (productid, userid) ON DELETE CASCADE", spannerSchema["t1"].ForeignKeys[0]}, + {"foreign key constraints not supported i.e. dont print ON DELETE", "t1", false, "", "ALTER TABLE table1 ADD CONSTRAINT fk_test2 FOREIGN KEY (productid, userid) REFERENCES table2 (productid, userid)", spannerSchema["t1"].ForeignKeys[2]}, } for _, tc := range tests { - assert.Equal(t, tc.expected, tc.fk.PrintForeignKeyAlterTable(spannerSchema, Config{ProtectIds: tc.protectIds, SpDialect: tc.spDialect}, tc.table)) + t.Run(tc.name, func(t *testing.T) { + assert.Equal(t, tc.expected, tc.fk.PrintForeignKeyAlterTable(spannerSchema, Config{ProtectIds: tc.protectIds, SpDialect: tc.spDialect}, tc.table)) + }) } } @@ -573,7 +605,7 @@ func TestGetDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -586,7 +618,7 @@ func TestGetDDL(t *testing.T) { "c6": {Name: "c", Id: "c6", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c4"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c5", Desc: true}, {ColId: "c6", Desc: false}}}}, }, "t3": CreateTable{ @@ -626,8 +658,8 @@ func TestGetDDL(t *testing.T) { fksOnly := GetDDL(Config{Tables: false, ForeignKeys: true}, s, make(map[string]Sequence)) e2 := []string{ - "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b)", - "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c)", + "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", + "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } assert.ElementsMatch(t, e2, fksOnly) @@ -650,8 +682,8 @@ func TestGetDDL(t *testing.T) { " c INT64,\n" + ") PRIMARY KEY (a, b),\n" + "INTERLEAVE IN PARENT table1", - "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b)", - "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c)", + "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", + "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } assert.ElementsMatch(t, e3, tablesAndFks) @@ -681,7 +713,7 @@ func TestGetPGDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -694,7 +726,7 @@ func TestGetPGDDL(t *testing.T) { "c5": {Name: "c", Id: "c5", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c3"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c4", Desc: true}, {ColId: "c5", Desc: false}}}}, }, "t3": CreateTable{ @@ -736,8 +768,8 @@ func TestGetPGDDL(t *testing.T) { fksOnly := GetDDL(Config{Tables: false, ForeignKeys: true, SpDialect: constants.DIALECT_POSTGRESQL}, s, make(map[string]Sequence)) e2 := []string{ - "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b)", - "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c)", + "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", + "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } assert.ElementsMatch(t, e2, fksOnly) @@ -762,8 +794,8 @@ func TestGetPGDDL(t *testing.T) { " c INT8,\n" + " PRIMARY KEY (a, b)\n" + ") INTERLEAVE IN PARENT table1", - "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b)", - "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c)", + "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", + "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } assert.ElementsMatch(t, e3, tablesAndFks) diff --git a/webv2/api/schema.go b/webv2/api/schema.go index 6a73fba2c..3e34f32c8 100644 --- a/webv2/api/schema.go +++ b/webv2/api/schema.go @@ -362,12 +362,15 @@ func GetTableWithErrors(w http.ResponseWriter, r *http.Request) { defer sessionState.Conv.ConvLock.RUnlock() var tableIdName []types.TableIdAndName for id, issues := range sessionState.Conv.SchemaIssues { - if len(issues.TableLevelIssues) != 0 { - t := types.TableIdAndName{ - Id: id, - Name: sessionState.Conv.SpSchema[id].Name, + for _, issue := range issues.TableLevelIssues { + if reports.IssueDB[issue].Severity == reports.Errors { + // if issue == internal.RowLimitExceeded { + t := types.TableIdAndName{ + Id: id, + Name: sessionState.Conv.SpSchema[id].Name, + } + tableIdName = append(tableIdName, t) } - tableIdName = append(tableIdName, t) } } w.WriteHeader(http.StatusOK) diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index 6b8f74110..e7de8845f 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -258,7 +258,7 @@ func TestGetDDL(t *testing.T) { "c2": ddl.ColumnDef{Name: "b", T: ddl.Type{Name: ddl.Int64}, NotNull: true}, "c3": ddl.ColumnDef{Name: "c", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}}, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: "t1", Id: "i1", Keys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}}}}, }, "t2": {Name: "table2", @@ -267,7 +267,7 @@ func TestGetDDL(t *testing.T) { }, }, }, - expectedDDL: map[string]string{"t1": "CREATE TABLE table1 (\n\ta INT64 NOT NULL ,\n\tb INT64 NOT NULL ,\n\tc STRING(MAX) NOT NULL ,\n) PRIMARY KEY (a);\n\nCREATE INDEX index1 ON table1 (a);\n\nALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (a) REFERENCES table2 (d);", + expectedDDL: map[string]string{"t1": "CREATE TABLE table1 (\n\ta INT64 NOT NULL ,\n\tb INT64 NOT NULL ,\n\tc STRING(MAX) NOT NULL ,\n) PRIMARY KEY (a);\n\nCREATE INDEX index1 ON table1 (a);\n\nALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (a) REFERENCES table2 (d) ON DELETE CASCADE;", "t2": "CREATE TABLE table2 (\n\td INT64 NOT NULL ,\n) ;"}, statusCode: http.StatusOK, }, @@ -299,6 +299,101 @@ func TestGetDDL(t *testing.T) { } } +func TestGetTableWithErrors(t *testing.T) { + tc := []struct { + name string + conv *internal.Conv + expectedTableIdName []types.TableIdAndName + statusCode int64 + }{ + { + name: "No tables with TableLevelIssues", + conv: &internal.Conv{ + SpSchema: map[string]ddl.CreateTable{ + "t1": { + Name: "table1", + Id: "t1", + }, + "t2": { + Name: "table2", + Id: "t2", + }, + }, + SchemaIssues: nil, + }, + expectedTableIdName: nil, + statusCode: http.StatusOK, + }, + { + name: "Foreign Key Action Issues in Schema - no table should be returned", + conv: &internal.Conv{ + SpSchema: map[string]ddl.CreateTable{ + "t1": { + Name: "table1", + Id: "t1", + }, + "t2": { + Name: "table2", + Id: "t2", + }, + }, + SchemaIssues: map[string]internal.TableIssues{ + "t1": {TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete}}, + "t2": {TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnUpdate}}, + }, + }, + expectedTableIdName: nil, + statusCode: http.StatusOK, + }, + { + name: "Multiple tables with error in Schema - all tables should be returned", + conv: &internal.Conv{ + SpSchema: map[string]ddl.CreateTable{ + "t1": { + Name: "table1", + Id: "t1", + }, + "t2": { + Name: "table2", + Id: "t2", + }, + }, + SchemaIssues: map[string]internal.TableIssues{ + "t1": {TableLevelIssues: []internal.SchemaIssue{internal.RowLimitExceeded}}, + "t2": {TableLevelIssues: []internal.SchemaIssue{internal.RowLimitExceeded, internal.ForeignKeyOnUpdate}}, + }, + }, + expectedTableIdName: []types.TableIdAndName{ + types.TableIdAndName{Id: "t1", Name: "table1"}, + types.TableIdAndName{Id: "t2", Name: "table2"}}, + statusCode: http.StatusOK, + }, + } + for _, tc := range tc { + sessionState := session.GetSessionState() + sessionState.Conv = tc.conv + req, err := http.NewRequest("GET", "/GetTableWithErrors", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Content-Type", "application/json") + rr := httptest.NewRecorder() + handler := http.HandlerFunc(api.GetTableWithErrors) + handler.ServeHTTP(rr, req) + + var tableIdName []types.TableIdAndName + json.Unmarshal(rr.Body.Bytes(), &tableIdName) + + if status := rr.Code; int64(status) != tc.statusCode { + t.Errorf("%s : handler returned wrong status code: got %v want %v", + tc.name, status, tc.statusCode) + } + if tc.statusCode == http.StatusOK { + assert.Equal(t, tc.expectedTableIdName, tableIdName) + } + } +} + func TestDropForeignKey(t *testing.T) { tc := []struct { name string @@ -311,14 +406,14 @@ func TestDropForeignKey(t *testing.T) { { name: "Test drop valid FK success", table: "t1", - input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1"}, - {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2"}}, + input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, + {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, statusCode: http.StatusOK, conv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1"}, - {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, }}, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), @@ -327,7 +422,7 @@ func TestDropForeignKey(t *testing.T) { expectedConv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, }}, }, }, From 66cf781c78c05e33ad8383ce6ae529379093c8ed Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 3 Jul 2024 12:23:28 +0000 Subject: [PATCH 02/46] report_helpers issues fixed --- internal/reports/report_helpers.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index 749d855c5..b6c7ad790 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -556,9 +556,8 @@ var IssueDB = map[internal.SchemaIssue]struct { CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, - internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", severity: warning, Category: "SEQUENCE_CREATED"}, internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, // internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, From 51c08b0dcc18f01442cf3b8667ff0fd45893eea3 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 3 Jul 2024 13:53:04 +0000 Subject: [PATCH 03/46] Cleaning up comments --- internal/convert.go | 1 - internal/mapping.go | 47 +++++++++++++++++------------- internal/mapping_test.go | 26 +++++++---------- internal/reports/report_helpers.go | 11 ------- 4 files changed, 36 insertions(+), 49 deletions(-) diff --git a/internal/convert.go b/internal/convert.go index 36b5c3790..1df60633f 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -125,7 +125,6 @@ const ( ArrayTypeNotSupported ForeignKeyOnDelete ForeignKeyOnUpdate - // ForeignKeyActionsNotSupported SequenceCreated ) diff --git a/internal/mapping.go b/internal/mapping.go index da524f29a..bd96ace0a 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -142,28 +142,25 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { return getSpannerValidName(conv, srcFkName) } -//this function already exists in sources/common/utils.go but is private - can I reuse it by making it public? -// func findSchemaIssue(schemaissue []SchemaIssue, issue SchemaIssue) bool { -// ind := -1 -// for i := 0; i < len(schemaissue); i++ { -// if schemaissue[i] == issue { -// ind = i -// } -// } -// return ind!=-1 -// } - -// if source schema is not reading the rule (i.e. srcDeleteRule = "", then return the same) +// ToSpannerOnDelete maps the source ON DELETE action +// to the corresponding Spanner compatible action. +// The following mapping is followed: +// a) CASCADE/NO ACTION -> mapped to the same as source action +// b) all others -> NO ACTION (default) +// +// Since only MySQL and PostgreSQL have this functionality +// as of yet, for other sources OnDelete fields are +// kept empty i.e. "" is mapped to "" +// +// For all source actions converted to a different action, +// an issue is appended to it's TableLevelIssues to +// generate a warning message for the user func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { return srcDeleteRule } - // if srcDeleteRule == "" { - // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) - // return "" - // } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } @@ -171,17 +168,25 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri return "NO ACTION" } -// Add comment +// ToSpannerOnUpdate maps the source ON UPDATE action +// to the corresponding Spanner compatible action. +// The following mapping is followed: +// all actions -> NO ACTION (default) +// (Spanner only supports ON UPDATE NO ACTION) +// +// Since only MySQL and PostgreSQL have this functionality +// as of yet, for other sources OnDelete fields are +// kept empty i.e. "" is mapped to "" +// +// For all source actions converted to a different action, +// an issue is appended to it's TableLevelIssues to +// generate a warning message for the user func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { return srcUpdateRule } - // if srcUpdateRule == "" { - // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) - // return "" - // } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } diff --git a/internal/mapping_test.go b/internal/mapping_test.go index 601d7156f..f7f15378b 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -317,15 +317,11 @@ func TestToSpannerOnDelete(t *testing.T) { } tests := []struct { - name string // Name of test. - args arg - expectedOnDelete string - expectedIssues []SchemaIssue + name string // Name of test + args arg //Arguments to be passed to function + expectedOnDelete string //Expected ON DELETE action + expectedIssues []SchemaIssue //Expected issues to be appended to Conv }{ - //more compact - // {"restrict", arg{conv, "t", "RESTRICT"}, "NO ACTION", []SchemaIssue{ForeignKeyOnDelete}}, - - //more readable { name: "restrict", args: arg{ @@ -388,8 +384,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcDeleteRule: "", }, expectedOnDelete: "", - // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, - expectedIssues: nil, + expectedIssues: nil, }, } for _, tc := range tests { @@ -410,10 +405,10 @@ func TestToSpannerOnUpdate(t *testing.T) { } tests := []struct { - name string // Name of test. - args arg - expectedOnUpdate string - expectedIssues []SchemaIssue + name string // Name of test + args arg //Arguments to be passed to function + expectedOnUpdate string //Expected ON UPDATE action + expectedIssues []SchemaIssue //Expected issues to be appended to Conv }{ { name: "restrict", @@ -477,8 +472,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcUpdateRule: "", }, expectedOnUpdate: "", - // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, - expectedIssues: nil, + expectedIssues: nil, }, } for _, tc := range tests { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index b6c7ad790..6e223048a 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -112,21 +112,11 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if p.severity == warning { - // flag := false for _, spFk := range conv.SpSchema[tableId].ForeignKeys { srcFk, err := internal.GetSrcFkFromId(conv.SrcSchema[tableId].ForeignKeys, spFk.Id) if err != nil { continue } - // if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { - // flag = true - // issue := internal.ForeignKeyActionsNotSupported - // toAppend := Issue{ - // Category: IssueDB[issue].Category, - // Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), - // } - // l = append(l, toAppend) - // } if srcFk.OnDelete != spFk.OnDelete { issue := internal.ForeignKeyOnDelete @@ -560,7 +550,6 @@ var IssueDB = map[internal.SchemaIssue]struct { internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - // internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } type Severity int From fef05112b86ec74b23cc83158e4f70bd2e21c695 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 4 Jul 2024 11:11:06 +0000 Subject: [PATCH 04/46] Addressing review comments by Deep --- internal/helpers.go | 8 -------- internal/mapping.go | 10 ++++++++-- webv2/api/schema.go | 1 - 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/internal/helpers.go b/internal/helpers.go index 8e1c0eb41..8c7bb4cdd 100644 --- a/internal/helpers.go +++ b/internal/helpers.go @@ -182,11 +182,3 @@ func ResolveForeignKeyIds(schema map[string]schema.Table) { } } } - -func AddTableLevelIssue(tableIssues TableIssues, issue SchemaIssue) TableIssues { - tableIssues = TableIssues{ - TableLevelIssues: append(tableIssues.TableLevelIssues, issue), - ColumnLevelIssues: tableIssues.ColumnLevelIssues} - - return tableIssues -} diff --git a/internal/mapping.go b/internal/mapping.go index bd96ace0a..5ad4f577e 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -164,7 +164,10 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnDelete) + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + return "NO ACTION" } @@ -190,7 +193,10 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnUpdate) + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + return "NO ACTION" } diff --git a/webv2/api/schema.go b/webv2/api/schema.go index 3e34f32c8..2945ed4a1 100644 --- a/webv2/api/schema.go +++ b/webv2/api/schema.go @@ -364,7 +364,6 @@ func GetTableWithErrors(w http.ResponseWriter, r *http.Request) { for id, issues := range sessionState.Conv.SchemaIssues { for _, issue := range issues.TableLevelIssues { if reports.IssueDB[issue].Severity == reports.Errors { - // if issue == internal.RowLimitExceeded { t := types.TableIdAndName{ Id: id, Name: sessionState.Conv.SpSchema[id].Name, From 0c3ce90ca218fc9d9de224fc2f1352989ecdf5ea Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 4 Jul 2024 11:54:57 +0000 Subject: [PATCH 05/46] Cleaning up comments --- common/constants/constants.go | 13 +++++++--- internal/mapping.go | 9 +++---- internal/mapping_test.go | 41 ++++++++++++++++---------------- sources/common/toddl_test.go | 28 +++++++++++----------- sources/mysql/infoschema_test.go | 16 ++++++------- sources/mysql/mysqldump.go | 5 ++-- sources/mysql/mysqldump_test.go | 17 ++++++------- spanner/ddl/ast_test.go | 24 +++++++++---------- webv2/api/schema_test.go | 12 +++++----- 9 files changed, 88 insertions(+), 77 deletions(-) diff --git a/common/constants/constants.go b/common/constants/constants.go index 5effe65c6..ae6c99288 100644 --- a/common/constants/constants.go +++ b/common/constants/constants.go @@ -102,9 +102,16 @@ const ( SMT_JOB_TABLE string = "SMT_JOB" SMT_RESOURCE_TABLE string = "SMT_RESOURCE" // Auto Generated Keys - UUID string = "UUID" - SEQUENCE string = "Sequence" - AUTO_INCREMENT string ="Auto Increment" + UUID string = "UUID" + SEQUENCE string = "Sequence" + AUTO_INCREMENT string = "Auto Increment" // Default gcs path of the Dataflow template. DEFAULT_TEMPLATE_PATH string = "gs://dataflow-templates/latest/flex/Cloud_Datastream_to_Spanner" + + //FK Actions + NO_ACTION string = "NO ACTION" + CASCADE string = "CASCADE" + SET_DEFAULT string = "SET DEFAULT" + SET_NULL string = "SET NULL" + RESTRICT string = "RESTRICT" ) diff --git a/internal/mapping.go b/internal/mapping.go index 5ad4f577e..6282c9046 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -19,6 +19,7 @@ import ( "strconv" "strings" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" ) @@ -157,7 +158,7 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { // generate a warning message for the user func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { + if srcDeleteRule == constants.NO_ACTION || srcDeleteRule == constants.CASCADE || srcDeleteRule == "" { return srcDeleteRule } @@ -168,7 +169,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "NO ACTION" + return constants.NO_ACTION } // ToSpannerOnUpdate maps the source ON UPDATE action @@ -186,7 +187,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // generate a warning message for the user func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { + if srcUpdateRule == constants.NO_ACTION || srcUpdateRule == "" { return srcUpdateRule } @@ -197,7 +198,7 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "NO ACTION" + return constants.NO_ACTION } // ToSpannerIndexName maps source index name to legal Spanner index name. diff --git a/internal/mapping_test.go b/internal/mapping_test.go index f7f15378b..2b694f6b1 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -17,6 +17,7 @@ package internal import ( "testing" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/schema" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" "github.com/stretchr/testify/assert" @@ -327,36 +328,36 @@ func TestToSpannerOnDelete(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcDeleteRule: "RESTRICT", + srcDeleteRule: constants.RESTRICT, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcDeleteRule: "SET DEFAULT", + srcDeleteRule: constants.SET_DEFAULT, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcDeleteRule: "SET NULL", + srcDeleteRule: constants.SET_NULL, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcDeleteRule: "CASCADE", + srcDeleteRule: constants.CASCADE, }, - expectedOnDelete: "CASCADE", + expectedOnDelete: constants.CASCADE, expectedIssues: nil, }, { name: "no action - lowercase", @@ -365,7 +366,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t5", srcDeleteRule: "no action", }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -374,7 +375,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t6", srcDeleteRule: "xyz", }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "fk action not read - for sources other than MySQL and Postgres", @@ -415,36 +416,36 @@ func TestToSpannerOnUpdate(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcUpdateRule: "RESTRICT", + srcUpdateRule: constants.RESTRICT, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcUpdateRule: "SET DEFAULT", + srcUpdateRule: constants.SET_DEFAULT, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcUpdateRule: "SET NULL", + srcUpdateRule: constants.SET_NULL, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcUpdateRule: "CASCADE", + srcUpdateRule: constants.CASCADE, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "no action - lowercase", @@ -453,7 +454,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t5", srcUpdateRule: "no action", }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -462,7 +463,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t6", srcUpdateRule: "xyz", }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "fk action not read - for sources other than MySQL and Postgres", diff --git a/sources/common/toddl_test.go b/sources/common/toddl_test.go index 0c6431854..5c64373f5 100644 --- a/sources/common/toddl_test.go +++ b/sources/common/toddl_test.go @@ -108,7 +108,7 @@ func Test_cvtForeignKeys(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, }, "t2": { Name: "table2", @@ -134,8 +134,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: "RESTRICT", - OnUpdate: "CASCADE", + OnDelete: constants.RESTRICT, + OnUpdate: constants.CASCADE, }, } @@ -145,8 +145,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } @@ -294,7 +294,7 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, }, "t2": { Name: "table2", @@ -331,8 +331,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: "RESTRICT", - OnUpdate: "CASCADE", + OnDelete: constants.RESTRICT, + OnUpdate: constants.CASCADE, }, } resultForeignKey := []ddl.Foreignkey{ @@ -342,8 +342,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, { Name: "fk1", @@ -351,8 +351,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } spKey := []ddl.Foreignkey{{ @@ -361,8 +361,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } diff --git a/sources/mysql/infoschema_test.go b/sources/mysql/infoschema_test.go index 2948b272c..8c8fce55a 100644 --- a/sources/mysql/infoschema_test.go +++ b/sources/mysql/infoschema_test.go @@ -62,7 +62,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "user"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"test", "ref", "id", "fk_test", "SET NULL", "CASCADE"}, + {"test", "ref", "id", "fk_test", constants.SET_NULL, constants.CASCADE}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -91,8 +91,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "cart"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"product", "productid", "product_id", "fk_test2", "NO ACTION", "NO ACTION"}, - {"user", "userid", "user_id", "fk_test3", "RESTRICT", "SET NULL"}, + {"product", "productid", "product_id", "fk_test2", constants.NO_ACTION, constants.NO_ACTION}, + {"user", "userid", "user_id", "fk_test3", constants.RESTRICT, constants.SET_NULL}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -148,8 +148,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, - rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", "CASCADE", "RESTRICT"}, - {"test_ref", "txt", "ref_txt", "fk_test4", "CASCADE", "RESTRICT"}}, + rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", constants.CASCADE, constants.RESTRICT}, + {"test_ref", "txt", "ref_txt", "fk_test4", constants.CASCADE, constants.RESTRICT}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, @@ -221,7 +221,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "quantity": schema.Column{Name: "quantity", Type: schema.Type{Name: "bigint", Mods: []int64{64}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "userid": schema.Column{Name: "userid", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION", Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: "SET NULL", OnDelete: "RESTRICT", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION, Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: constants.SET_NULL, OnDelete: constants.RESTRICT, Id: ""}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}, schema.Key{ColId: "productid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index3", Unique: true, Keys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}}, Id: ""}, "product": schema.Table{Name: "product", Schema: "test", ColIds: []string{"product_id", "product_name"}, ColDefs: map[string]schema.Column{ @@ -252,7 +252,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "vc": schema.Column{Name: "vc", Type: schema.Type{Name: "varchar", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "vc6": schema.Column{Name: "vc6", Type: schema.Type{Name: "varchar", Mods: []int64{6}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: "RESTRICT", OnDelete: "CASCADE", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: constants.RESTRICT, OnDelete: constants.CASCADE, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}, "test_ref": schema.Table{Name: "test_ref", Schema: "test", ColIds: []string{"ref_id", "ref_txt", "abc"}, ColDefs: map[string]schema.Column{ "abc": schema.Column{Name: "abc", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, @@ -266,7 +266,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "ref": schema.Column{Name: "ref", Type: schema.Type{Name: "bigint", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "user_id": schema.Column{Name: "user_id", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "user_id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: "CASCADE", OnDelete: "SET NULL", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: constants.CASCADE, OnDelete: constants.SET_NULL, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}} internal.AssertSrcSchema(t, conv, expectedSchema, conv.SrcSchema) assert.Equal(t, int64(0), conv.Unexpecteds()) diff --git a/sources/mysql/mysqldump.go b/sources/mysql/mysqldump.go index 6301376ee..23765ebf0 100644 --- a/sources/mysql/mysqldump.go +++ b/sources/mysql/mysqldump.go @@ -21,6 +21,7 @@ import ( "strconv" "strings" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/schema" @@ -361,11 +362,11 @@ func toForeignKeys(conv *internal.Conv, fk *ast.Constraint) (fkey schema.Foreign onUpdate := fk.Refer.OnUpdate.ReferOpt.String() if onDelete == "" { - onDelete = "NO ACTION" + onDelete = constants.NO_ACTION } if onUpdate == "" { - onUpdate = "NO ACTION" + onUpdate = constants.NO_ACTION } fkey = schema.ForeignKey{ diff --git a/sources/mysql/mysqldump_test.go b/sources/mysql/mysqldump_test.go index 4bbff11eb..936a4dde5 100644 --- a/sources/mysql/mysqldump_test.go +++ b/sources/mysql/mysqldump_test.go @@ -23,6 +23,7 @@ import ( "testing" "time" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/sources/common" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" @@ -187,7 +188,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": {Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with multiple foreign key test constraint name", @@ -221,8 +222,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}, - ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Alter table add foreign key", @@ -247,7 +248,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Alter table add constraint foreign key", @@ -272,7 +273,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with multiple foreign keys", @@ -306,8 +307,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with single foreign key multiple column", @@ -334,7 +335,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with index keys", diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index e5f39dd3d..e3fb62843 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -327,8 +327,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1", "ref_c2"}, "1", - "NO ACTION", - "NO ACTION", + constants.NO_ACTION, + constants.NO_ACTION, }, { "", @@ -336,8 +336,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1"}, "1", - "CASCADE", - "NO ACTION", + constants.CASCADE, + constants.NO_ACTION, }, { "fk_test", @@ -386,8 +386,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4", "c5"}, "f1", - "CASCADE", - "NO ACTION", + constants.CASCADE, + constants.NO_ACTION, }, { "", @@ -395,8 +395,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4"}, "f2", - "NO ACTION", - "NO ACTION", + constants.NO_ACTION, + constants.NO_ACTION, }, { "fk_test2", @@ -605,7 +605,7 @@ func TestGetDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -618,7 +618,7 @@ func TestGetDDL(t *testing.T) { "c6": {Name: "c", Id: "c6", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c4"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c5", Desc: true}, {ColId: "c6", Desc: false}}}}, }, "t3": CreateTable{ @@ -713,7 +713,7 @@ func TestGetPGDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -726,7 +726,7 @@ func TestGetPGDDL(t *testing.T) { "c5": {Name: "c", Id: "c5", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c3"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c4", Desc: true}, {ColId: "c5", Desc: false}}}}, }, "t3": CreateTable{ diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index e7de8845f..4f1361e63 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -258,7 +258,7 @@ func TestGetDDL(t *testing.T) { "c2": ddl.ColumnDef{Name: "b", T: ddl.Type{Name: ddl.Int64}, NotNull: true}, "c3": ddl.ColumnDef{Name: "c", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}}, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: "t1", Id: "i1", Keys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}}}}, }, "t2": {Name: "table2", @@ -406,14 +406,14 @@ func TestDropForeignKey(t *testing.T) { { name: "Test drop valid FK success", table: "t1", - input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, statusCode: http.StatusOK, conv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), @@ -422,7 +422,7 @@ func TestDropForeignKey(t *testing.T) { expectedConv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, }}, }, }, From 2dcf82964dd56cb3c307731ff98db815be50ca1d Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 4 Jul 2024 11:54:57 +0000 Subject: [PATCH 06/46] Changing FK Action strings to constants --- common/constants/constants.go | 13 +++++++--- internal/mapping.go | 9 +++---- internal/mapping_test.go | 41 ++++++++++++++++---------------- sources/common/toddl_test.go | 28 +++++++++++----------- sources/mysql/infoschema_test.go | 16 ++++++------- sources/mysql/mysqldump.go | 5 ++-- sources/mysql/mysqldump_test.go | 17 ++++++------- spanner/ddl/ast_test.go | 24 +++++++++---------- webv2/api/schema_test.go | 12 +++++----- 9 files changed, 88 insertions(+), 77 deletions(-) diff --git a/common/constants/constants.go b/common/constants/constants.go index 5effe65c6..ae6c99288 100644 --- a/common/constants/constants.go +++ b/common/constants/constants.go @@ -102,9 +102,16 @@ const ( SMT_JOB_TABLE string = "SMT_JOB" SMT_RESOURCE_TABLE string = "SMT_RESOURCE" // Auto Generated Keys - UUID string = "UUID" - SEQUENCE string = "Sequence" - AUTO_INCREMENT string ="Auto Increment" + UUID string = "UUID" + SEQUENCE string = "Sequence" + AUTO_INCREMENT string = "Auto Increment" // Default gcs path of the Dataflow template. DEFAULT_TEMPLATE_PATH string = "gs://dataflow-templates/latest/flex/Cloud_Datastream_to_Spanner" + + //FK Actions + NO_ACTION string = "NO ACTION" + CASCADE string = "CASCADE" + SET_DEFAULT string = "SET DEFAULT" + SET_NULL string = "SET NULL" + RESTRICT string = "RESTRICT" ) diff --git a/internal/mapping.go b/internal/mapping.go index 5ad4f577e..6282c9046 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -19,6 +19,7 @@ import ( "strconv" "strings" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" ) @@ -157,7 +158,7 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { // generate a warning message for the user func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { + if srcDeleteRule == constants.NO_ACTION || srcDeleteRule == constants.CASCADE || srcDeleteRule == "" { return srcDeleteRule } @@ -168,7 +169,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "NO ACTION" + return constants.NO_ACTION } // ToSpannerOnUpdate maps the source ON UPDATE action @@ -186,7 +187,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // generate a warning message for the user func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { + if srcUpdateRule == constants.NO_ACTION || srcUpdateRule == "" { return srcUpdateRule } @@ -197,7 +198,7 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "NO ACTION" + return constants.NO_ACTION } // ToSpannerIndexName maps source index name to legal Spanner index name. diff --git a/internal/mapping_test.go b/internal/mapping_test.go index f7f15378b..2b694f6b1 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -17,6 +17,7 @@ package internal import ( "testing" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/schema" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" "github.com/stretchr/testify/assert" @@ -327,36 +328,36 @@ func TestToSpannerOnDelete(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcDeleteRule: "RESTRICT", + srcDeleteRule: constants.RESTRICT, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcDeleteRule: "SET DEFAULT", + srcDeleteRule: constants.SET_DEFAULT, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcDeleteRule: "SET NULL", + srcDeleteRule: constants.SET_NULL, }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcDeleteRule: "CASCADE", + srcDeleteRule: constants.CASCADE, }, - expectedOnDelete: "CASCADE", + expectedOnDelete: constants.CASCADE, expectedIssues: nil, }, { name: "no action - lowercase", @@ -365,7 +366,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t5", srcDeleteRule: "no action", }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -374,7 +375,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t6", srcDeleteRule: "xyz", }, - expectedOnDelete: "NO ACTION", + expectedOnDelete: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "fk action not read - for sources other than MySQL and Postgres", @@ -415,36 +416,36 @@ func TestToSpannerOnUpdate(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcUpdateRule: "RESTRICT", + srcUpdateRule: constants.RESTRICT, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcUpdateRule: "SET DEFAULT", + srcUpdateRule: constants.SET_DEFAULT, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcUpdateRule: "SET NULL", + srcUpdateRule: constants.SET_NULL, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcUpdateRule: "CASCADE", + srcUpdateRule: constants.CASCADE, }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "no action - lowercase", @@ -453,7 +454,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t5", srcUpdateRule: "no action", }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -462,7 +463,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t6", srcUpdateRule: "xyz", }, - expectedOnUpdate: "NO ACTION", + expectedOnUpdate: constants.NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "fk action not read - for sources other than MySQL and Postgres", diff --git a/sources/common/toddl_test.go b/sources/common/toddl_test.go index 0c6431854..5c64373f5 100644 --- a/sources/common/toddl_test.go +++ b/sources/common/toddl_test.go @@ -108,7 +108,7 @@ func Test_cvtForeignKeys(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, }, "t2": { Name: "table2", @@ -134,8 +134,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: "RESTRICT", - OnUpdate: "CASCADE", + OnDelete: constants.RESTRICT, + OnUpdate: constants.CASCADE, }, } @@ -145,8 +145,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } @@ -294,7 +294,7 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: "RESTRICT", OnUpdate: "CASCADE"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, }, "t2": { Name: "table2", @@ -331,8 +331,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: "RESTRICT", - OnUpdate: "CASCADE", + OnDelete: constants.RESTRICT, + OnUpdate: constants.CASCADE, }, } resultForeignKey := []ddl.Foreignkey{ @@ -342,8 +342,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, { Name: "fk1", @@ -351,8 +351,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } spKey := []ddl.Foreignkey{{ @@ -361,8 +361,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: "NO ACTION", - OnUpdate: "NO ACTION", + OnDelete: constants.NO_ACTION, + OnUpdate: constants.NO_ACTION, }, } diff --git a/sources/mysql/infoschema_test.go b/sources/mysql/infoschema_test.go index 2948b272c..8c8fce55a 100644 --- a/sources/mysql/infoschema_test.go +++ b/sources/mysql/infoschema_test.go @@ -62,7 +62,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "user"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"test", "ref", "id", "fk_test", "SET NULL", "CASCADE"}, + {"test", "ref", "id", "fk_test", constants.SET_NULL, constants.CASCADE}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -91,8 +91,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "cart"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"product", "productid", "product_id", "fk_test2", "NO ACTION", "NO ACTION"}, - {"user", "userid", "user_id", "fk_test3", "RESTRICT", "SET NULL"}, + {"product", "productid", "product_id", "fk_test2", constants.NO_ACTION, constants.NO_ACTION}, + {"user", "userid", "user_id", "fk_test3", constants.RESTRICT, constants.SET_NULL}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -148,8 +148,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, - rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", "CASCADE", "RESTRICT"}, - {"test_ref", "txt", "ref_txt", "fk_test4", "CASCADE", "RESTRICT"}}, + rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", constants.CASCADE, constants.RESTRICT}, + {"test_ref", "txt", "ref_txt", "fk_test4", constants.CASCADE, constants.RESTRICT}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, @@ -221,7 +221,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "quantity": schema.Column{Name: "quantity", Type: schema.Type{Name: "bigint", Mods: []int64{64}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "userid": schema.Column{Name: "userid", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION", Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: "SET NULL", OnDelete: "RESTRICT", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION, Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: constants.SET_NULL, OnDelete: constants.RESTRICT, Id: ""}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}, schema.Key{ColId: "productid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index3", Unique: true, Keys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}}, Id: ""}, "product": schema.Table{Name: "product", Schema: "test", ColIds: []string{"product_id", "product_name"}, ColDefs: map[string]schema.Column{ @@ -252,7 +252,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "vc": schema.Column{Name: "vc", Type: schema.Type{Name: "varchar", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "vc6": schema.Column{Name: "vc6", Type: schema.Type{Name: "varchar", Mods: []int64{6}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: "RESTRICT", OnDelete: "CASCADE", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: constants.RESTRICT, OnDelete: constants.CASCADE, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}, "test_ref": schema.Table{Name: "test_ref", Schema: "test", ColIds: []string{"ref_id", "ref_txt", "abc"}, ColDefs: map[string]schema.Column{ "abc": schema.Column{Name: "abc", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, @@ -266,7 +266,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "ref": schema.Column{Name: "ref", Type: schema.Type{Name: "bigint", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "user_id": schema.Column{Name: "user_id", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "user_id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: "CASCADE", OnDelete: "SET NULL", Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: constants.CASCADE, OnDelete: constants.SET_NULL, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}} internal.AssertSrcSchema(t, conv, expectedSchema, conv.SrcSchema) assert.Equal(t, int64(0), conv.Unexpecteds()) diff --git a/sources/mysql/mysqldump.go b/sources/mysql/mysqldump.go index 6301376ee..23765ebf0 100644 --- a/sources/mysql/mysqldump.go +++ b/sources/mysql/mysqldump.go @@ -21,6 +21,7 @@ import ( "strconv" "strings" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/schema" @@ -361,11 +362,11 @@ func toForeignKeys(conv *internal.Conv, fk *ast.Constraint) (fkey schema.Foreign onUpdate := fk.Refer.OnUpdate.ReferOpt.String() if onDelete == "" { - onDelete = "NO ACTION" + onDelete = constants.NO_ACTION } if onUpdate == "" { - onUpdate = "NO ACTION" + onUpdate = constants.NO_ACTION } fkey = schema.ForeignKey{ diff --git a/sources/mysql/mysqldump_test.go b/sources/mysql/mysqldump_test.go index 4bbff11eb..936a4dde5 100644 --- a/sources/mysql/mysqldump_test.go +++ b/sources/mysql/mysqldump_test.go @@ -23,6 +23,7 @@ import ( "testing" "time" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/sources/common" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" @@ -187,7 +188,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": {Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with multiple foreign key test constraint name", @@ -221,8 +222,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}, - ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Alter table add foreign key", @@ -247,7 +248,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Alter table add constraint foreign key", @@ -272,7 +273,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with multiple foreign keys", @@ -306,8 +307,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with single foreign key multiple column", @@ -334,7 +335,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create table with index keys", diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index e5f39dd3d..e3fb62843 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -327,8 +327,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1", "ref_c2"}, "1", - "NO ACTION", - "NO ACTION", + constants.NO_ACTION, + constants.NO_ACTION, }, { "", @@ -336,8 +336,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1"}, "1", - "CASCADE", - "NO ACTION", + constants.CASCADE, + constants.NO_ACTION, }, { "fk_test", @@ -386,8 +386,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4", "c5"}, "f1", - "CASCADE", - "NO ACTION", + constants.CASCADE, + constants.NO_ACTION, }, { "", @@ -395,8 +395,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4"}, "f2", - "NO ACTION", - "NO ACTION", + constants.NO_ACTION, + constants.NO_ACTION, }, { "fk_test2", @@ -605,7 +605,7 @@ func TestGetDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -618,7 +618,7 @@ func TestGetDDL(t *testing.T) { "c6": {Name: "c", Id: "c6", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c4"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c5", Desc: true}, {ColId: "c6", Desc: false}}}}, }, "t3": CreateTable{ @@ -713,7 +713,7 @@ func TestGetPGDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -726,7 +726,7 @@ func TestGetPGDDL(t *testing.T) { "c5": {Name: "c", Id: "c5", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c3"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c4", Desc: true}, {ColId: "c5", Desc: false}}}}, }, "t3": CreateTable{ diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index e7de8845f..4f1361e63 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -258,7 +258,7 @@ func TestGetDDL(t *testing.T) { "c2": ddl.ColumnDef{Name: "b", T: ddl.Type{Name: ddl.Int64}, NotNull: true}, "c3": ddl.ColumnDef{Name: "c", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}}, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: "t1", Id: "i1", Keys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}}}}, }, "t2": {Name: "table2", @@ -406,14 +406,14 @@ func TestDropForeignKey(t *testing.T) { { name: "Test drop valid FK success", table: "t1", - input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, statusCode: http.StatusOK, conv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}, - {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: "NO ACTION", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), @@ -422,7 +422,7 @@ func TestDropForeignKey(t *testing.T) { expectedConv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: "CASCADE", OnUpdate: "NO ACTION"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, }}, }, }, From 168fbba237fa5e5c5937f039a724d7ebdb077aa4 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 4 Jul 2024 12:13:53 +0000 Subject: [PATCH 07/46] testing --- webv2/api/schema.go | 1 - 1 file changed, 1 deletion(-) diff --git a/webv2/api/schema.go b/webv2/api/schema.go index 3e34f32c8..2945ed4a1 100644 --- a/webv2/api/schema.go +++ b/webv2/api/schema.go @@ -364,7 +364,6 @@ func GetTableWithErrors(w http.ResponseWriter, r *http.Request) { for id, issues := range sessionState.Conv.SchemaIssues { for _, issue := range issues.TableLevelIssues { if reports.IssueDB[issue].Severity == reports.Errors { - // if issue == internal.RowLimitExceeded { t := types.TableIdAndName{ Id: id, Name: sessionState.Conv.SpSchema[id].Name, From 9a764e35a6060f6298a7903037b6b1256318b9ac Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Fri, 5 Jul 2024 09:58:38 +0000 Subject: [PATCH 08/46] Postgres (in progress) + unconditional UI --- common/constants/constants.go | 13 ++- sources/postgres/infoschema.go | 80 +++++++++++++------ sources/postgres/infoschema_test.go | 43 +++++----- sources/postgres/pgdump.go | 48 ++++++++++- sources/postgres/pgdump_test.go | 34 ++++---- sources/postgres/toddl_test.go | 32 ++++---- .../object-detail.component.html | 32 +++++++- .../object-detail.component.scss | 3 +- .../object-detail.component.spec.ts | 26 +++--- .../object-detail/object-detail.component.ts | 20 +++++ ui/src/app/model/conv.ts | 2 + ui/src/app/model/fk-tab-data.ts | 4 + 12 files changed, 241 insertions(+), 96 deletions(-) diff --git a/common/constants/constants.go b/common/constants/constants.go index 5effe65c6..ae6c99288 100644 --- a/common/constants/constants.go +++ b/common/constants/constants.go @@ -102,9 +102,16 @@ const ( SMT_JOB_TABLE string = "SMT_JOB" SMT_RESOURCE_TABLE string = "SMT_RESOURCE" // Auto Generated Keys - UUID string = "UUID" - SEQUENCE string = "Sequence" - AUTO_INCREMENT string ="Auto Increment" + UUID string = "UUID" + SEQUENCE string = "Sequence" + AUTO_INCREMENT string = "Auto Increment" // Default gcs path of the Dataflow template. DEFAULT_TEMPLATE_PATH string = "gs://dataflow-templates/latest/flex/Cloud_Datastream_to_Spanner" + + //FK Actions + NO_ACTION string = "NO ACTION" + CASCADE string = "CASCADE" + SET_DEFAULT string = "SET DEFAULT" + SET_NULL string = "SET NULL" + RESTRICT string = "RESTRICT" ) diff --git a/sources/postgres/infoschema.go b/sources/postgres/infoschema.go index 37405be92..d69b9aa21 100644 --- a/sources/postgres/infoschema.go +++ b/sources/postgres/infoschema.go @@ -367,40 +367,64 @@ func (isi InfoSchemaImpl) GetConstraints(conv *internal.Conv, table common.Schem // GetForeignKeys returns a list of all the foreign key constraints. func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.SchemaAndName) (foreignKeys []schema.ForeignKey, err error) { + // q := `SELECT + // rc.constraint_schema AS "TABLE_SCHEMA", + // ccu.table_name AS "REFERENCED_TABLE_NAME", + // kcu.column_name AS "COLUMN_NAME", + // ccu.column_name AS "REF_COLUMN_NAME", + // rc.constraint_name AS "CONSTRAINT_NAME", + // rc.delete_rule AS "ON_DELETE", + // rc.update_rule AS "ON_UPDATE" + // FROM + // INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc + // INNER JOIN + // INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu + // ON rc.constraint_name = kcu.constraint_name + // AND rc.constraint_schema = kcu.constraint_schema + // AND rc.table_name = kcu.table_name + // INNER JOIN + // INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu + // ON rc.constraint_name = ccu.constraint_name + // AND rc.constraint_schema = ccu.constraint_schema + // WHERE + // rc.constraint_schema = $1 + // AND kcu.table_name = $2;` q := `SELECT - schema_name AS "TABLE_SCHEMA", - cl.relname AS "TABLE_NAME", - att2.attname AS "COLUMN_NAME", - att.attname AS "REF_COLUMN_NAME", - conname AS "CONSTRAINT_NAME" - FROM (SELECT - UNNEST(con1.conkey) AS "parent", - UNNEST(con1.confkey) AS "child", - con1.confrelid, - con1.conrelid, - con1.conname, - ns.nspname AS schema_name - FROM PG_CLASS cl - JOIN PG_NAMESPACE ns ON cl.relnamespace = ns.oid - JOIN PG_CONSTRAINT con1 ON con1.conrelid = cl.oid - WHERE ns.nspname = $1 AND cl.relname = $2 AND con1.contype = 'f') con - JOIN PG_ATTRIBUTE att ON - att.attrelid = con.confrelid AND att.attnum = con.child - JOIN PG_CLASS cl ON - cl.oid = con.confrelid - JOIN PG_ATTRIBUTE att2 ON - att2.attrelid = con.conrelid AND att2.attnum = con.parent;` + schema_name AS "TABLE_SCHEMA", + cl.relname AS "TABLE_NAME", + att2.attname AS "COLUMN_NAME", + att.attname AS "REF_COLUMN_NAME", + conname AS "CONSTRAINT_NAME" + FROM (SELECT + UNNEST(con1.conkey) AS "parent", + UNNEST(con1.confkey) AS "child", + con1.confrelid, + con1.conrelid, + con1.conname, + ns.nspname AS schema_name + FROM PG_CLASS cl + JOIN PG_NAMESPACE ns ON cl.relnamespace = ns.oid + JOIN PG_CONSTRAINT con1 ON con1.conrelid = cl.oid + WHERE ns.nspname = $1 AND cl.relname = $2 AND con1.contype = 'f') con + JOIN PG_ATTRIBUTE att ON + att.attrelid = con.confrelid AND att.attnum = con.child + JOIN PG_CLASS cl ON + cl.oid = con.confrelid + JOIN PG_ATTRIBUTE att2 ON + att2.attrelid = con.conrelid AND att2.attnum = con.parent;` rows, err := isi.Db.Query(q, table.Schema, table.Name) + if err != nil { return nil, err } defer rows.Close() var refTable common.SchemaAndName - var col, refCol, fKeyName string + var col, refCol, fKeyName, onDelete, onUpdate string fKeys := make(map[string]common.FkConstraint) var keyNames []string for rows.Next() { + // err := rows.Scan(&refTable.Schema, &refTable.Name, &col, &refCol, &fKeyName, &onDelete, &onUpdate) err := rows.Scan(&refTable.Schema, &refTable.Name, &col, &refCol, &fKeyName) if err != nil { conv.Unexpected(fmt.Sprintf("Can't scan: %v", err)) @@ -412,8 +436,11 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem fk.Cols = append(fk.Cols, col) fk.Refcols = append(fk.Refcols, refCol) fKeys[fKeyName] = fk + // fk.OnDelete = onDelete + // fk.OnUpdate = onUpdate continue } + // fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: tableName, Refcols: []string{refCol}, Cols: []string{col}, OnDelete: onDelete, OnUpdate: onUpdate} fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: tableName, Refcols: []string{refCol}, Cols: []string{col}} keyNames = append(keyNames, fKeyName) } @@ -426,7 +453,12 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem Name: fKeys[k].Name, ColumnNames: fKeys[k].Cols, ReferTableName: fKeys[k].Table, - ReferColumnNames: fKeys[k].Refcols}) + ReferColumnNames: fKeys[k].Refcols, + // OnDelete: fKeys[k].OnDelete, + // OnUpdate: fKeys[k].OnUpdate, + OnDelete: "xyz", + OnUpdate: "xyz", + }) } return foreignKeys, nil } diff --git a/sources/postgres/infoschema_test.go b/sources/postgres/infoschema_test.go index 6e2c2d8fa..8ed35a70a 100644 --- a/sources/postgres/infoschema_test.go +++ b/sources/postgres/infoschema_test.go @@ -23,6 +23,7 @@ import ( "cloud.google.com/go/spanner" "github.com/DATA-DOG/go-sqlmock" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/profiles" @@ -65,11 +66,11 @@ func TestProcessSchema(t *testing.T) { {"ref", "FOREIGN KEY"}}, }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "user"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, rows: [][]driver.Value{ - {"public", "test", "ref", "id", "fk_test"}, + {"public", "test", "ref", "id", "fk_test", constants.RESTRICT, constants.CASCADE}, }, }, { @@ -97,12 +98,12 @@ func TestProcessSchema(t *testing.T) { {"userid", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "cart"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, rows: [][]driver.Value{ - {"public", "product", "productid", "product_id", "fk_test2"}, - {"public", "user", "userid", "user_id", "fk_test3"}}, + {"public", "product", "productid", "product_id", "fk_test2", constants.NO_ACTION, constants.SET_NULL}, + {"public", "user", "userid", "user_id", "fk_test3", constants.SET_NULL, constants.RESTRICT}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -133,9 +134,9 @@ func TestProcessSchema(t *testing.T) { {"product_id", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "product"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -158,11 +159,11 @@ func TestProcessSchema(t *testing.T) { cols: []string{"column_name", "constraint_type"}, rows: [][]driver.Value{{"id", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "test"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, - rows: [][]driver.Value{{"public", "test_ref", "id", "ref_id", "fk_test4"}, - {"public", "test_ref", "txt", "ref_txt", "fk_test4"}}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, + rows: [][]driver.Value{{"public", "test_ref", "id", "ref_id", "fk_test4", constants.CASCADE, constants.NO_ACTION}, + {"public", "test_ref", "txt", "ref_txt", "fk_test4", constants.CASCADE, constants.NO_ACTION}}, }, { @@ -207,9 +208,9 @@ func TestProcessSchema(t *testing.T) { {"ref_id", "PRIMARY KEY"}, {"ref_txt", "PRIMARY KEY"}}, }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "test_ref"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -242,7 +243,7 @@ func TestProcessSchema(t *testing.T) { "ref": ddl.ColumnDef{Name: "ref", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "user_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}, "cart": ddl.CreateTable{ Name: "cart", ColIds: []string{"productid", "userid", "quantity"}, @@ -252,8 +253,8 @@ func TestProcessSchema(t *testing.T) { "quantity": ddl.ColumnDef{Name: "quantity", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "productid", Order: 1}, ddl.IndexKey{ColId: "userid", Order: 2}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}}, - ddl.Foreignkey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: "cart", Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "userid", Desc: false, Order: 1}}}, ddl.CreateIndex{Name: "index2", TableId: "cart", Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "userid", Desc: false, Order: 1}, ddl.IndexKey{ColId: "productid", Desc: true, Order: 2}}}, ddl.CreateIndex{Name: "index3", TableId: "cart", Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "productid", Desc: true, Order: 1}, ddl.IndexKey{ColId: "userid", Desc: false, Order: 2}}}}}, @@ -292,7 +293,7 @@ func TestProcessSchema(t *testing.T) { "vc6": ddl.ColumnDef{Name: "vc6", T: ddl.Type{Name: ddl.String, Len: int64(6)}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}}, "test_ref": ddl.CreateTable{ Name: "test_ref", ColIds: []string{"ref_id", "ref_txt", "abc"}, @@ -478,9 +479,9 @@ func TestConvertSqlRow_MultiCol(t *testing.T) { rows: [][]driver.Value{}, // No primary key --> force generation of synthetic key. }, { - query: "SELECT (.+) FROM PG_CLASS (.+) JOIN PG_NAMESPACE (.+) JOIN PG_CONSTRAINT (.+)", + query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "test"}, - cols: []string{"TABLE_SCHEMA", "TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME"}, + cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", diff --git a/sources/postgres/pgdump.go b/sources/postgres/pgdump.go index 11d8edc94..3b91042df 100644 --- a/sources/postgres/pgdump.go +++ b/sources/postgres/pgdump.go @@ -23,6 +23,7 @@ import ( pg_query "github.com/pganalyze/pg_query_go/v2" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/schema" @@ -585,6 +586,8 @@ type constraint struct { /* Fields used for FOREIGN KEY constraints: */ referCols []string referTable string + onDelete string + onUpdate string } // extractConstraints traverses a list of nodes (expecting them to be @@ -595,7 +598,7 @@ func extractConstraints(conv *internal.Conv, stmtType, table string, l []*pg_que case *pg_query.Node_Constraint: c := d.Constraint var cols, referCols []string - var referTable string + var referTable, onDelete, onUpdate string var conName string switch c.Contype { case pg_query.ConstrType_CONSTR_FOREIGN: @@ -627,6 +630,42 @@ func extractConstraints(conv *internal.Conv, stmtType, table string, l []*pg_que } referCols = append(referCols, f) } + onDelete = c.GetFkDelAction() + switch onDelete { + case "a": + onDelete = constants.NO_ACTION + case "r": + onDelete = constants.RESTRICT + case "c": + onDelete = constants.CASCADE + case "n": + onDelete = constants.SET_NULL + case "d": + onDelete = constants.SET_DEFAULT + case " ": + onDelete = constants.NO_ACTION + default: + onDelete = "UNKNOWN" + } + + onUpdate = c.GetFkUpdAction() + switch onUpdate { + case "a": + onUpdate = constants.NO_ACTION + case "r": + onUpdate = constants.RESTRICT + case "c": + onUpdate = constants.CASCADE + case "n": + onUpdate = constants.SET_NULL + case "d": + onUpdate = constants.SET_DEFAULT + case " ": + onUpdate = constants.NO_ACTION + default: + onUpdate = "UNKNOWN" + } + default: if c.Conname != "" { conName = c.Conname @@ -641,7 +680,7 @@ func extractConstraints(conv *internal.Conv, stmtType, table string, l []*pg_que cols = append(cols, k) } } - cs = append(cs, constraint{ct: c.Contype, cols: cols, name: conName, referCols: referCols, referTable: referTable}) + cs = append(cs, constraint{ct: c.Contype, cols: cols, name: conName, referCols: referCols, referTable: referTable, onDelete: onDelete, onUpdate: onUpdate}) default: conv.Unexpected(fmt.Sprintf("Processing %v statement: found %s node while processing constraints\n", stmtType, printNodeType(d))) } @@ -758,7 +797,10 @@ func toForeignKeys(fk constraint) (fkey schema.ForeignKey) { Name: fk.name, ColumnNames: fk.cols, ReferTableName: fk.referTable, - ReferColumnNames: fk.referCols} + ReferColumnNames: fk.referCols, + OnDelete: fk.onDelete, + OnUpdate: fk.onUpdate, + } return fkey } diff --git a/sources/postgres/pgdump_test.go b/sources/postgres/pgdump_test.go index 44a478bc6..6cf814ce6 100644 --- a/sources/postgres/pgdump_test.go +++ b/sources/postgres/pgdump_test.go @@ -193,14 +193,14 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, }, { name: "Alter table with single foreign key", input: "CREATE TABLE test (a bigint PRIMARY KEY, b text );\n" + "CREATE TABLE test2 (c bigint, d bigint);\n" + - "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (d) REFERENCES test(a) ON UPDATE CASCADE ON DELETE RESTRICT;\n", + "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (d) REFERENCES test(a) ON DELETE CASCADE ON UPDATE RESTRICT;\n", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -219,14 +219,14 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, }}, }, { name: "Alter table with single foreign key multiple column", input: "CREATE TABLE test (a bigint PRIMARY KEY, b bigint, c text );\n" + "CREATE TABLE test2 (c bigint, d bigint);\n" + - "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (c,d) REFERENCES test(a,b) ON UPDATE CASCADE ON DELETE RESTRICT;\n", + "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (c,d) REFERENCES test(a,b) ON DELETE SET NULL ON UPDATE NO ACTION;\n", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -246,7 +246,7 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, }, { @@ -254,8 +254,8 @@ func TestProcessPgDump(t *testing.T) { input: "CREATE TABLE test (a bigint PRIMARY KEY, b text );\n" + "CREATE TABLE test2 (c bigint PRIMARY KEY, d text );\n" + "CREATE TABLE test3 (e bigint, f bigint, g text );\n" + - "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test FOREIGN KEY (e) REFERENCES test (a);\n" + - "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test2 FOREIGN KEY (f) REFERENCES test2 (c);", + "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test FOREIGN KEY (e) REFERENCES test (a) ON DELETE SET DEFAULT;\n" + + "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test2 FOREIGN KEY (f) REFERENCES test2 (c) ON UPDATE CASCADE;", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -283,8 +283,8 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create index statement", @@ -869,14 +869,14 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, }, { name: "Alter table with single foreign key", input: "CREATE TABLE test (a bigint PRIMARY KEY, b text );\n" + "CREATE TABLE test2 (c bigint, d bigint);\n" + - "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (d) REFERENCES test(a) ON UPDATE CASCADE ON DELETE RESTRICT;\n", + "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (d) REFERENCES test(a) ON DELETE CASCADE ON UPDATE RESTRICT;\n", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -895,14 +895,14 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, }}, }, { name: "Alter table with single foreign key multiple column", input: "CREATE TABLE test (a bigint PRIMARY KEY, b bigint, c text );\n" + "CREATE TABLE test2 (c bigint, d bigint);\n" + - "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (c,d) REFERENCES test(a,b) ON UPDATE CASCADE ON DELETE RESTRICT;\n", + "ALTER TABLE ONLY test2 ADD CONSTRAINT fk_test FOREIGN KEY (c,d) REFERENCES test(a,b) ON UPDATE SET NULL;\n", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ Name: "test", @@ -922,7 +922,7 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, }}, }, { @@ -930,7 +930,7 @@ func TestProcessPgDumpPGTarget(t *testing.T) { input: "CREATE TABLE test (a bigint PRIMARY KEY, b text );\n" + "CREATE TABLE test2 (c bigint PRIMARY KEY, d text );\n" + "CREATE TABLE test3 (e bigint, f bigint, g text );\n" + - "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test FOREIGN KEY (e) REFERENCES test (a);\n" + + "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test FOREIGN KEY (e) REFERENCES test (a) ON DELETE CASCADE;\n" + "ALTER TABLE ONLY test3 ADD CONSTRAINT fk_test2 FOREIGN KEY (f) REFERENCES test2 (c);", expectedSchema: map[string]ddl.CreateTable{ "test": ddl.CreateTable{ @@ -959,8 +959,8 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, }, { name: "Create index statement", diff --git a/sources/postgres/toddl_test.go b/sources/postgres/toddl_test.go index 961058a0b..a3306b7b3 100644 --- a/sources/postgres/toddl_test.go +++ b/sources/postgres/toddl_test.go @@ -133,8 +133,8 @@ func TestToSpannerType(t *testing.T) { "c6": schema.Column{Name: "f", Id: "c6", Type: schema.Type{Name: "timestamptz"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.RESTRICT, OnUpdate: constants.NO_ACTION}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.CASCADE, OnUpdate: constants.SET_DEFAULT}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -179,16 +179,18 @@ func TestToSpannerType(t *testing.T) { "c6": ddl.ColumnDef{Name: "f", Id: "c6", T: ddl.Type{Name: ddl.Timestamp}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{ - "c2": []internal.SchemaIssue{internal.Widened}, + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete, internal.ForeignKeyOnUpdate}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{ + "c2": []internal.SchemaIssue{internal.Widened}}, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) } // This is just a very basic smoke-test for toExperimentalSpannerType. @@ -214,8 +216,8 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": schema.Column{Name: "g", Id: "c7", Type: schema.Type{Name: "json"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -261,16 +263,18 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": ddl.ColumnDef{Name: "g", Id: "c7", T: ddl.Type{Name: ddl.JSON}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{ - "c2": []internal.SchemaIssue{internal.Widened}, + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete, internal.ForeignKeyOnUpdate}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{ + "c2": []internal.SchemaIssue{internal.Widened}}, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) } func dropComments(t *ddl.CreateTable) { diff --git a/ui/src/app/components/object-detail/object-detail.component.html b/ui/src/app/components/object-detail/object-detail.component.html index d6981cca6..a328da025 100644 --- a/ui/src/app/components/object-detail/object-detail.component.html +++ b/ui/src/app/components/object-detail/object-detail.component.html @@ -562,11 +562,11 @@

- + - + + + + + + + + + + + + + + + + + +
{{ srcDbName }}{{ srcDbName }} +
Spanner
+ +
On Delete + {{ element.get('srcOnDelete').value }} + On Update + {{ element.get('srcOnUpdate').value }} + Name @@ -648,6 +662,20 @@

On Delete + {{ element.get('spOnDelete').value }} + On Update + {{ element.get('spOnUpdate').value }} + diff --git a/ui/src/app/components/object-detail/object-detail.component.scss b/ui/src/app/components/object-detail/object-detail.component.scss index 9b592784e..64820d786 100644 --- a/ui/src/app/components/object-detail/object-detail.component.scss +++ b/ui/src/app/components/object-detail/object-detail.component.scss @@ -212,7 +212,8 @@ } .mat-column-srcIsNotNull, - .mat-column-srcReferColumns, + // .mat-column-srcReferColumns, + .mat-column-srcOnUpdate, .mat-column-srcDatabase, .mat-column-srcIndexOrder { border-right: 1px solid #cdcccd; diff --git a/ui/src/app/components/object-detail/object-detail.component.spec.ts b/ui/src/app/components/object-detail/object-detail.component.spec.ts index 5b99d7e22..ee55de297 100644 --- a/ui/src/app/components/object-detail/object-detail.component.spec.ts +++ b/ui/src/app/components/object-detail/object-detail.component.spec.ts @@ -113,19 +113,23 @@ describe('ObjectDetailComponent', () => { ] component.fkData = [ { - spName: 'abc', - srcName: 'abc', - spColumns: ['abc_id'], - srcColumns: ['abc_id'], - spReferTable: 'def', - srcReferTable: 'def', - spReferColumns: ['def_if'], - srcReferColumns: ['def_if'], + srcName: 'fk_1', + spName: 'fk_1', + srcColumns: ['col1'], + spColumns: ['col1'], + srcReferTable: 'table2', + spReferTable: 'table2', + srcReferColumns: ['col2'], + spReferColumns: ['col2'], + srcOnDelete: 'CASCADE', + spOnDelete: 'CASCADE', + srcOnUpdate: 'NO ACTION', + spOnUpdate: 'NO ACTION', srcFkId: '1', spFkId: '1', - spColIds: ['1'], - spReferColumnIds: ['1'], - spReferTableId: '1', + spColIds: ['col1_id'], + spReferColumnIds: ['col2_id'], + spReferTableId: 'table2_id', }, ] component.ddlStmts = 'some ddl statment' diff --git a/ui/src/app/components/object-detail/object-detail.component.ts b/ui/src/app/components/object-detail/object-detail.component.ts index 52ab75386..b539a328b 100644 --- a/ui/src/app/components/object-detail/object-detail.component.ts +++ b/ui/src/app/components/object-detail/object-detail.component.ts @@ -93,10 +93,14 @@ export class ObjectDetailComponent implements OnInit { 'srcColumns', 'srcReferTable', 'srcReferColumns', + 'srcOnDelete', + 'srcOnUpdate', 'spName', 'spColumns', 'spReferTable', 'spReferColumns', + 'spOnDelete', + 'spOnUpdate', 'dropButton', ] displayedPkColumns = [ @@ -1008,6 +1012,8 @@ export class ObjectDetailComponent implements OnInit { srcColumns: fk.srcColumns, srcRefTable: fk.srcReferTable, srcRefColumns: fk.srcReferColumns, + srcOnDelete: fk.srcOnDelete, + srcOnUpdate: fk.srcOnUpdate, Id: fk.srcFkId, }) if (fk.spName != '') { @@ -1016,6 +1022,8 @@ export class ObjectDetailComponent implements OnInit { spColumns: fk.spColumns, spRefTable: fk.spReferTable, spRefColumns: fk.spReferColumns, + spOnDelete: fk.spOnDelete, + spOnUpdate: fk.spOnUpdate, Id: fk.spFkId, spColIds: fk.spColIds, spReferColumnIds: fk.spReferColumnIds, @@ -1039,6 +1047,10 @@ export class ObjectDetailComponent implements OnInit { srcReferTable: new FormControl(srcArr[i].srcRefTable), spReferColumns: new FormControl(spArr[i].spRefColumns), srcReferColumns: new FormControl(srcArr[i].srcRefColumns), + spOnDelete: new FormControl(spArr[i].spOnDelete), + srcOnDelete: new FormControl(srcArr[i].srcOnDelete), + spOnUpdate: new FormControl(spArr[i].spOnUpdate), + srcOnUpdate: new FormControl(srcArr[i].srcOnUpdate), Id: new FormControl(spArr[i].Id), spColIds: new FormControl(spArr[i].spColIds), spReferColumnIds: new FormControl(spArr[i].spReferColumnIds), @@ -1062,6 +1074,10 @@ export class ObjectDetailComponent implements OnInit { srcReferTable: new FormControl(srcArr[i].srcRefTable), spReferColumns: new FormControl([]), srcReferColumns: new FormControl(srcArr[i].srcRefColumns), + spOnDelete: new FormControl(''), //check if this needs to be changed + srcOnDelete: new FormControl(srcArr[i].srcOnDelete), + spOnUpdate: new FormControl(''), + srcOnUpdate: new FormControl(srcArr[i].srcOnUpdate), Id: new FormControl(srcArr[i].Id), spColIds: new FormControl([]), spReferColumnIds: new FormControl([]), @@ -1092,6 +1108,8 @@ export class ObjectDetailComponent implements OnInit { ColIds: fk.spColIds, ReferTableId: fk.spReferTableId, ReferColumnIds: fk.spReferColumnIds, + OnDelete: fk.spOnDelete, + OnUpdate: fk.spOnUpdate, Id: fk.spFkId, }) }) @@ -1120,6 +1138,8 @@ export class ObjectDetailComponent implements OnInit { fk.spColIds = [] fk.spReferColumnIds = [] fk.spReferTableId = '' + fk.spOnDelete = '' //check if this needs to be changed + fk.spOnUpdate = '' } }) this.setFkRows() diff --git a/ui/src/app/model/conv.ts b/ui/src/app/model/conv.ts index c55c6fada..0f2cffd59 100644 --- a/ui/src/app/model/conv.ts +++ b/ui/src/app/model/conv.ts @@ -124,6 +124,8 @@ export interface IForeignKey { ReferTableId: string ReferColumnIds: string[] Id: string | undefined + OnDelete: string + OnUpdate: string } export interface IIndexKey { diff --git a/ui/src/app/model/fk-tab-data.ts b/ui/src/app/model/fk-tab-data.ts index 7d1e8db2f..d18d1a0c3 100644 --- a/ui/src/app/model/fk-tab-data.ts +++ b/ui/src/app/model/fk-tab-data.ts @@ -12,4 +12,8 @@ export default interface IFkTabData { spColIds: string[] spReferColumnIds: string[] spReferTableId: string + srcOnDelete: string + spOnDelete: string + srcOnUpdate: string + spOnUpdate: string } From 6839c3fcafa4eeac4bdcfe4f295f05e6a27a5421 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Fri, 5 Jul 2024 10:10:36 +0000 Subject: [PATCH 09/46] Modified some unit tests --- sources/postgres/toddl_test.go | 16 ++++++++-------- webv2/api/schema_test.go | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sources/postgres/toddl_test.go b/sources/postgres/toddl_test.go index 961058a0b..ef8943647 100644 --- a/sources/postgres/toddl_test.go +++ b/sources/postgres/toddl_test.go @@ -133,8 +133,8 @@ func TestToSpannerType(t *testing.T) { "c6": schema.Column{Name: "f", Id: "c6", Type: schema.Type{Name: "timestamptz"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.RESTRICT}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.SET_NULL, OnUpdate: constants.NO_ACTION}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -179,8 +179,8 @@ func TestToSpannerType(t *testing.T) { "c6": ddl.ColumnDef{Name: "f", Id: "c6", T: ddl.Type{Name: ddl.Timestamp}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } @@ -214,8 +214,8 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": schema.Column{Name: "g", Id: "c7", Type: schema.Type{Name: "json"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.RESTRICT}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.SET_NULL, OnUpdate: constants.NO_ACTION}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -261,8 +261,8 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": ddl.ColumnDef{Name: "g", Id: "c7", T: ddl.Type{Name: ddl.JSON}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index 4f1361e63..121f8fe87 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -338,8 +338,8 @@ func TestGetTableWithErrors(t *testing.T) { }, }, SchemaIssues: map[string]internal.TableIssues{ - "t1": {TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete}}, "t2": {TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnUpdate}}, + "t1": {TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete}}, }, }, expectedTableIdName: nil, From 733b2d163f88f1de02c28aaf56b5a40c737ae30b Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Sat, 6 Jul 2024 20:05:39 +0000 Subject: [PATCH 10/46] Postgres support + UI + warning message generation for unsupported dialects --- internal/convert.go | 2 +- internal/helpers.go | 8 -- internal/mapping.go | 45 +++++----- internal/mapping_test.go | 6 +- internal/reports/report_helpers.go | 30 +++---- sources/postgres/infoschema.go | 82 ++++++------------- .../object-detail.component.html | 12 +-- .../object-detail.component.scss | 4 +- .../object-detail/object-detail.component.ts | 13 ++- .../services/conversion/conversion.service.ts | 4 + 10 files changed, 87 insertions(+), 119 deletions(-) diff --git a/internal/convert.go b/internal/convert.go index 36b5c3790..fca2ef6c8 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -125,7 +125,7 @@ const ( ArrayTypeNotSupported ForeignKeyOnDelete ForeignKeyOnUpdate - // ForeignKeyActionsNotSupported + ForeignKeyActionsNotSupported SequenceCreated ) diff --git a/internal/helpers.go b/internal/helpers.go index 8e1c0eb41..8c7bb4cdd 100644 --- a/internal/helpers.go +++ b/internal/helpers.go @@ -182,11 +182,3 @@ func ResolveForeignKeyIds(schema map[string]schema.Table) { } } } - -func AddTableLevelIssue(tableIssues TableIssues, issue SchemaIssue) TableIssues { - tableIssues = TableIssues{ - TableLevelIssues: append(tableIssues.TableLevelIssues, issue), - ColumnLevelIssues: tableIssues.ColumnLevelIssues} - - return tableIssues -} diff --git a/internal/mapping.go b/internal/mapping.go index da524f29a..64de6a0da 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -142,50 +142,47 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { return getSpannerValidName(conv, srcFkName) } -//this function already exists in sources/common/utils.go but is private - can I reuse it by making it public? -// func findSchemaIssue(schemaissue []SchemaIssue, issue SchemaIssue) bool { -// ind := -1 -// for i := 0; i < len(schemaissue); i++ { -// if schemaissue[i] == issue { -// ind = i -// } -// } -// return ind!=-1 -// } - -// if source schema is not reading the rule (i.e. srcDeleteRule = "", then return the same) func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { + if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" { return srcDeleteRule } - // if srcDeleteRule == "" { - // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) - // return "" - // } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnDelete) + if srcDeleteRule == "" { + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyActionsNotSupported), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + return "" + } + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} return "NO ACTION" } // Add comment func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { + if srcUpdateRule == "NO ACTION" { return srcUpdateRule } - // if srcUpdateRule == "" { - // conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyActionsNotSupported) - // return "" - // } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - conv.SchemaIssues[srcTableId] = AddTableLevelIssue(conv.SchemaIssues[srcTableId], ForeignKeyOnUpdate) + if srcUpdateRule == "" { + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyActionsNotSupported), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + return "" + } + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), + ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + return "NO ACTION" } diff --git a/internal/mapping_test.go b/internal/mapping_test.go index 601d7156f..332576cfb 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -388,8 +388,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcDeleteRule: "", }, expectedOnDelete: "", - // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, - expectedIssues: nil, + expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, }, } for _, tc := range tests { @@ -477,8 +476,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcUpdateRule: "", }, expectedOnUpdate: "", - // expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, - expectedIssues: nil, + expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, }, } for _, tc := range tests { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index b6c7ad790..f20d3c4be 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -112,21 +112,21 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if p.severity == warning { - // flag := false + flag := false for _, spFk := range conv.SpSchema[tableId].ForeignKeys { srcFk, err := internal.GetSrcFkFromId(conv.SrcSchema[tableId].ForeignKeys, spFk.Id) if err != nil { continue } - // if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { - // flag = true - // issue := internal.ForeignKeyActionsNotSupported - // toAppend := Issue{ - // Category: IssueDB[issue].Category, - // Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), - // } - // l = append(l, toAppend) - // } + if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { + flag = true + issue := internal.ForeignKeyActionsNotSupported + toAppend := Issue{ + Category: IssueDB[issue].Category, + Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), + } + l = append(l, toAppend) + } if srcFk.OnDelete != spFk.OnDelete { issue := internal.ForeignKeyOnDelete @@ -556,11 +556,11 @@ var IssueDB = map[internal.SchemaIssue]struct { CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, - internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, - internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - // internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, + internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } type Severity int diff --git a/sources/postgres/infoschema.go b/sources/postgres/infoschema.go index d69b9aa21..ed25c13a1 100644 --- a/sources/postgres/infoschema.go +++ b/sources/postgres/infoschema.go @@ -367,51 +367,27 @@ func (isi InfoSchemaImpl) GetConstraints(conv *internal.Conv, table common.Schem // GetForeignKeys returns a list of all the foreign key constraints. func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.SchemaAndName) (foreignKeys []schema.ForeignKey, err error) { - // q := `SELECT - // rc.constraint_schema AS "TABLE_SCHEMA", - // ccu.table_name AS "REFERENCED_TABLE_NAME", - // kcu.column_name AS "COLUMN_NAME", - // ccu.column_name AS "REF_COLUMN_NAME", - // rc.constraint_name AS "CONSTRAINT_NAME", - // rc.delete_rule AS "ON_DELETE", - // rc.update_rule AS "ON_UPDATE" - // FROM - // INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc - // INNER JOIN - // INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu - // ON rc.constraint_name = kcu.constraint_name - // AND rc.constraint_schema = kcu.constraint_schema - // AND rc.table_name = kcu.table_name - // INNER JOIN - // INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu - // ON rc.constraint_name = ccu.constraint_name - // AND rc.constraint_schema = ccu.constraint_schema - // WHERE - // rc.constraint_schema = $1 - // AND kcu.table_name = $2;` - q := `SELECT - schema_name AS "TABLE_SCHEMA", - cl.relname AS "TABLE_NAME", - att2.attname AS "COLUMN_NAME", - att.attname AS "REF_COLUMN_NAME", - conname AS "CONSTRAINT_NAME" - FROM (SELECT - UNNEST(con1.conkey) AS "parent", - UNNEST(con1.confkey) AS "child", - con1.confrelid, - con1.conrelid, - con1.conname, - ns.nspname AS schema_name - FROM PG_CLASS cl - JOIN PG_NAMESPACE ns ON cl.relnamespace = ns.oid - JOIN PG_CONSTRAINT con1 ON con1.conrelid = cl.oid - WHERE ns.nspname = $1 AND cl.relname = $2 AND con1.contype = 'f') con - JOIN PG_ATTRIBUTE att ON - att.attrelid = con.confrelid AND att.attnum = con.child - JOIN PG_CLASS cl ON - cl.oid = con.confrelid - JOIN PG_ATTRIBUTE att2 ON - att2.attrelid = con.conrelid AND att2.attnum = con.parent;` + q := `SELECT + rc.constraint_schema AS "TABLE_SCHEMA", + ccu.table_name AS "REFERENCED_TABLE_NAME", + kcu.column_name AS "COLUMN_NAME", + ccu.column_name AS "REF_COLUMN_NAME", + rc.constraint_name AS "CONSTRAINT_NAME", + rc.delete_rule AS "ON_DELETE", + rc.update_rule AS "ON_UPDATE" + FROM + INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc + INNER JOIN + INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu + ON rc.constraint_name = kcu.constraint_name + AND rc.constraint_schema = kcu.constraint_schema + INNER JOIN + INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu + ON rc.constraint_name = ccu.constraint_name + AND rc.constraint_schema = ccu.constraint_schema + WHERE + rc.constraint_schema = $1 + AND kcu.table_name = $2;` rows, err := isi.Db.Query(q, table.Schema, table.Name) @@ -424,8 +400,7 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem fKeys := make(map[string]common.FkConstraint) var keyNames []string for rows.Next() { - // err := rows.Scan(&refTable.Schema, &refTable.Name, &col, &refCol, &fKeyName, &onDelete, &onUpdate) - err := rows.Scan(&refTable.Schema, &refTable.Name, &col, &refCol, &fKeyName) + err := rows.Scan(&refTable.Schema, &refTable.Name, &col, &refCol, &fKeyName, &onDelete, &onUpdate) if err != nil { conv.Unexpected(fmt.Sprintf("Can't scan: %v", err)) continue @@ -436,12 +411,11 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem fk.Cols = append(fk.Cols, col) fk.Refcols = append(fk.Refcols, refCol) fKeys[fKeyName] = fk - // fk.OnDelete = onDelete - // fk.OnUpdate = onUpdate + fk.OnDelete = onDelete + fk.OnUpdate = onUpdate continue } - // fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: tableName, Refcols: []string{refCol}, Cols: []string{col}, OnDelete: onDelete, OnUpdate: onUpdate} - fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: tableName, Refcols: []string{refCol}, Cols: []string{col}} + fKeys[fKeyName] = common.FkConstraint{Name: fKeyName, Table: tableName, Refcols: []string{refCol}, Cols: []string{col}, OnDelete: onDelete, OnUpdate: onUpdate} keyNames = append(keyNames, fKeyName) } @@ -454,10 +428,8 @@ func (isi InfoSchemaImpl) GetForeignKeys(conv *internal.Conv, table common.Schem ColumnNames: fKeys[k].Cols, ReferTableName: fKeys[k].Table, ReferColumnNames: fKeys[k].Refcols, - // OnDelete: fKeys[k].OnDelete, - // OnUpdate: fKeys[k].OnUpdate, - OnDelete: "xyz", - OnUpdate: "xyz", + OnDelete: fKeys[k].OnDelete, + OnUpdate: fKeys[k].OnUpdate, }) } return foreignKeys, nil diff --git a/ui/src/app/components/object-detail/object-detail.component.html b/ui/src/app/components/object-detail/object-detail.component.html index a328da025..9016548bf 100644 --- a/ui/src/app/components/object-detail/object-detail.component.html +++ b/ui/src/app/components/object-detail/object-detail.component.html @@ -562,11 +562,11 @@

- + - - + - + - +
{{ srcDbName }}{{ srcDbName }} +
Spanner
- +
On Delete {{ element.get('srcOnDelete').value }} On Update {{ element.get('srcOnUpdate').value }} @@ -662,14 +662,14 @@

On Delete {{ element.get('spOnDelete').value }} On Update {{ element.get('spOnUpdate').value }} diff --git a/ui/src/app/components/object-detail/object-detail.component.scss b/ui/src/app/components/object-detail/object-detail.component.scss index 64820d786..e0c181acb 100644 --- a/ui/src/app/components/object-detail/object-detail.component.scss +++ b/ui/src/app/components/object-detail/object-detail.component.scss @@ -212,12 +212,12 @@ } .mat-column-srcIsNotNull, - // .mat-column-srcReferColumns, - .mat-column-srcOnUpdate, .mat-column-srcDatabase, .mat-column-srcIndexOrder { border-right: 1px solid #cdcccd; } + + .mat-column-spName, .drop-button-left-border { border-left: 1px solid #cdcccd; } diff --git a/ui/src/app/components/object-detail/object-detail.component.ts b/ui/src/app/components/object-detail/object-detail.component.ts index b539a328b..403a932d7 100644 --- a/ui/src/app/components/object-detail/object-detail.component.ts +++ b/ui/src/app/components/object-detail/object-detail.component.ts @@ -72,6 +72,8 @@ export class ObjectDetailComponent implements OnInit { processedAutoGenMap: GroupedAutoGens = {}; sequenceKinds: string[] = [] autoGenSupported: boolean = false + foreignKeyActionsSupported: boolean = false + ngOnInit(): void { this.data.conv.subscribe({ next: (res: IConv) => { @@ -83,6 +85,9 @@ export class ObjectDetailComponent implements OnInit { this.srcDbName = extractSourceDbName(this.conv.DatabaseType) } this.autoGenSupported = autoGenSupportedDbs.includes(this.srcDbName) + if (this.srcDbName == SourceDbNames.MySQL || this.srcDbName == SourceDbNames.Postgres){ + this.foreignKeyActionsSupported = true + } } srcDisplayedColumns = ['srcOrder', 'srcColName', 'srcDataType', 'srcColMaxLength', 'srcIsPk', 'srcIsNotNull'] @@ -93,14 +98,10 @@ export class ObjectDetailComponent implements OnInit { 'srcColumns', 'srcReferTable', 'srcReferColumns', - 'srcOnDelete', - 'srcOnUpdate', 'spName', 'spColumns', 'spReferTable', 'spReferColumns', - 'spOnDelete', - 'spOnUpdate', 'dropButton', ] displayedPkColumns = [ @@ -210,6 +211,10 @@ export class ObjectDetailComponent implements OnInit { this.spColspan++; this.srcColspan++; } + if (this.foreignKeyActionsSupported && !this.displayedFkColumns.includes('srcOnDelete') ) { + this.displayedFkColumns.splice(4, 0, 'srcOnDelete', 'srcOnUpdate'); + this.displayedFkColumns.splice(10, 0, 'spOnDelete', 'spOnUpdate'); + } if (this.currentObject?.type === ObjectExplorerNodeType.Table) { this.checkIsInterleave() diff --git a/ui/src/app/services/conversion/conversion.service.ts b/ui/src/app/services/conversion/conversion.service.ts index abc64338f..13eaa12e0 100644 --- a/ui/src/app/services/conversion/conversion.service.ts +++ b/ui/src/app/services/conversion/conversion.service.ts @@ -413,6 +413,10 @@ export class ConversionService { spColIds: spColIds, spReferColumnIds: spReferColumnIds, spReferTableId: spFk ? spFk.ReferTableId : '', + srcOnDelete: srcFk.OnDelete, + spOnDelete: spFk ? spFk.OnDelete : '', + srcOnUpdate: srcFk.OnUpdate, + spOnUpdate: spFk? spFk.OnUpdate : '', } }) } From 14a15b2411f5cc75ec255b5607a25d0f68fdf6bf Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Mon, 8 Jul 2024 07:31:50 +0000 Subject: [PATCH 11/46] final code for Postgres + UI --- internal/convert.go | 1 - internal/mapping.go | 16 ++------------- internal/mapping_test.go | 4 ++-- internal/reports/report_helpers.go | 20 ++++--------------- sources/postgres/toddl_test.go | 15 ++++++++++++-- ui/dist/ui/index.html | 2 +- ...7e1ba342ec.js => main.d5cd3b3eb1566c78.js} | 2 +- 7 files changed, 23 insertions(+), 37 deletions(-) rename ui/dist/ui/{main.7a1b557e1ba342ec.js => main.d5cd3b3eb1566c78.js} (66%) diff --git a/internal/convert.go b/internal/convert.go index fca2ef6c8..1df60633f 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -125,7 +125,6 @@ const ( ArrayTypeNotSupported ForeignKeyOnDelete ForeignKeyOnUpdate - ForeignKeyActionsNotSupported SequenceCreated ) diff --git a/internal/mapping.go b/internal/mapping.go index 71fefc2fe..edb4932f2 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -158,19 +158,13 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { // generate a warning message for the user func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" { + if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { return srcDeleteRule } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - if srcDeleteRule == "" { - conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyActionsNotSupported), - ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "" - } conv.SchemaIssues[srcTableId] = TableIssues{ TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} @@ -192,19 +186,13 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // generate a warning message for the user func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == "NO ACTION" { + if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { return srcUpdateRule } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } - if srcUpdateRule == "" { - conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyActionsNotSupported), - ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} - return "" - } conv.SchemaIssues[srcTableId] = TableIssues{ TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} diff --git a/internal/mapping_test.go b/internal/mapping_test.go index e837dccfb..2b694f6b1 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -385,7 +385,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcDeleteRule: "", }, expectedOnDelete: "", - expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: nil, }, } for _, tc := range tests { @@ -473,7 +473,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcUpdateRule: "", }, expectedOnUpdate: "", - expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: nil, }, } for _, tc := range tests { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index f20d3c4be..d0ceb6023 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -112,22 +112,11 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if p.severity == warning { - flag := false for _, spFk := range conv.SpSchema[tableId].ForeignKeys { srcFk, err := internal.GetSrcFkFromId(conv.SrcSchema[tableId].ForeignKeys, spFk.Id) if err != nil { continue } - if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { - flag = true - issue := internal.ForeignKeyActionsNotSupported - toAppend := Issue{ - Category: IssueDB[issue].Category, - Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), - } - l = append(l, toAppend) - } - if srcFk.OnDelete != spFk.OnDelete { issue := internal.ForeignKeyOnDelete toAppend := Issue{ @@ -556,11 +545,10 @@ var IssueDB = map[internal.SchemaIssue]struct { CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, - internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, - internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, + internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } type Severity int diff --git a/sources/postgres/toddl_test.go b/sources/postgres/toddl_test.go index e7b9b157e..e335a9345 100644 --- a/sources/postgres/toddl_test.go +++ b/sources/postgres/toddl_test.go @@ -15,6 +15,7 @@ package postgres import ( + "sort" "testing" "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" @@ -190,7 +191,12 @@ func TestToSpannerType(t *testing.T) { ColumnLevelIssues: map[string][]internal.SchemaIssue{ "c2": []internal.SchemaIssue{internal.Widened}}, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) + actualIssues := conv.SchemaIssues[tableId] + sort.Slice(actualIssues.TableLevelIssues, func(i, j int) bool { + return actualIssues.TableLevelIssues[i] < actualIssues.TableLevelIssues[j] + }) + + assert.Equal(t, expectedIssues, actualIssues) } // This is just a very basic smoke-test for toExperimentalSpannerType. @@ -274,7 +280,12 @@ func TestToExperimentalSpannerType(t *testing.T) { ColumnLevelIssues: map[string][]internal.SchemaIssue{ "c2": []internal.SchemaIssue{internal.Widened}}, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) + actualIssues := conv.SchemaIssues[tableId] + sort.Slice(actualIssues.TableLevelIssues, func(i, j int) bool { + return actualIssues.TableLevelIssues[i] < actualIssues.TableLevelIssues[j] + }) + + assert.Equal(t, expectedIssues, actualIssues) } func dropComments(t *ddl.CreateTable) { diff --git a/ui/dist/ui/index.html b/ui/dist/ui/index.html index 05143d45e..56f2228dc 100644 --- a/ui/dist/ui/index.html +++ b/ui/dist/ui/index.html @@ -12,5 +12,5 @@ - + diff --git a/ui/dist/ui/main.7a1b557e1ba342ec.js b/ui/dist/ui/main.d5cd3b3eb1566c78.js similarity index 66% rename from ui/dist/ui/main.7a1b557e1ba342ec.js rename to ui/dist/ui/main.d5cd3b3eb1566c78.js index 561ca89c9..4318c9cda 100644 --- a/ui/dist/ui/main.7a1b557e1ba342ec.js +++ b/ui/dist/ui/main.d5cd3b3eb1566c78.js @@ -1 +1 @@ -(self.webpackChunkui=self.webpackChunkui||[]).push([[590],{536:(ld,G,Re)=>{"use strict";let S=null,U=1;const W=Symbol("SIGNAL");function V(t){const n=S;return S=t,n}function j(t){if((!H(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==U)){if(!t.producerMustRecompute(t)&&!Fe(t))return t.dirty=!1,void(t.lastCleanEpoch=U);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=U}}function Fe(t){Ce(t);for(let n=0;n0}function Ce(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}let me=null;function J(t){return"function"==typeof t}function L(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const O=L(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Z(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class de{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(J(i))try{i()}catch(r){n=r instanceof O?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{je(r)}catch(a){n=n??[],a instanceof O?n=[...n,...a.errors]:n.push(a)}}if(n)throw new O(n)}}add(n){var e;if(n&&n!==this)if(this.closed)je(n);else{if(n instanceof de){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Z(e,n)}remove(n){const{_finalizers:e}=this;e&&Z(e,n),n instanceof de&&n._removeParent(this)}}de.EMPTY=(()=>{const t=new de;return t.closed=!0,t})();const Ee=de.EMPTY;function ce(t){return t instanceof de||t&&"closed"in t&&J(t.remove)&&J(t.add)&&J(t.unsubscribe)}function je(t){J(t)?t():t.unsubscribe()}const Xe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ze={setTimeout(t,n,...e){const{delegate:i}=ze;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=ze;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function ut(t){ze.setTimeout(()=>{const{onUnhandledError:n}=Xe;if(!n)throw t;n(t)})}function oi(){}const Kt=_o("C",void 0,void 0);function _o(t,n,e){return{kind:t,value:n,error:e}}let Mo=null;function Ti(t){if(Xe.useDeprecatedSynchronousErrorHandling){const n=!Mo;if(n&&(Mo={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Mo;if(Mo=null,e)throw i}}else t()}class xs extends de{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ce(n)&&n.add(this)):this.destination=yc}static create(n,e,i){return new Ds(n,e,i)}next(n){this.isStopped?Qr(function ws(t){return _o("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qr(function go(t){return _o("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qr(Kt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const ar=Function.prototype.bind;function bc(t,n){return ar.call(t,n)}class Ag{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){vc(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){vc(i)}else vc(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){vc(e)}}}class Ds extends xs{constructor(n,e,i){let o;if(super(),J(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Xe.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&bc(n.next,r),error:n.error&&bc(n.error,r),complete:n.complete&&bc(n.complete,r)}):o=n}this.destination=new Ag(o)}}function vc(t){Xe.useDeprecatedSynchronousErrorHandling?function _c(t){Xe.useDeprecatedSynchronousErrorHandling&&Mo&&(Mo.errorThrown=!0,Mo.error=t)}(t):ut(t)}function Qr(t,n){const{onStoppedNotification:e}=Xe;e&&ze.setTimeout(()=>e(t,n))}const yc={closed:!0,next:oi,error:function Sh(t){throw t},complete:oi},Pg="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ra(t){return t}function Tw(t){return 0===t.length?Ra:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let li=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function ZN(t){return t&&t instanceof xs||function KN(t){return t&&J(t.next)&&J(t.error)&&J(t.complete)}(t)&&ce(t)}(e)?e:new Ds(e,i,o);return Ti(()=>{const{operator:a,source:s}=this;r.add(a?a.call(r,s):s?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Iw(i))((o,r)=>{const a=new Ds({next:s=>{try{e(s)}catch(c){r(c),a.unsubscribe()}},error:r,complete:o});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Pg](){return this}pipe(...e){return Tw(e)(this)}toPromise(e){return new(e=Iw(e))((i,o)=>{let r;this.subscribe(a=>r=a,a=>o(a),()=>i(r))})}}return t.create=n=>new t(n),t})();function Iw(t){var n;return null!==(n=t??Xe.Promise)&&void 0!==n?n:Promise}const YN=L(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let qe=(()=>{class t extends li{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Ew(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new YN}next(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?Ee:(this.currentObservers=null,r.push(e),new de(()=>{this.currentObservers=null,Z(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new li;return e.source=this,e}}return t.create=(n,e)=>new Ew(n,e),t})();class Ew extends qe{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:Ee}}class mt extends qe{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Ow(t){return J(t?.lift)}function $i(t){return n=>{if(Ow(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Fi(t,n,e,i,o){return new QN(t,n,e,i,o)}class QN extends xs{constructor(n,e,i,o,r,a){super(n),this.onFinalize=r,this.shouldUnsubscribe=a,this._next=e?function(s){try{e(s)}catch(c){n.error(c)}}:super._next,this._error=o?function(s){try{o(s)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function nt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{i.next(t.call(n,r,o++))}))})}const Aw="https://g.co/ng/security#xss";class ue extends Error{constructor(n,e){super(function Cc(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function Rg(t){return n=>{setTimeout(t,void 0,n)}}const Ne=class XN extends qe{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,r=e||(()=>null),a=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(r=Rg(r),o&&(o=Rg(o)),a&&(a=Rg(a)));const s=super.subscribe({next:o,error:r,complete:a});return n instanceof de&&n.add(s),s}};var $t=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}($t||{});function yn(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(yn).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function Ng(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}var Mh=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(Mh||{}),sr=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}(sr||{});function Xr(t){return{toString:t}.toString()}const di=globalThis,Sr={},Jt=[];function mi(t){for(let n in t)if(t[n]===mi)return n;throw Error("Could not find renamed property on target object.")}function iF(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}const dd=mi({\u0275cmp:mi}),Fg=mi({\u0275dir:mi}),Lg=mi({\u0275pipe:mi}),Nw=mi({\u0275mod:mi}),Jr=mi({\u0275fac:mi}),ud=mi({__NG_ELEMENT_ID__:mi}),Fw=mi({__NG_ENV_ID__:mi});var ge=function(t){return t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",t}(ge||{});function Lw(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const r=n.length;if(o+r===i||t.charCodeAt(o+r)<=32)return o}e=o+1}}function Bg(t,n,e){let i=0;for(;in){a=r-1;break}}}for(;rr?"":o[g+1].toLowerCase();const w=8&i?b:null;if(w&&-1!==Lw(w,u,0)||2&i&&u!==b){if(cr(i))return!1;a=!0}}}}else{if(!a&&!cr(i)&&!cr(c))return!1;if(a&&cr(c))continue;a=!1,i=c|1&i}}return cr(i)||a}function cr(t){return 0==(1&t)}function aF(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+s+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!cr(a)&&(n+=$w(r,o),o=""),i=a,r=r||!cr(i);e++}return""!==o&&(n+=$w(r,o)),n}function Ie(t){return Xr(()=>{const n=qw(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Mh.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||sr.Emulated,styles:t.styles||Jt,_:null,schemas:t.schemas||null,tView:null,id:""};Ww(e);const i=t.dependencies;return e.directiveDefs=Th(i,!1),e.pipeDefs=Th(i,!0),e.id=function _F(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function pF(t){return Ht(t)||Cn(t)}function fF(t){return null!==t}function st(t){return Xr(()=>({type:t.type,bootstrap:t.bootstrap||Jt,declarations:t.declarations||Jt,imports:t.imports||Jt,exports:t.exports||Jt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Gw(t,n){if(null==t)return Sr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,a,s=ge.None;Array.isArray(o)?(s=o[0],r=o[1],a=o[2]??r):(r=o,a=o),n?(e[r]=s!==ge.None?[i,s]:i,n[r]=a):e[r]=i}return e}function Q(t){return Xr(()=>{const n=qw(t);return Ww(n),n})}function bo(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ht(t){return t[dd]||null}function Cn(t){return t[Fg]||null}function Ln(t){return t[Lg]||null}function Un(t,n){const e=t[Nw]||null;if(!e&&!0===n)throw new Error(`Type ${yn(t)} does not have '\u0275mod' property.`);return e}function qw(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||Sr,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Jt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Gw(t.inputs,n),outputs:Gw(t.outputs),debugInfo:null}}function Ww(t){t.features?.forEach(n=>n(t))}function Th(t,n){if(!t)return null;const e=n?Ln:pF;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(fF)}const Vi=0,He=1,ct=2,Ji=3,lr=4,$n=5,dr=6,wc=7,Ii=8,Gn=9,ea=10,Et=11,md=12,Kw=13,xc=14,Gi=15,pd=16,Dc=17,ta=18,fd=19,Zw=20,La=21,Ih=22,Ss=23,Ot=25,Vg=1,kr=7,Sc=9,en=10;var jg=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(jg||{});function qn(t){return Array.isArray(t)&&"object"==typeof t[Vg]}function Wn(t){return Array.isArray(t)&&!0===t[Vg]}function zg(t){return 0!=(4&t.flags)}function ks(t){return t.componentOffset>-1}function Oh(t){return 1==(1&t.flags)}function ur(t){return!!t.template}function Hg(t){return 0!=(512&t[ct])}const Jw="svg";let tx=!1;function bi(t){for(;Array.isArray(t);)t=t[Vi];return t}function _d(t,n){return bi(n[t])}function io(t,n){return bi(n[t.index])}function bd(t,n){return t.data[n]}function kc(t,n){return t[n]}function Eo(t,n){const e=n[t];return qn(e)?e:e[Vi]}function qg(t){return 128==(128&t[ct])}function Mr(t,n){return null==n?null:t[n]}function ix(t){t[Dc]=0}function SF(t){1024&t[ct]||(t[ct]|=1024,qg(t)&&vd(t))}function Wg(t){return!!(9216&t[ct]||t[Ss]?.dirty)}function Kg(t){Wg(t)?vd(t):64&t[ct]&&(function CF(){return tx}()?(t[ct]|=1024,vd(t)):t[ea].changeDetectionScheduler?.notify())}function vd(t){t[ea].changeDetectionScheduler?.notify();let n=Ms(t);for(;null!==n&&!(8192&n[ct])&&(n[ct]|=8192,qg(n));)n=Ms(n)}function Ah(t,n){if(256==(256&t[ct]))throw new ue(911,!1);null===t[La]&&(t[La]=[]),t[La].push(n)}function Ms(t){const n=t[Ji];return Wn(n)?n[Ji]:n}const Dt={lFrame:hx(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function rx(){return Dt.bindingsEnabled}function Mc(){return null!==Dt.skipHydrationRootTNode}function be(){return Dt.lFrame.lView}function Gt(){return Dt.lFrame.tView}function ie(t){return Dt.lFrame.contextLView=t,t[Ii]}function ne(t){return Dt.lFrame.contextLView=null,t}function pi(){let t=ax();for(;null!==t&&64===t.type;)t=t.parent;return t}function ax(){return Dt.lFrame.currentTNode}function Tr(t,n){const e=Dt.lFrame;e.currentTNode=t,e.isParent=n}function Yg(){return Dt.lFrame.isParent}function Qg(){Dt.lFrame.isParent=!1}function no(){const t=Dt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ia(){return Dt.lFrame.bindingIndex}function hr(){return Dt.lFrame.bindingIndex++}function na(t){const n=Dt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function FF(t,n){const e=Dt.lFrame;e.bindingIndex=e.bindingRootIndex=t,Xg(n)}function Xg(t){Dt.lFrame.currentDirectiveIndex=t}function Jg(t){const n=Dt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e_(){return Dt.lFrame.currentQueryIndex}function Ph(t){Dt.lFrame.currentQueryIndex=t}function BF(t){const n=t[He];return 2===n.type?n.declTNode:1===n.type?t[$n]:null}function dx(t,n,e){if(e&$t.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&$t.Host||(o=BF(r),null===o||(r=r[xc],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Dt.lFrame=ux();return i.currentTNode=n,i.lView=t,!0}function t_(t){const n=ux(),e=t[He];Dt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function ux(){const t=Dt.lFrame,n=null===t?null:t.child;return null===n?hx(t):n}function hx(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function mx(){const t=Dt.lFrame;return Dt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const px=mx;function i_(){const t=mx();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Kn(){return Dt.lFrame.selectedIndex}function Ts(t){Dt.lFrame.selectedIndex=t}function Ei(){const t=Dt.lFrame;return bd(t.tView,t.selectedIndex)}function ei(){Dt.lFrame.currentNamespace=Jw}function mr(){!function zF(){Dt.lFrame.currentNamespace=null}()}let gx=!0;function Rh(){return gx}function Ba(t){gx=t}function HF(){return Tc(pi(),be())}function Tc(t,n){return new Be(io(t,n))}let r_,Be=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=HF}return t})();function _x(t){return t instanceof Be?t.nativeElement:t}function Ic(t,n){t.forEach(e=>Array.isArray(e)?Ic(e,n):n(e))}function bx(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Nh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Oo(t,n,e){let i=Ec(t,n);return i>=0?t[1|i]=e:(i=~i,function vx(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function o_(t,n){const e=Ec(t,n);if(e>=0)return t[1|e]}function Ec(t,n){return function yx(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),a=t[r<n?o=r:i=r+1}return~(o<YF}),YF="ng",Sx=new se(""),ra=new se("",{providedIn:"platform",factory:()=>"unknown"}),ui=new se(""),s_=new se("",{providedIn:"root",factory:()=>Va().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),JF=mi({__forward_ref__:mi});function Qt(t){return t.__forward_ref__=Qt,t.toString=function(){return yn(this())},t}function wt(t){return Hh(t)?t():t}function Hh(t){return"function"==typeof t&&t.hasOwnProperty(JF)&&t.__forward_ref__===Qt}function h_(t){return t&&!!t.\u0275providers}function At(t){return"string"==typeof t?t:null==t?"":String(t)}function m_(t,n){throw new ue(-201,!1)}let p_;function Mx(){return p_}function yo(t){const n=p_;return p_=t,n}function Tx(t,n,e){const i=Vh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&$t.Optional?null:void 0!==n?n:void m_()}const xd={},f_="__NG_DI_FLAG__",Uh="ngTempTokenPath",a3=/\n/gm,Ix="__source";let Oc;function ja(t){const n=Oc;return Oc=t,n}function l3(t,n=$t.Default){if(void 0===Oc)throw new ue(-203,!1);return null===Oc?Tx(t,void 0,n):Oc.get(t,n&$t.Optional?null:void 0,n)}function X(t,n=$t.Default){return(Mx()||l3)(wt(t),n)}function xe(t,n=$t.Default){return X(t,$h(n))}function $h(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function g_(t){const n=[];for(let e=0;enull;function D_(t,n,e=!1){return Ox(t,n,e)}const Fc="__parameters__";function Bc(t,n,e){return Xr(()=>{const i=function T_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const a=new o(...r);return s.annotation=a,s;function s(c,u,p){const g=c.hasOwnProperty(Fc)?c[Fc]:Object.defineProperty(c,Fc,{value:[]})[Fc];for(;g.length<=p;)g.push(null);return(g[p]=g[p]||[]).push(a),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const za=Dd(Bc("Optional"),8),Vc=Dd(Bc("SkipSelf"),4);function Is(t,n){return t.hasOwnProperty(Jr)?t[Jr]:null}const Es=new se(""),Lx=new se("",-1),I_=new se("");class Yh{get(n,e=xd){if(e===xd){const i=new Error(`NullInjectorError: No provider for ${yn(n)}!`);throw i.name="NullInjectorError",i}return e}}function D3(...t){return{\u0275providers:Bx(0,t),\u0275fromNgModule:!0}}function Bx(t,...n){const e=[],i=new Set;let o;const r=a=>{e.push(a)};return Ic(n,a=>{const s=a;Xh(s,r,[],i)&&(o||=[],o.push(s))}),void 0!==o&&Vx(o,r),e}function Vx(t,n){for(let e=0;e{n(r,i)})}}function Xh(t,n,e,i){if(!(t=wt(t)))return!1;let o=null,r=jh(t);const a=!r&&Ht(t);if(r||a){if(a&&!a.standalone)return!1;o=t}else{const c=t.ngModule;if(r=jh(c),!r)return!1;o=c}const s=i.has(o);if(a){if(s)return!1;if(i.add(o),a.dependencies){const c="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const u of c)Xh(u,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!s){let u;i.add(o);try{Ic(r.imports,p=>{Xh(p,n,e,i)&&(u||=[],u.push(p))})}finally{}void 0!==u&&Vx(u,n)}if(!s){const u=Is(o)||(()=>new o);n({provide:o,useFactory:u,deps:Jt},o),n({provide:I_,useValue:o,multi:!0},o),n({provide:Es,useValue:()=>X(o),multi:!0},o)}const c=r.providers;if(null!=c&&!s){const u=t;E_(c,p=>{n(p,u)})}}}return o!==t&&void 0!==t.providers}function E_(t,n){for(let e of t)h_(e)&&(e=e.\u0275providers),Array.isArray(e)?E_(e,n):n(e)}const S3=mi({provide:String,useValue:mi});function O_(t){return null!==t&&"object"==typeof t&&S3 in t}function Os(t){return"function"==typeof t}const A_=new se(""),Jh={},M3={};let P_;function em(){return void 0===P_&&(P_=new Yh),P_}class Ao{}class jc extends Ao{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,N_(n,a=>this.processProvider(a)),this.records.set(Lx,zc(void 0,this)),o.has("environment")&&this.records.set(Ao,zc(void 0,this));const r=this.records.get(A_);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(I_,Jt,$t.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=ja(this),i=yo(void 0);try{return n()}finally{ja(e),yo(i)}}get(n,e=xd,i=$t.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Fw))return n[Fw](this);i=$h(i);const r=ja(this),a=yo(void 0);try{if(!(i&$t.SkipSelf)){let c=this.records.get(n);if(void 0===c){const u=function A3(t){return"function"==typeof t||"object"==typeof t&&t instanceof se}(n)&&Vh(n);c=u&&this.injectableDefInScope(u)?zc(R_(n),Jh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&$t.Self?em():this.parent).get(n,e=i&$t.Optional&&e===xd?null:e)}catch(s){if("NullInjectorError"===s.name){if((s[Uh]=s[Uh]||[]).unshift(yn(n)),r)throw s;return function u3(t,n,e,i){const o=t[Uh];throw n[Ix]&&o.unshift(n[Ix]),t.message=function h3(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=yn(n);if(Array.isArray(n))o=n.map(yn).join(" -> ");else if("object"==typeof n){let r=[];for(let a in n)if(n.hasOwnProperty(a)){let s=n[a];r.push(a+":"+("string"==typeof s?JSON.stringify(s):yn(s)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(a3,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[Uh]=null,t}(s,n,"R3InjectorError",this.source)}throw s}finally{yo(a),ja(r)}}resolveInjectorInitializers(){const n=ja(this),e=yo(void 0);try{const o=this.get(Es,Jt,$t.Self);for(const r of o)r()}finally{ja(n),yo(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(yn(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ue(205,!1)}processProvider(n){let e=Os(n=wt(n))?n:wt(n&&n.provide);const i=function I3(t){return O_(t)?zc(void 0,t.useValue):zc(Hx(t),Jh)}(n);if(!Os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=zc(void 0,Jh,!0),o.factory=()=>g_(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===Jh&&(e.value=M3,e.value=e.factory()),"object"==typeof e.value&&e.value&&function O3(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=wt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function R_(t){const n=Vh(t),e=null!==n?n.factory:Is(t);if(null!==e)return e;if(t instanceof se)throw new ue(204,!1);if(t instanceof Function)return function T3(t){if(t.length>0)throw new ue(204,!1);const e=function KF(t){return t&&(t[zh]||t[Dx])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new ue(204,!1)}function Hx(t,n,e){let i;if(Os(t)){const o=wt(t);return Is(o)||R_(o)}if(O_(t))i=()=>wt(t.useValue);else if(function zx(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...g_(t.deps||[]));else if(function jx(t){return!(!t||!t.useExisting)}(t))i=()=>X(wt(t.useExisting));else{const o=wt(t&&(t.useClass||t.provide));if(!function E3(t){return!!t.deps}(t))return Is(o)||R_(o);i=()=>new o(...g_(t.deps))}return i}function zc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function N_(t,n){for(const e of t)Array.isArray(e)?N_(e,n):e&&h_(e)?N_(e.\u0275providers,n):n(e)}function Ha(t,n){t instanceof jc&&t.assertNotDestroyed();const i=ja(t),o=yo(void 0);try{return n()}finally{ja(i),yo(o)}}class H3{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function $x(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function fi(){return Gx}function Gx(t){return t.type.prototype.ngOnChanges&&(t.setInput=$3),U3}function U3(){const t=Wx(this),n=t?.current;if(n){const e=t.previous;if(e===Sr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function $3(t,n,e,i,o){const r=this.declaredInputs[i],a=Wx(t)||function G3(t,n){return t[qx]=n}(t,{previous:Sr,current:null}),s=a.current||(a.current={}),c=a.previous,u=c[r];s[r]=new H3(u&&u.currentValue,e,c===Sr),$x(t,n,o,e)}fi.ngInherit=!0;const qx="__ngSimpleChanges__";function Wx(t){return t[qx]||null}const Ir=function(t,n,e){};function im(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[Dc]+=65536),(s>14>16&&(3&t[ct])===n&&(t[ct]+=16384,Zx(s,r)):Zx(s,r)}const Uc=-1;class Id{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function z_(t){return t!==Uc}function Ed(t){return 32767&t}function Od(t,n){let e=function J3(t){return t>>16}(t),i=n;for(;e>0;)i=i[xc],e--;return i}let H_=!0;function rm(t){const n=H_;return H_=t,n}const Yx=255,Qx=5;let eL=0;const Er={};function am(t,n){const e=Xx(t,n);if(-1!==e)return e;const i=n[He];i.firstCreatePass&&(t.injectorIndex=n.length,U_(i.data,t),U_(n,null),U_(i.blueprint,null));const o=sm(t,n),r=t.injectorIndex;if(z_(o)){const a=Ed(o),s=Od(o,n),c=s[He].data;for(let u=0;u<8;u++)n[r+u]=s[a+u]|c[a+u]}return n[r+8]=o,r}function U_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function Xx(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function sm(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=a1(o),null===i)return Uc;if(e++,o=o[xc],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Uc}function $_(t,n,e){!function tL(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ud)&&(i=e[ud]),null==i&&(i=e[ud]=eL++);const o=i&Yx;n.data[t+(o>>Qx)]|=1<=0?n&Yx:rL:n}(e);if("function"==typeof r){if(!dx(n,t,i))return i&$t.Host?Jx(o,0,i):e1(n,e,i,o);try{let a;if(a=r(i),null!=a||i&$t.Optional)return a;m_()}finally{px()}}else if("number"==typeof r){let a=null,s=Xx(t,n),c=Uc,u=i&$t.Host?n[Gi][$n]:null;for((-1===s||i&$t.SkipSelf)&&(c=-1===s?sm(t,n):n[s+8],c!==Uc&&r1(i,!1)?(a=n[He],s=Ed(c),n=Od(c,n)):s=-1);-1!==s;){const p=n[He];if(o1(r,s,p.data)){const g=nL(s,n,e,a,i,u);if(g!==Er)return g}c=n[s+8],c!==Uc&&r1(i,n[He].data[s+8]===u)&&o1(r,s,n)?(a=p,s=Ed(c),n=Od(c,n)):s=-1}}return o}function nL(t,n,e,i,o,r){const a=n[He],s=a.data[t+8],p=cm(s,a,e,null==i?ks(s)&&H_:i!=a&&0!=(3&s.type),o&$t.Host&&r===s);return null!==p?As(n,a,p,s):Er}function cm(t,n,e,i,o){const r=t.providerIndexes,a=n.data,s=1048575&r,c=t.directiveStart,p=r>>20,b=o?s+p:t.directiveEnd;for(let w=i?s:s+p;w=c&&k.type===e)return w}if(o){const w=a[c];if(w&&ur(w)&&w.type===e)return c}return null}function As(t,n,e,i){let o=t[e];const r=n.data;if(function Z3(t){return t instanceof Id}(o)){const a=o;a.resolving&&function n3(t,n){throw n&&n.join(" > "),new ue(-200,t)}(function ri(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():At(t)}(r[e]));const s=rm(a.canSeeViewProviders);a.resolving=!0;const u=a.injectImpl?yo(a.injectImpl):null;dx(t,i,$t.Default);try{o=t[e]=a.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function W3(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const a=Gx(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==u&&yo(u),rm(s),a.resolving=!1,px()}}return o}function o1(t,n,e){return!!(e[n+(t>>Qx)]&1<{const n=t.prototype.constructor,e=n[Jr]||G_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Jr]||G_(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function G_(t){return Hh(t)?()=>{const n=G_(wt(t));return n&&n()}:Is(t)}function a1(t){const n=t[He],e=n.type;return 2===e?n.declTNode:1===e?t[$n]:null}function oo(t){return function iL(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{static#e=this.THROW_IF_NOT_FOUND=xd;static#t=this.NULL=new Yh;static create(e,i){if(Array.isArray(e))return u1({name:""},i,e,"");{const o=e.name??"";return u1({name:o},e.parent,e.providers,o)}}static#i=this.\u0275prov=ke({token:t,providedIn:"any",factory:()=>X(Lx)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function W_(t){return t.ngOriginalError}class Go{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&W_(n);for(;e&&W_(e);)e=W_(e);return e||null}}const p1=new se("",{providedIn:"root",factory:()=>xe(Go).handleError.bind(void 0)}),g1=new se("",{providedIn:"root",factory:()=>!1});let um,hm;function qc(t){return function K_(){if(void 0===um&&(um=null,di.trustedTypes))try{um=di.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return um}()?.createHTML(t)||t}function Z_(){if(void 0===hm&&(hm=null,di.trustedTypes))try{hm=di.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hm}function _1(t){return Z_()?.createHTML(t)||t}function v1(t){return Z_()?.createScriptURL(t)||t}class Ps{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Aw})`}}class gL extends Ps{getTypeName(){return"HTML"}}class _L extends Ps{getTypeName(){return"Style"}}class bL extends Ps{getTypeName(){return"Script"}}class vL extends Ps{getTypeName(){return"URL"}}class yL extends Ps{getTypeName(){return"ResourceURL"}}function Po(t){return t instanceof Ps?t.changingThisBreaksApplicationSecurity:t}function Or(t,n){const e=function CL(t){return t instanceof Ps&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${Aw})`)}return e===n}class ML{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(qc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=qc(n),e}}const EL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function mm(t){return(t=String(t)).match(EL)?t:"unsafe:"+t}function aa(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Ad(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const C1=aa("area,br,col,hr,img,wbr"),w1=aa("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x1=aa("rp,rt"),Y_=Ad(C1,Ad(w1,aa("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ad(x1,aa("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ad(x1,w1)),Q_=aa("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),D1=Ad(Q_,aa("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),aa("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),OL=aa("script,style,template");class AL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!Y_.hasOwnProperty(e))return this.sanitizedSomething=!0,!OL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();Y_.hasOwnProperty(e)&&!C1.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(S1(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const PL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,RL=/([^\#-~ |!])/g;function S1(t){return t.replace(/&/g,"&").replace(PL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(RL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pm;function k1(t,n){let e=null;try{pm=pm||function y1(t){const n=new TL(t);return function IL(){try{return!!(new window.DOMParser).parseFromString(qc(""),"text/html")}catch{return!1}}()?new ML(n):n}(t);let i=n?String(n):"";e=pm.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=pm.getInertBodyElement(i)}while(i!==r);return qc((new AL).sanitizeChildren(X_(e)||e))}finally{if(e){const i=X_(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function X_(t){return"content"in t&&function NL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Bn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Bn||{});function M1(t){const n=Pd();return n?_1(n.sanitize(Bn.HTML,t)||""):Or(t,"HTML")?_1(Po(t)):k1(Va(),At(t))}function qo(t){const n=Pd();return n?n.sanitize(Bn.URL,t)||"":Or(t,"URL")?Po(t):mm(At(t))}function T1(t){const n=Pd();if(n)return v1(n.sanitize(Bn.RESOURCE_URL,t)||"");if(Or(t,"ResourceURL"))return v1(Po(t));throw new ue(904,!1)}function Pd(){const t=be();return t&&t[ea].sanitizer}const zL=/^>|^->||--!>|)/g,UL="\u200b$1\u200b";const J_=new Map;let KL=0;const tb="__ngContext__";function Zn(t,n){qn(n)?(t[tb]=n[fd],function YL(t){J_.set(t[fd],t)}(n)):t[tb]=n}function Ro(t){return t instanceof Function?t():t}var $a=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}($a||{});let rb;function ab(t,n){return rb(t,n)}function Kc(t,n,e,i,o){if(null!=i){let r,a=!1;Wn(i)?r=i:qn(i)&&(a=!0,i=i[Vi]);const s=bi(i);0===t&&null!==e?null==o?K1(n,e,s):Rs(n,e,s,o||null,!0):1===t&&null!==e?Rs(n,e,s,o||null,!0):2===t?function wm(t,n,e){const i=ym(t,n);i&&function v4(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,s,a):3===t&&n.destroyNode(s),null!=r&&function w4(t,n,e,i,o){const r=e[kr];r!==bi(e)&&Kc(n,t,i,r,o);for(let s=en;sn.replace(HL,UL))}(n))}function bm(t,n,e){return t.createElement(n,e)}function G1(t,n){xm(t,n,n[Et],2,null,null)}function q1(t,n){const e=t[Sc],i=e.indexOf(n);e.splice(i,1)}function Nd(t,n){if(t.length<=en)return;const e=en+n,i=t[e];if(i){const o=i[pd];null!==o&&o!==t&&q1(o,i),n>0&&(t[e-1][lr]=i[lr]);const r=Nh(t,en+n);!function h4(t,n){G1(t,n),n[Vi]=null,n[$n]=null}(i[He],i);const a=r[ta];null!==a&&a.detachView(r[He]),i[Ji]=null,i[lr]=null,i[ct]&=-129}return i}function vm(t,n){if(!(256&n[ct])){const e=n[Et];e.destroyNode&&xm(t,n,e,3,null,null),function p4(t){let n=t[md];if(!n)return cb(t[He],t);for(;n;){let e=null;if(qn(n))e=n[md];else{const i=n[en];i&&(e=i)}if(!e){for(;n&&!n[lr]&&n!==t;)qn(n)&&cb(n[He],n),n=n[Ji];null===n&&(n=t),qn(n)&&cb(n[He],n),e=n&&n[lr]}n=e}}(n)}}function cb(t,n){if(!(256&n[ct])){n[ct]&=-129,n[ct]|=256,n[Ss]&&function ye(t){if(Ce(t),H(t))for(let n=0;n=0?i[a]():i[-a].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[wc]=null);const o=n[La];if(null!==o){n[La]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===sr.None||r===sr.Emulated)return null}return io(i,e)}}(t,n.parent,e)}function Rs(t,n,e,i,o){t.insertBefore(n,e,i,o)}function K1(t,n,e){t.appendChild(n,e)}function Z1(t,n,e,i,o){null!==i?Rs(t,n,e,i,o):K1(t,n,e)}function ym(t,n){return t.parentNode(n)}function Y1(t,n,e){return X1(t,n,e)}let db,X1=function Q1(t,n,e){return 40&t.type?io(t,e):null};function Cm(t,n,e,i){const o=lb(t,i,n),r=n[Et],s=Y1(i.parent||n[$n],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cOt&&rD(t,n,Ot,!1),Ir(a?2:0,o),e(i,o)}finally{Ts(r),Ir(a?3:1,o)}}function pb(t,n,e){if(zg(n)){const i=V(null);try{const r=n.directiveEnd;for(let a=n.directiveStart;anull;function dD(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const a=n[r];if(void 0===a)continue;i??={};let s,c=ge.None;Array.isArray(a)?(s=a[0],c=a[1]):s=a;let u=r;if(null!==o){if(!o.hasOwnProperty(r))continue;u=o[r]}0===t?uD(i,e,u,s,c):uD(i,e,u,s)}return i}function uD(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function wo(t,n,e,i,o,r,a,s){const c=io(n,e);let p,u=n.inputs;!s&&null!=u&&(p=u[i])?(wb(t,e,p,i,o),ks(n)&&function N4(t,n){const e=Eo(n,t);16&e[ct]||(e[ct]|=64)}(e,n.index)):3&n.type&&(i=function R4(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,r.setProperty(c,i,o))}function bb(t,n,e,i){if(rx()){const o=null===i?null:{"":-1},r=function z4(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=s&&a.push(s),a.push(e,i,r)}}(t,n,i,Ld(t,e,o.hostVars,Nt),o)}function Pr(t,n,e,i,o,r){const a=io(t,n);!function yb(t,n,e,i,o,r,a){if(null==r)t.removeAttribute(n,o,e);else{const s=null==a?At(r):a(r,i||"",o);t.setAttribute(n,o,s,e)}}(n[Et],a,r,t.value,e,i,o)}function W4(t,n,e,i,o,r){const a=r[n];if(null!==a)for(let s=0;s0&&(e[o-1][lr]=n),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{vd(t.lView)},consumerOnSignalRead(){this.lView[Ss]=this}};function wD(t){return DD(t[md])}function xD(t){return DD(t[lr])}function DD(t){for(;null!==t&&!Wn(t);)t=t[lr];return t}function Mm(t,n=!0,e=0){const i=t[ea],o=i.rendererFactory;o.begin?.();try{!function r5(t,n){Sb(t,n);let e=0;for(;Wg(t);){if(100===e)throw new ue(103,!1);e++,Sb(t,1)}}(t,e)}catch(a){throw n&&km(t,a),a}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function a5(t,n,e,i){const o=n[ct];if(256==(256&o))return;n[ea].inlineEffectRunner?.flush(),t_(n);let a=null,s=null;(function s5(t){return 2!==t.type})(t)&&(s=function X4(t){return t[Ss]??function J4(t){const n=CD.pop()??Object.create(t5);return n.lView=t,n}(t)}(n),a=function Te(t){return t&&(t.nextProducerIndex=0),V(t)}(s));try{ix(n),function cx(t){return Dt.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&sD(t,n,e,2,i);const c=3==(3&o);if(c){const g=t.preOrderCheckHooks;null!==g&&nm(n,g,null)}else{const g=t.preOrderHooks;null!==g&&om(n,g,0,null),V_(n,0)}if(function c5(t){for(let n=wD(t);null!==n;n=xD(n)){if(!(n[ct]&jg.HasTransplantedViews))continue;const e=n[Sc];for(let i=0;it.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}(s,a),function e5(t){t.lView[Ss]!==t&&(t.lView=null,CD.push(t))}(s)),i_()}}function kD(t,n){for(let e=wD(t);null!==e;e=xD(e))for(let i=en;i-1&&(Nd(n,i),Nh(e,i))}this._attachedToViewContainer=!1}vm(this._lView[He],this._lView)}onDestroy(n){Ah(this._lView,n)}markForCheck(){zd(this._cdRefInjectingView||this._lView)}detach(){this._lView[ct]&=-129}reattach(){Kg(this._lView),this._lView[ct]|=128}detectChanges(){this._lView[ct]|=1024,Mm(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ue(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,G1(this._lView[He],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new ue(902,!1);this._appRef=n,Kg(this._lView)}}let gi=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=h5}return t})();const d5=gi,u5=class extends d5{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=function Bd(t,n,e,i){const o=n.tView,s=Dm(t,o,e,4096&t[ct]?4096:16,null,n,null,null,null,i?.injector??null,i?.dehydratedView??null);s[pd]=t[n.index];const u=t[ta];return null!==u&&(s[ta]=u.createEmbeddedView(o)),xb(o,s,e),s}(this._declarationLView,this._declarationTContainer,n,{injector:e,dehydratedView:i});return new Hd(o)}};function h5(){return Tm(pi(),be())}function Tm(t,n){return 4&t.type?new u5(n,t,Tc(t,n)):null}class Ob{}class R5{}class ND{}class F5{resolveComponentFactory(n){throw function N5(t){const n=Error(`No component factory found for ${yn(t)}.`);return n.ngComponent=t,n}(n)}}let Ns=(()=>{class t{static#e=this.NULL=new F5}return t})();class Ab{}let ca=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function L5(){const t=be(),e=Eo(pi().index,t);return(qn(e)?e:t)[Et]}()}return t})(),B5=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>null})}return t})();const Pb={};function BD(t){return function LD(t){return"function"==typeof t&&void 0!==t[W]}(t)&&"function"==typeof t.set}function VD(t){const n=V(null);try{return t()}finally{V(n)}}function Pm(t){return!!Rb(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Rb(t){return null!==t&&("function"==typeof t||"object"==typeof t)}class jD{constructor(){}supports(n){return Pm(n)}create(n){return new $5(n)}}const U5=(t,n)=>n;class $5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||U5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,s),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,s,a,o)),Object.is(e.item,s)||this._addIdentityChange(e,s)):(e=this._mismatch(e,s,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new G5(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new zD),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new zD),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class G5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class q5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class zD{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new q5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function HD(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,a=o._next;return r&&(r._next=a),a&&(a._prev=r),o._next=null,o._prev=null,o}const i=new K5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class K5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function $D(){return new pr([new jD])}let pr=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:$D});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||$D()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new ue(901,!1)}}return t})();function GD(){return new Rm([new UD])}let Rm=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:GD});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||GD()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new ue(901,!1)}}return t})(),Lt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=Y5}return t})();function Y5(t){return function Q5(t,n,e){if(ks(t)&&!e){const i=Eo(t.index,n);return new Hd(i,i)}return 47&t.type?new Hd(n[Gi],n):null}(pi(),be(),16==(16&t))}let Nm=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=t8;static#t=this.__NG_ENV_ID__=e=>e}return t})();class e8 extends Nm{constructor(n){super(),this._lView=n}onDestroy(n){return Ah(this._lView,n),()=>function Zg(t,n){if(null===t[La])return;const e=t[La].indexOf(n);-1!==e&&t[La].splice(e,1)}(this._lView,n)}}function t8(){return new e8(be())}const qD=new Set;function Fs(t){qD.has(t)||(qD.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function WD(...t){}class We{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new ue(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function s8(){const t="function"==typeof di.requestAnimationFrame;let n=di[t?"requestAnimationFrame":"setTimeout"],e=di[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&e){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const o=e[Zone.__symbol__("OriginalDelegate")];o&&(e=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function d8(t){const n=()=>{!function l8(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(di,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Fb(t),t.isCheckStableRunning=!0,Nb(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Fb(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,a,s)=>{if(function u8(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(s))return e.invokeTask(o,r,a,s);try{return KD(t),e.invokeTask(o,r,a,s)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),ZD(t)}},onInvoke:(e,i,o,r,a,s,c)=>{try{return KD(t),e.invoke(o,r,a,s,c)}finally{t.shouldCoalesceRunChangeDetection&&n(),ZD(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,Fb(t),Nb(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!We.isInAngularZone())throw new ue(909,!1)}static assertNotInAngularZone(){if(We.isInAngularZone())throw new ue(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,a=r.scheduleEventTask("NgZoneEvent: "+o,n,c8,WD,WD);try{return r.runTask(a,e,i)}finally{r.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const c8={};function Nb(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Fb(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function KD(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ZD(t){t._nesting--,Nb(t)}class YD{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ne,this.onMicrotaskEmpty=new Ne,this.onStable=new Ne,this.onError=new Ne}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}var Ls=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Ls||{});const QD={destroy(){}};function JD(t,n){!n&&function F_(t){if(!Mx()&&!function c3(){return Oc}())throw new ue(-203,!1)}();const e=n?.injector??xe(ji);if(!function Ua(t){return"browser"===(t??xe(ji)).get(ra)}(e))return QD;Fs("NgAfterNextRender");const i=e.get(Wd),o=i.handler??=new tS,r=n?.phase??Ls.MixedReadWrite,a=()=>{o.unregister(c),s()},s=e.get(Nm).onDestroy(a),c=new eS(e,r,()=>{a(),t()});return o.register(c),{destroy:a}}class eS{constructor(n,e,i){this.phase=e,this.callbackFn=i,this.zone=n.get(We),this.errorHandler=n.get(Go,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class tS{constructor(){this.executingCallbacks=!1,this.buckets={[Ls.EarlyRead]:new Set,[Ls.Write]:new Set,[Ls.MixedReadWrite]:new Set,[Ls.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Wd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i();this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>new t})}return t})();function Lm(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let a=0;a0&&nD(t,e,r.join(" "))}}(b,ft,k,i),void 0!==e&&function D8(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=k8}return t})();function k8(){return cS(pi(),be())}const M8=vi,aS=class extends M8{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Tc(this._hostTNode,this._hostLView)}get injector(){return new xn(this._hostTNode,this._hostLView)}get parentInjector(){const n=sm(this._hostTNode,this._hostLView);if(z_(n)){const e=Od(n,this._hostLView),i=Ed(n);return new xn(e[He].data[i+8],e)}return new xn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=sS(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-en}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(s,o,Yc(this._hostTNode,null)),s}createComponent(n,e,i,o,r){const a=n&&!function Td(t){return"function"==typeof t}(n);let s;if(a)s=e;else{const k=e||{};s=k.index,i=k.injector,o=k.projectableNodes,r=k.environmentInjector||k.ngModuleRef}const c=a?n:new Yd(Ht(n)),u=i||this.parentInjector;if(!r&&null==c.ngModule){const T=(a?u:this.parentInjector).get(Ao,null);T&&(r=T)}Ht(c.componentType??{});const w=c.create(u,o,null,r);return this.insertImpl(w.hostView,s,Yc(this._hostTNode,null)),w}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function DF(t){return Wn(t[Ji])}(o)){const s=this.indexOf(n);if(-1!==s)this.detach(s);else{const c=o[Ji],u=new aS(c,c[$n],c[Ji]);u.detach(u.indexOf(n))}}const r=this._adjustIndex(e),a=this._lContainer;return Vd(a,o,r,i),n.attachToViewContainerRef(),bx(Vb(a),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=sS(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);i&&(Nh(Vb(this._lContainer),e),vm(i[He],i))}detach(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);return i&&null!=Nh(Vb(this._lContainer),e)?new Hd(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function sS(t){return t[8]}function Vb(t){return t[8]||(t[8]=[])}function cS(t,n){let e;const i=n[t.index];return Wn(i)?e=i:(e=pD(i,n,null,t),n[t.index]=e,Sm(n,e)),lS(e,n,t,i),new aS(e,t,n)}let lS=function uS(t,n,e,i){if(t[kr])return;let o;o=8&e.type?bi(i):function T8(t,n){const e=t[Et],i=e.createComment(""),o=io(n,t);return Rs(e,ym(e,o),i,function y4(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[kr]=o},jb=()=>!1;class zb{constructor(n){this.queryList=n,this.matches=null}clone(){return new zb(this.queryList)}setDirty(){this.queryList.setDirty()}}class Hb{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Ub{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(a[s/2]);else{const u=r[s+1],p=n[-c];for(let g=en;g=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=hd(o.hostAttrs,e=hd(e,o.hostAttrs))}}(i)}function W8(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function Vm(t){return t===Sr?{}:t===Jt?[]:t}function Z8(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Y8(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Q8(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function PS(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class Bs{}class RS{}class Zb extends Bs{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new oS(this);const o=Un(n);this._bootstrapComponents=Ro(o.bootstrap),this._r3Injector=h1(n,e,[{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver},...i],yn(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Yb extends RS{constructor(n){super(),this.moduleType=n}create(n){return new Zb(this.moduleType,n,[])}}class NS extends Bs{constructor(n){super(),this.componentFactoryResolver=new oS(this),this.instance=null;const e=new jc([...n.providers,{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver}],n.parent||em(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Qb(t,n,e=null){return new NS({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Vs=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new mt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Rr(t,n,e){return t[n]=e}function Xd(t,n){return t[n]}function tn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function js(t,n,e,i){const o=tn(t,n,e);return tn(t,n+1,i)||o}function zm(t,n,e,i,o){const r=js(t,n,e,i);return tn(t,n+2,o)||r}function Wo(t,n,e,i,o,r){const a=js(t,n,e,i);return js(t,n+2,o,r)||a}function y(t,n,e,i,o,r,a,s){const c=be(),u=Gt(),p=t+Ot,g=u.firstCreatePass?function aB(t,n,e,i,o,r,a,s,c){const u=n.consts,p=Zc(n,t,4,a||null,Mr(u,s));bb(n,e,p,Mr(u,c)),im(n,p);const g=p.tView=_b(2,p,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,u,null);return null!==n.queries&&(n.queries.template(n,p),g.queries=n.queries.embeddedTView(p)),p}(p,u,c,n,e,i,o,r,a):u.data[p];Tr(g,!1);const b=FS(u,c,g,t);Rh()&&Cm(u,c,b,g),Zn(b,c);const w=pD(b,c,b,g);return c[p]=w,Sm(c,w),function dS(t,n,e){return jb(t,n,e)}(w,g,c),Oh(g)&&fb(u,c,g),null!=a&&gb(c,g,s),y}let FS=function LS(t,n,e,i){return Ba(!0),n[Et].createComment("")};function Je(t,n,e,i){const o=be();return tn(o,hr(),n)&&(Gt(),Pr(Ei(),o,t,n,e,i)),Je}function al(t,n,e,i){return tn(t,hr(),e)?n+At(e)+i:Nt}function Wm(t,n){return t<<17|n<<2}function Ka(t){return t>>17&32767}function sv(t){return 2|t}function Hs(t){return(131068&t)>>2}function cv(t,n){return-131069&t|n<<2}function lv(t){return 1|t}function pk(t,n,e,i){const o=t[e+1],r=null===n;let a=i?Ka(o):Hs(o),s=!1;for(;0!==a&&(!1===s||r);){const u=t[a+1];$B(t[a],n)&&(s=!0,t[a+1]=i?lv(u):sv(u)),a=i?Ka(u):Hs(u)}s&&(t[e+1]=i?sv(o):lv(o))}function $B(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Ec(t,n)>=0}const Dn={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function fk(t){return t.substring(Dn.key,Dn.keyEnd)}function gk(t,n){const e=Dn.textEnd;return e===n?-1:(n=Dn.keyEnd=function KB(t,n,e){for(;n32;)n++;return n}(t,Dn.key=n,e),pl(t,n,e))}function pl(t,n,e){for(;n=0;e=gk(n,e))Oo(t,fk(n),!0)}function fr(t,n,e,i){const o=be(),r=Gt(),a=na(2);r.firstUpdatePass&&wk(r,t,a,i),n!==Nt&&tn(o,a,n)&&Dk(r,r.data[Kn()],o,o[Et],t,o[a+1]=function a6(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=yn(Po(t)))),t}(n,e),i,a)}function Ck(t,n){return n>=t.expandoStartIndex}function wk(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Kn()],a=Ck(t,e);kk(r,i)&&null===n&&!a&&(n=!1),n=function JB(t,n,e,i){const o=Jg(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=iu(e=uv(null,t,n,e,i),n.attrs,i),r=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=uv(o,t,n,e,i),null===r){let c=function e6(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Hs(i))return t[Ka(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=uv(null,t,n,c[1],i),c=iu(c,n.attrs,i),function t6(t,n,e,i){t[Ka(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function i6(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(u=!0)):p=e,o)if(0!==c){const b=Ka(t[s+1]);t[i+1]=Wm(b,s),0!==b&&(t[b+1]=cv(t[b+1],i)),t[s+1]=function jB(t,n){return 131071&t|n<<17}(t[s+1],i)}else t[i+1]=Wm(s,0),0!==s&&(t[s+1]=cv(t[s+1],i)),s=i;else t[i+1]=Wm(c,0),0===s?s=i:t[c+1]=cv(t[c+1],i),c=i;u&&(t[i+1]=sv(t[i+1])),pk(t,p,i,!0),pk(t,p,i,!1),function UB(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Ec(r,n)>=0&&(e[i+1]=lv(e[i+1]))}(n,p,t,i,r),a=Wm(s,c),r?n.classBindings=a:n.styleBindings=a}(o,r,n,e,a,i)}}function uv(t,n,e,i,o){let r=null;const a=e.directiveEnd;let s=e.directiveStylingLast;for(-1===s?s=e.directiveStart:s++;s0;){const c=t[o],u=Array.isArray(c),p=u?c[1]:c,g=null===p;let b=e[o+1];b===Nt&&(b=g?Jt:void 0);let w=g?o_(b,i):p===i?b:void 0;if(u&&!Km(w)&&(w=o_(c,i)),Km(w)&&(s=w,a))return s;const k=t[o+1];o=a?Ka(k):Hs(k)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(s=o_(c,i))}return s}function Km(t){return void 0!==t}function kk(t,n){return 0!=(t.flags&(n?8:16))}function Mk(t,n,e){!function gr(t,n,e,i){const o=Gt(),r=na(2);o.firstUpdatePass&&wk(o,null,r,i);const a=be();if(e!==Nt&&tn(a,r,e)){const s=o.data[Kn()];if(kk(s,i)&&!Ck(o,r)){let c=i?s.classesWithoutHost:s.stylesWithoutHost;null!==c&&(e=Ng(c,e||"")),dv(o,s,a,e,i)}else!function r6(t,n,e,i,o,r,a,s){o===Nt&&(o=Jt);let c=0,u=0,p=0(Ba(!0),bm(i,o,function fx(){return Dt.lFrame.currentNamespace}()));function pe(t,n,e){const i=be(),o=Gt(),r=t+Ot,a=o.firstCreatePass?function O6(t,n,e,i,o){const r=n.consts,a=Mr(r,i),s=Zc(n,t,8,"ng-container",a);return null!==a&&Lm(s,a,!0),bb(n,e,s,Mr(r,o)),null!==n.queries&&n.queries.elementStart(n,s),s}(r,o,i,n,e):o.data[r];Tr(a,!0);const s=Ak(o,i,a,t);return i[r]=s,Rh()&&Cm(o,i,s,a),Zn(s,i),Oh(a)&&(fb(o,i,a),pb(o,a,i)),null!=e&&gb(i,a),pe}function fe(){let t=pi();const n=Gt();return Yg()?Qg():(t=t.parent,Tr(t,!1)),n.firstCreatePass&&(im(n,t),zg(t)&&n.queries.elementEnd(t)),fe}function ro(t,n,e){return pe(t,n,e),fe(),ro}let Ak=(t,n,e,i)=>(Ba(!0),sb(n[Et],""));function _e(){return be()}function ao(t,n,e){const i=be();return tn(i,hr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!0),ao}function Zm(t,n,e){const i=be();if(tn(i,hr(),n)){const r=Gt(),a=Ei();wo(r,a,i,t,n,bD(Jg(r.data),a,i),e,!0)}return Zm}const gl="en-US";let Nk=gl;function A(t,n,e,i){const o=be(),r=Gt(),a=pi();return bv(r,o,o[Et],a,t,n,i),A}function ep(t,n){const e=pi(),i=be(),o=Gt();return bv(o,i,bD(Jg(o.data),e,i),e,t,n),ep}function bv(t,n,e,i,o,r,a){const s=Oh(i),u=t.firstCreatePass&&_D(t),p=n[Ii],g=gD(n);let b=!0;if(3&i.type||a){const T=io(i,n),z=a?a(T):T,re=g.length,ae=a?tt=>a(bi(tt[i.index])):i.index;let Ue=null;if(!a&&s&&(Ue=function EV(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?s[c]:null}"string"==typeof a&&(r+=2)}return null}(t,n,o,i.index)),null!==Ue)(Ue.__ngLastListenerFn__||Ue).__ngNextListenerFn__=r,Ue.__ngLastListenerFn__=r,b=!1;else{r=sM(i,n,p,r,!1);const tt=e.listen(z,o,r);g.push(r,tt),u&&u.push(o,ae,re,re+1)}}else r=sM(i,n,p,r,!1);const w=i.outputs;let k;if(b&&null!==w&&(k=w[o])){const T=k.length;if(T)for(let z=0;z-1?Eo(t.index,n):n);let c=aM(n,e,i,a),u=r.__ngNextListenerFn__;for(;u;)c=aM(n,e,u,a)&&c,u=u.__ngNextListenerFn__;return o&&!1===c&&a.preventDefault(),c}}function C(t=1){return function VF(t){return(Dt.lFrame.contextLView=function nx(t,n){for(;t>0;)n=n[xc],t--;return n}(t,Dt.lFrame.contextLView))[Ii]}(t)}function OV(t,n){let e=null;const i=function sF(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(Ba(!0),function _m(t,n){return t.createText(n)}(n[Et],i));function Pe(t){return De("",t,""),Pe}function De(t,n,e){const i=be(),o=al(i,t,n,e);return o!==Nt&&sa(i,Kn(),o),De}function _l(t,n,e,i,o){const r=be(),a=function sl(t,n,e,i,o,r){const s=js(t,ia(),e,o);return na(2),s?n+At(e)+i+At(o)+r:Nt}(r,t,n,e,i,o);return a!==Nt&&sa(r,Kn(),a),_l}function Cv(t,n,e,i,o,r,a){const s=be(),c=function cl(t,n,e,i,o,r,a,s){const u=zm(t,ia(),e,o,a);return na(3),u?n+At(e)+i+At(o)+r+At(a)+s:Nt}(s,t,n,e,i,o,r,a);return c!==Nt&&sa(s,Kn(),c),Cv}function wv(t,n,e,i,o,r,a,s,c){const u=be(),p=function ll(t,n,e,i,o,r,a,s,c,u){const g=Wo(t,ia(),e,o,a,c);return na(4),g?n+At(e)+i+At(o)+r+At(a)+s+At(c)+u:Nt}(u,t,n,e,i,o,r,a,s,c);return p!==Nt&&sa(u,Kn(),p),wv}function dn(t,n,e){BD(n)&&(n=n());const i=be();return tn(i,hr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!1),dn}function kn(t,n){const e=BD(t);return e&&t.set(n),e}function un(t,n){const e=be(),i=Gt(),o=pi();return bv(i,e,e[Et],o,t,n),un}function xv(t,n,e,i,o){if(t=wt(t),Array.isArray(t))for(let r=0;r>20;if(Os(t)||!t.multi){const w=new Id(u,o,_),k=Sv(c,n,o?p:p+b,g);-1===k?($_(am(s,a),r,c),Dv(r,t,n.length),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(w),a.push(w)):(e[k]=w,a[k]=w)}else{const w=Sv(c,n,p+b,g),k=Sv(c,n,p,p+b),z=k>=0&&e[k];if(o&&!z||!o&&!(w>=0&&e[w])){$_(am(s,a),r,c);const re=function YV(t,n,e,i,o){const r=new Id(t,e,_);return r.multi=[],r.index=n,r.componentProviders=0,OM(r,o,i&&!e),r}(o?ZV:KV,e.length,o,i,u);!o&&z&&(e[k].providerFactory=re),Dv(r,t,n.length,0),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(re),a.push(re)}else Dv(r,t,w>-1?w:k,OM(e[o?k:w],u,!o&&i));!o&&i&&z&&e[k].componentProviders++}}}function Dv(t,n,e,i){const o=Os(n),r=function k3(t){return!!t.useClass}(n);if(o||r){const c=(r?wt(n.useClass):n).prototype.ngOnDestroy;if(c){const u=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const p=u.indexOf(e);-1===p?u.push(e,[i,c]):u[p+1].push(i,c)}else u.push(e,c)}}}function OM(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function Sv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function WV(t,n,e){const i=Gt();if(i.firstCreatePass){const o=ur(t);xv(e,i.data,i.blueprint,o,!0),xv(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let QV=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Bx(0,e.type),o=i.length>0?Qb([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ke({token:t,providedIn:"environment",factory:()=>new t(X(Ao))})}return t})();function AM(t){Fs("NgStandalone"),t.getStandaloneInjector=n=>n.get(QV).getOrCreateStandaloneInjector(t)}function No(t,n,e){const i=no()+t,o=be();return o[i]===Nt?Rr(o,i,e?n.call(e):n()):Xd(o,i)}function hi(t,n,e,i){return GM(be(),no(),t,n,e,i)}function zM(t,n,e,i,o){return function qM(t,n,e,i,o,r,a){const s=n+e;return js(t,s,o,r)?Rr(t,s+2,a?i.call(a,o,r):i(o,r)):cu(t,s+2)}(be(),no(),t,n,e,i,o)}function HM(t,n,e,i,o,r){return function WM(t,n,e,i,o,r,a,s){const c=n+e;return zm(t,c,o,r,a)?Rr(t,c+3,s?i.call(s,o,r,a):i(o,r,a)):cu(t,c+3)}(be(),no(),t,n,e,i,o,r)}function cu(t,n){const e=t[n];return e===Nt?void 0:e}function GM(t,n,e,i,o,r){const a=n+e;return tn(t,a,o)?Rr(t,a+1,r?i.call(r,o):i(o)):cu(t,a+1)}function lu(t,n){const e=Gt();let i;const o=t+Ot;e.firstCreatePass?(i=function uj(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Is(i.type)),s=yo(_);try{const c=rm(!1),u=r();return rm(c),function NV(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,be(),o,u),u}finally{yo(s)}}function du(t,n,e){const i=t+Ot,o=be(),r=kc(o,i);return function uu(t,n){return t[He].data[n].pure}(o,i)?GM(o,no(),n,r.transform,e,r):r.transform(e)}function _r(t,n){return Tm(t,n)}let uT=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const gT=new se(""),op=new se("");let Nv,Pv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Nv||(function cz(t){Nv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(Rv),X(op))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Rv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Nv?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pu(t){return!!t&&"function"==typeof t.then}function _T(t){return!!t&&"function"==typeof t.subscribe}const Fv=new se("");let Lv=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=xe(Fv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(pu(r))e.push(r);else if(_T(r)){const a=new Promise((s,c)=>{r.subscribe({complete:s,error:c})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Bv=new se("");function yT(t,n){return Array.isArray(n)?n.reduce(yT,t):{...t,...n}}let Za=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=xe(p1),this.afterRenderEffectManager=xe(Wd),this.componentTypes=[],this.components=[],this.isStable=xe(Vs).hasPendingTasks.pipe(nt(e=>!e)),this._injector=xe(Ao)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof ND;if(!this._injector.get(Lv).done)throw!o&&function Fa(t){const n=Ht(t)||Cn(t)||Ln(t);return null!==n&&n.standalone}(e),new ue(405,!1);let a;a=o?e:this._injector.get(Ns).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const s=function lz(t){return t.isBoundToModule}(a)?void 0:this._injector.get(Bs),u=a.create(ji.NULL,[],i||a.selector,s),p=u.location.nativeElement,g=u.injector.get(gT,null);return g?.registerApplication(p),u.onDestroy(()=>{this.detachView(u.hostView),rp(this.components,u),g?.unregisterApplication(p)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new ue(101,!1);try{this._runningTick=!0,this.detectChangesInAttachedViews()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}detectChangesInAttachedViews(){let e=0;do{if(100===e)throw new ue(103,!1);const i=0===e;for(let{_lView:o,notifyErrorHandler:r}of this._views)!i&&!CT(o)||this.detectChangesInView(o,r,i);this.afterRenderEffectManager.execute(),e++}while(this._views.some(({_lView:i})=>CT(i)))}detectChangesInView(e,i,o){let r;o?(r=0,e[ct]|=1024):r=64&e[ct]?0:1,Mm(e,i,r)}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;rp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Bv,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>rp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ue(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function rp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CT(t){return Wg(t)}class uz{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let wT=(()=>{class t{compileModuleSync(e){return new Yb(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Ro(Un(e).declarations).reduce((a,s)=>{const c=Ht(s);return c&&a.push(new Yd(c)),a},[]);return new uz(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pz=(()=>{class t{constructor(){this.zone=xe(We),this.applicationRef=xe(Za)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function fz(){const t=xe(We),n=xe(Go);return e=>t.runOutsideAngular(()=>n.handleError(e))}let _z=(()=>{class t{constructor(){this.subscription=new de,this.initialized=!1,this.zone=xe(We),this.pendingTasks=xe(Vs)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{We.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Lr=new se("",{providedIn:"root",factory:()=>xe(Lr,$t.Optional|$t.SkipSelf)||function bz(){return typeof $localize<"u"&&$localize.locale||gl}()}),Vv=new se("");let kT=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function h8(t="zone.js",n){return"noop"===t?new YD:"zone.js"===t?new We(n):t}(i?.ngZone,function ST(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=function rB(t,n,e){return new Zb(t,n,e)}(e.moduleType,this.injector,function DT(t){return[{provide:We,useFactory:t},{provide:Es,multi:!0,useFactory:()=>{const n=xe(pz,{optional:!0});return()=>n.initialize()}},{provide:Es,multi:!0,useFactory:()=>{const n=xe(_z);return()=>{n.initialize()}}},{provide:p1,useFactory:fz}]}(()=>o)),a=r.injector.get(Go,null);return o.runOutsideAngular(()=>{const s=o.onError.subscribe({next:c=>{a.handleError(c)}});r.onDestroy(()=>{rp(this._modules,r),s.unsubscribe()})}),function vT(t,n,e){try{const i=e();return pu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const s=r.injector.get(Lv);return s.runInitializers(),s.donePromise.then(()=>(function Fk(t){"string"==typeof t&&(Nk=t.toLowerCase().replace(/_/g,"-"))}(r.injector.get(Lr,gl)||gl),this._moduleDoBootstrap(r),r))})})}bootstrapModule(e,i=[]){const o=yT({},i);return function mz(t,n,e){const i=new Yb(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Za);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new ue(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ue(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Vv,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(X(ji))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Ya=null;const MT=new se("");function TT(t,n,e=[]){const i=`Platform: ${n}`,o=new se(i);return(r=[])=>{let a=jv();if(!a||a.injector.get(MT,!1)){const s=[...e,...r,{provide:o,useValue:!0}];t?t(s):function Cz(t){if(Ya&&!Ya.get(MT,!1))throw new ue(400,!1);(function bT(){!function bt(t){me=t}(()=>{throw new ue(600,!1)})})(),Ya=t;const n=t.get(kT);(function ET(t){t.get(Sx,null)?.forEach(e=>e())})(t)}(function IT(t=[],n){return ji.create({name:n,providers:[{provide:A_,useValue:"platform"},{provide:Vv,useValue:new Set([()=>Ya=null])},...t]})}(s,i))}return function wz(t){const n=jv();if(!n)throw new ue(401,!1);return n}()}}function jv(){return Ya?.get(kT)??null}const Mz=TT(null,"core",[]);let Tz=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(X(Za))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();function Cl(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let t2=null;function Qa(){return t2}class o7{}const dt=new se("");let Wv=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(a7),providedIn:"platform"})}return t})();const r7=new se("");let a7=(()=>{class t extends Wv{constructor(){super(),this._doc=xe(dt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qa().getBaseHref(this._doc)}onPopState(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Kv(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function n2(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function la(t){return t&&"?"!==t[0]?"?"+t:t}let qs=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(r2),providedIn:"root"})}return t})();const o2=new se("");let r2=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??xe(dt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Kv(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+la(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),s7=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Kv(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Ws=(()=>{class t{constructor(e){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function d7(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(n2(a2(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+la(i))}normalize(e){return t.stripTrailingSlash(function l7(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,a2(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=la;static#t=this.joinWithSlash=Kv;static#i=this.stripTrailingSlash=n2;static#n=this.\u0275fac=function(i){return new(i||t)(X(qs))};static#o=this.\u0275prov=ke({token:t,factory:()=>function c7(){return new Ws(X(qs))}(),providedIn:"root"})}return t})();function a2(t){return t.replace(/\/index.html$/,"")}function f2(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}const oy=/\s+/,g2=[];let vr=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=g2,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(oy):g2}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(oy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(oy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngClass",""]],inputs:{klass:[ge.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class Z7{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let rn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Z7(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===r?void 0:r);else if(null!==r){const s=i.get(r);i.move(s,a),b2(s,o)}});for(let o=0,r=i.length;o{b2(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(pr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function b2(t,n){t.context.$implicit=n.item}let It=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Y7,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){v2("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){v2("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Y7{constructor(){this.$implicit=null,this.ngIf=null}}function v2(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${yn(n)}'.`)}class ry{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let xl=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),Sp=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new ry(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),y2=(()=>{class t{constructor(e,i,o){o._addDefault(new ry(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),w2=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),a=-1===o.indexOf("-")?void 0:$a.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,a):this._renderer.removeStyle(this._ngEl.nativeElement,o,a)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Rm),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),kp=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[fi]})}return t})();function yr(t,n){return new ue(2100,!1)}class J7{createSubscription(n,e){return VD(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){VD(()=>n.unsubscribe())}}class e9{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const t9=new e9,i9=new J7;let x2=(()=>{class t{constructor(e){this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(pu(e))return t9;if(_T(e))return i9;throw yr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt,16))};static#t=this.\u0275pipe=bo({name:"async",type:t,pure:!1,standalone:!0})}return t})(),D2=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw yr();return e.toUpperCase()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=bo({name:"uppercase",type:t,pure:!0,standalone:!0})}return t})(),ay=(()=>{class t{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=S2}transform(e,i=S2){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const o=this.differ.diff(e),r=i!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(a=>{this.keyValues.push(function p9(t,n){return{key:t,value:n}}(a.key,a.currentValue))})),(o||r)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rm,16))};static#t=this.\u0275pipe=bo({name:"keyvalue",type:t,pure:!1,standalone:!0})}return t})();function S2(t,n){const e=t.key,i=n.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const k2="browser";function M2(t){return t===k2}function T2(t){return"server"===t}let C9=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>M2(xe(ra))?new w9(xe(dt),window):new D9})}return t})();class w9{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function x9(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const a=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class D9{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class I2{}class X9 extends o7{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class dy extends X9{static makeCurrent(){!function n7(t){t2??=t}(new dy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function J9(){return yu=yu||document.querySelector("base"),yu?yu.getAttribute("href"):null}();return null==e?null:function eH(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){yu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return f2(document.cookie,n)}}let yu=null,iH=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const uy=new se("");let B2=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new ue(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(uy),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class V2{constructor(n){this._doc=n}}const hy="ng-app-id";let j2=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=T2(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${hy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(hy),r;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(hy,this.appId),e.appendChild(a),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,a=r.get(i)?.elements;a?a.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(wd),X(s_,8),X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const my={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},py=/%COMP%/g,aH=new se("",{providedIn:"root",factory:()=>!0});function H2(t,n){return n.map(e=>e.replace(py,t))}let fy=(()=>{class t{constructor(e,i,o,r,a,s,c,u=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=a,this.platformId=s,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=T2(s),this.defaultRenderer=new gy(e,a,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===sr.ShadowDom&&(i={...i,encapsulation:sr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof $2?o.applyToHost(e):o instanceof _y&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const a=this.doc,s=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,p=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(i.encapsulation){case sr.Emulated:r=new $2(c,u,i,this.appId,p,a,s,g);break;case sr.ShadowDom:return new dH(c,u,e,i,a,s,this.nonce,g);default:r=new _y(c,u,i,p,a,s,g)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(X(B2),X(j2),X(wd),X(aH),X(dt),X(ra),X(We),X(s_))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class gy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(my[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(U2(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(U2(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new ue(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=my[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=my[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&($a.DashCase|$a.Important)?n.style.setProperty(e,i,o&$a.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&$a.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Qa().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function U2(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class dH extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=H2(o.id,o.styles);for(const p of u){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class _y extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,s),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?H2(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class $2 extends _y{constructor(n,e,i,o,r,a,s,c){const u=o+"-"+i.id;super(n,e,i,r,a,s,c,u),this.contentAttr=function sH(t){return"_ngcontent-%COMP%".replace(py,t)}(u),this.hostAttr=function cH(t){return"_nghost-%COMP%".replace(py,t)}(u)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let uH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const G2=["alt","control","meta","shift"],hH={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},mH={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let pH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),a=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qa().onAndCancel(e,r.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let a="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),a="code."),G2.forEach(u=>{const p=i.indexOf(u);p>-1&&(i.splice(p,1),a+=u+".")}),a+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=a,c}static matchEventFullKeyCode(e,i){let o=hH[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),G2.forEach(a=>{a!==o&&(0,mH[a])(e)&&(r+=a+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const bH=TT(Mz,"browser",[{provide:ra,useValue:k2},{provide:Sx,useValue:function fH(){dy.makeCurrent()},multi:!0},{provide:dt,useFactory:function _H(){return function qF(t){r_=t}(document),document},deps:[]}]),vH=new se(""),K2=[{provide:op,useClass:class tH{addToWindow(n){di.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new ue(5103,!1);return r},di.getAllAngularTestabilities=()=>n.getAllTestabilities(),di.getAllAngularRootElements=()=>n.getAllRootElements(),di.frameworkStabilizers||(di.frameworkStabilizers=[]),di.frameworkStabilizers.push(i=>{const o=di.getAllAngularTestabilities();let r=o.length;const a=function(){r--,0==r&&i()};o.forEach(s=>{s.whenStable(a)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Qa().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:gT,useClass:Pv,deps:[We,Rv,op]},{provide:Pv,useClass:Pv,deps:[We,Rv,op]}],Z2=[{provide:A_,useValue:"root"},{provide:Go,useFactory:function gH(){return new Go},deps:[]},{provide:uy,useClass:uH,multi:!0,deps:[dt,We,ra]},{provide:uy,useClass:pH,multi:!0,deps:[dt]},fy,j2,B2,{provide:Ab,useExisting:fy},{provide:I2,useClass:iH,deps:[]},[]];let Y2=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:wd,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(vH,12))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[...Z2,...K2],imports:[Vn,Tz]})}return t})(),yH=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),by=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:function(i){let o=null;return o=i?new(i||t):X(DH),o},providedIn:"root"})}return t})(),DH=(()=>{class t extends by{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Bn.NONE:return i;case Bn.HTML:return Or(i,"HTML")?Po(i):k1(this._doc,String(i)).toString();case Bn.STYLE:return Or(i,"Style")?Po(i):i;case Bn.SCRIPT:if(Or(i,"Script"))return Po(i);throw new ue(5200,!1);case Bn.URL:return Or(i,"URL")?Po(i):mm(String(i));case Bn.RESOURCE_URL:if(Or(i,"ResourceURL"))return Po(i);throw new ue(5201,!1);default:throw new ue(5202,!1)}}bypassSecurityTrustHtml(e){return function wL(t){return new gL(t)}(e)}bypassSecurityTrustStyle(e){return function xL(t){return new _L(t)}(e)}bypassSecurityTrustScript(e){return function DL(t){return new bL(t)}(e)}bypassSecurityTrustUrl(e){return function SL(t){return new vL(t)}(e)}bypassSecurityTrustResourceUrl(e){return function kL(t){return new yL(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var St=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(St||{});const ha="*";function Lo(t,n){return{type:St.Trigger,name:t,definitions:n,options:{}}}function Yi(t,n=null){return{type:St.Animate,styles:n,timings:t}}function vy(t,n=null){return{type:St.Group,steps:t,options:n}}function Zt(t){return{type:St.Style,styles:t,offset:null}}function mn(t,n,e){return{type:St.State,name:t,styles:n,options:e}}function Qi(t,n,e=null){return{type:St.Transition,expr:t,animation:n,options:e}}function yy(t=null){return{type:St.AnimateChild,options:t}}function Cy(t,n,e=null){return{type:St.Query,selector:t,animation:n,options:e}}class wu{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eI{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==r&&this._onFinish()}),a.onDestroy(()=>{++i==r&&this._onDestroy()}),a.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((a,s)=>Math.max(a,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function tI(t){return new ue(3e3,!1)}function Xa(t){switch(t.length){case 0:return new wu;case 1:return t[0];default:return new eI(t)}}function iI(t,n,e=new Map,i=new Map){const o=[],r=[];let a=-1,s=null;if(n.forEach(c=>{const u=c.get("offset"),p=u==a,g=p&&s||new Map;c.forEach((b,w)=>{let k=w,T=b;if("offset"!==w)switch(k=t.normalizePropertyName(k,o),T){case"!":T=e.get(w);break;case ha:T=i.get(w);break;default:T=t.normalizeStyleValue(w,k,T,o)}g.set(k,T)}),p||r.push(g),s=g,a=u}),o.length)throw function XH(t){return new ue(3502,!1)}();return r}function xy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Dy(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Dy(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Dy(e,"destroy",t)))}}function Dy(t,n,e){const r=Sy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(r._data=a),r}function Sy(t,n,e,i,o="",r=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!a}}function Bo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function nI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const dU=typeof document>"u"?null:document.documentElement;function ky(t){const n=t.parentNode||t.host||null;return n===dU?null:n}let Ks=null,oI=!1;function rI(t,n){for(;n;){if(n===t)return!0;n=ky(n)}return!1}function aI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let My=(()=>{class t{validateStyleProperty(e){return function hU(t){Ks||(Ks=function mU(){return typeof document<"u"?document.body:null}()||{},oI=!!Ks.style&&"WebkitAppearance"in Ks.style);let n=!0;return Ks.style&&!function uU(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Ks.style,!n&&oI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Ks.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return rI(e,i)}getParentElement(e){return ky(e)}query(e,i,o){return aI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,a,s=[],c){return new wu(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class Ty{static#e=this.NOOP=new My}class Iy{}const fU=1e3,Ey="ng-enter",Ip="ng-leave",Ep="ng-trigger",Op=".ng-trigger",cI="ng-animating",Oy=".ng-animating";function ma(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Ay(parseFloat(n[1]),n[2])}function Ay(t,n){return"s"===n?t*fU:t}function Ap(t,n,e){return t.hasOwnProperty("duration")?t:function _U(t,n,e){let o,r=0,a="";if("string"==typeof t){const s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return n.push(tI()),{duration:0,delay:0,easing:""};o=Ay(parseFloat(s[1]),s[2]);const c=s[3];null!=c&&(r=Ay(parseFloat(c),s[4]));const u=s[5];u&&(a=u)}else o=t;if(!e){let s=!1,c=n.length;o<0&&(n.push(function EH(){return new ue(3100,!1)}()),s=!0),r<0&&(n.push(function OH(){return new ue(3101,!1)}()),s=!0),s&&n.splice(c,0,tI())}return{duration:o,delay:r,easing:a}}(t,n,e)}function Br(t,n,e){n.forEach((i,o)=>{const r=Ry(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Zs(t,n){n.forEach((e,i)=>{const o=Ry(i);t.style[o]=""})}function xu(t){return Array.isArray(t)?1==t.length?t[0]:function SH(t,n=null){return{type:St.Sequence,steps:t,options:n}}(t):t}const Py=new RegExp("{{\\s*(.+?)\\s*}}","g");function dI(t){let n=[];if("string"==typeof t){let e;for(;e=Py.exec(t);)n.push(e[1]);Py.lastIndex=0}return n}function Du(t,n,e){const i=`${t}`,o=i.replace(Py,(r,a)=>{let s=n[a];return null==s&&(e.push(function PH(t){return new ue(3003,!1)}()),s=""),s.toString()});return o==i?t:o}const yU=/-+([a-z0-9])/g;function Ry(t){return t.replace(yU,(...n)=>n[1].toUpperCase())}function Vo(t,n,e){switch(n.type){case St.Trigger:return t.visitTrigger(n,e);case St.State:return t.visitState(n,e);case St.Transition:return t.visitTransition(n,e);case St.Sequence:return t.visitSequence(n,e);case St.Group:return t.visitGroup(n,e);case St.Animate:return t.visitAnimate(n,e);case St.Keyframes:return t.visitKeyframes(n,e);case St.Style:return t.visitStyle(n,e);case St.Reference:return t.visitReference(n,e);case St.AnimateChild:return t.visitAnimateChild(n,e);case St.AnimateRef:return t.visitAnimateRef(n,e);case St.Query:return t.visitQuery(n,e);case St.Stagger:return t.visitStagger(n,e);default:throw function RH(t){return new ue(3004,!1)}()}}function Ny(t,n){return window.getComputedStyle(t)[n]}const xU=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class uI extends Iy{normalizePropertyName(n,e){return Ry(n)}normalizeStyleValue(n,e,i,o){let r="";const a=i.toString().trim();if(xU.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&o.push(function NH(t,n){return new ue(3005,!1)}())}return a+r}}const Pp="*";const Rp=new Set(["true","1"]),Np=new Set(["false","0"]);function hI(t,n){const e=Rp.has(t)||Np.has(t),i=Rp.has(n)||Np.has(n);return(o,r)=>{let a=t==Pp||t==o,s=n==Pp||n==r;return!a&&e&&"boolean"==typeof o&&(a=o?Rp.has(t):Np.has(t)),!s&&i&&"boolean"==typeof r&&(s=r?Rp.has(n):Np.has(n)),a&&s}}const MU=new RegExp("s*:selfs*,?","g");function Fy(t,n,e,i){return new TU(t).build(n,e,i)}class TU{constructor(n){this._driver=n}build(n,e,i){const o=new OU(e);return this._resetContextStyleTimingState(o),Vo(this,xu(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function FH(){return new ue(3006,!1)}()),n.definitions.forEach(s=>{if(this._resetContextStyleTimingState(e),s.type==St.State){const c=s,u=c.name;u.toString().split(/\s*,\s*/).forEach(p=>{c.name=p,r.push(this.visitState(c,e))}),c.name=u}else if(s.type==St.Transition){const c=this.visitTransition(s,e);i+=c.queryCount,o+=c.depCount,a.push(c)}else e.errors.push(function LH(){return new ue(3007,!1)}())}),{type:St.Trigger,name:n.name,states:r,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,a=o||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(c=>{dI(c).forEach(u=>{a.hasOwnProperty(u)||r.add(u)})})}),r.size&&e.errors.push(function BH(t,n){return new ue(3008,!1)}(0,r.values()))}return{type:St.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Vo(this,xu(n.animation),e),o=function DU(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function SU(t,n,e){if(":"==t[0]){const c=function kU(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function WH(t){return new ue(3015,!1)}()),n;const o=i[1],r=i[2],a=i[3];n.push(hI(o,a)),"<"==r[0]&&(o!=Pp||a!=Pp)&&n.push(hI(a,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:St.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ys(n.options)}}visitSequence(n,e){return{type:St.Sequence,steps:n.steps.map(i=>Vo(this,i,e)),options:Ys(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(a=>{e.currentTime=i;const s=Vo(this,a,e);return o=Math.max(o,e.currentTime),s});return e.currentTime=o,{type:St.Group,steps:r,options:Ys(n.options)}}visitAnimate(n,e){const i=function PU(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Ly(Ap(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Ly(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=Ap(e,n);return Ly(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Zt({});if(r.type==St.Keyframes)o=this.visitKeyframes(r,e);else{let a=n.styles,s=!1;if(!a){s=!0;const u={};i.easing&&(u.easing=i.easing),a=Zt(u)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=s,o=c}return e.currentAnimateTimings=null,{type:St.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let s of o)"string"==typeof s?s===ha?i.push(s):e.errors.push(new ue(3002,!1)):i.push(new Map(Object.entries(s)));let r=!1,a=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(a=s.get("easing"),s.delete("easing")),!r))for(let c of s.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:St.Style,styles:i,easing:a,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((s,c)=>{const u=e.collectedStyles.get(e.currentQuerySelector),p=u.get(c);let g=!0;p&&(r!=o&&r>=p.startTime&&o<=p.endTime&&(e.errors.push(function jH(t,n,e,i,o){return new ue(3010,!1)}()),g=!1),r=p.startTime),g&&u.set(c,{startTime:r,endTime:o}),e.options&&function vU(t,n,e){const i=n.params||{},o=dI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function AH(t){return new ue(3001,!1)}())})}(s,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:St.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function zH(){return new ue(3011,!1)}()),i;let r=0;const a=[];let s=!1,c=!1,u=0;const p=n.steps.map(re=>{const ae=this._makeStyleAst(re,e);let Ue=null!=ae.offset?ae.offset:function AU(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(ae.styles),tt=0;return null!=Ue&&(r++,tt=ae.offset=Ue),c=c||tt<0||tt>1,s=s||tt0&&r{const Ue=b>0?ae==w?1:b*ae:a[ae],tt=Ue*z;e.currentTime=k+T.delay+tt,T.duration=tt,this._validateStyleAst(re,e),re.offset=Ue,i.styles.push(re)}),i}visitReference(n,e){return{type:St.Reference,animation:Vo(this,xu(n.animation),e),options:Ys(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:St.AnimateChild,options:Ys(n.options)}}visitAnimateRef(n,e){return{type:St.AnimateRef,animation:this.visitReference(n.animation,e),options:Ys(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,a]=function IU(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(MU,"")),t=t.replace(/@\*/g,Op).replace(/@\w+/g,e=>Op+"-"+e.slice(1)).replace(/:animating/g,Oy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Bo(e.collectedStyles,e.currentQuerySelector,new Map);const s=Vo(this,xu(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:St.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:s,originalSelector:n.selector,options:Ys(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function GH(){return new ue(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:Ap(n.timings,e.errors,!0);return{type:St.Stagger,animation:Vo(this,xu(n.animation),e),timings:i,options:null}}}class OU{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Ys(t){return t?(t={...t}).params&&(t.params=function EU(t){return t?{...t}:null}(t.params)):t={},t}function Ly(t,n,e){return{duration:t,delay:n,easing:e}}function By(t,n,e,i,o,r,a=null,s=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:a,subTimeline:s}}class Fp{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const FU=new RegExp(":enter","g"),BU=new RegExp(":leave","g");function Vy(t,n,e,i,o,r=new Map,a=new Map,s,c,u=[]){return(new VU).buildKeyframes(t,n,e,i,o,r,a,s,c,u)}class VU{buildKeyframes(n,e,i,o,r,a,s,c,u,p=[]){u=u||new Fp;const g=new jy(n,e,u,o,r,p,[]);g.options=c;const b=c.delay?ma(c.delay):0;g.currentTimeline.delayNextStep(b),g.currentTimeline.setStyles([a],null,g.errors,c),Vo(this,i,g);const w=g.timelines.filter(k=>k.containsAnimation());if(w.length&&s.size){let k;for(let T=w.length-1;T>=0;T--){const z=w[T];if(z.element===e){k=z;break}}k&&!k.allowOnlyTimelineStyles()&&k.setStyles([s],null,g.errors,c)}return w.length?w.map(k=>k.buildKeyframes()):[By(e,[],[],[],0,b,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);r!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const a="number"==typeof r?r:ma(Du(r,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const a=null!=i.duration?ma(i.duration):null,s=null!=i.delay?ma(i.delay):null;return 0!==a&&n.forEach(c=>{const u=e.appendInstructionToTimeline(c,a,s);r=Math.max(r,u.duration+u.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Vo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==St.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Lp);const a=ma(r.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>Vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?ma(n.options.delay):0;n.steps.forEach(a=>{const s=e.createSubContext(n.options);r&&s.delayNextStep(r),Vo(this,a,s),o=Math.max(o,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return Ap(e.params?Du(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==St.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,n.styles.forEach(c=>{s.forwardTime((c.offset||0)*r),s.setStyles(c.styles,c.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?ma(o.delay):0;r&&(e.previousNode.type===St.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Lp);let a=i;const s=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=s.length;let c=null;s.forEach((u,p)=>{e.currentQueryIndex=p;const g=e.createSubContext(n.options,u);r&&g.delayNextStep(r),u===e.element&&(c=g.currentTimeline),Vo(this,n.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,a=Math.abs(r.duration),s=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=s-c;break;case"full":c=i.currentStaggerTime}const p=e.currentTimeline;c&&p.delayNextStep(c);const g=p.currentTime;Vo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-g+(o.startTime-i.currentTimeline.startTime)}}const Lp={};class jy{constructor(n,e,i,o,r,a,s,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=a,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Lp,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Bp(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ma(i.duration)),null!=i.delay&&(o.delay=ma(i.delay));const r=i.params;if(r){let a=o.params;a||(a=this.options.params={}),Object.keys(r).forEach(s=>{(!e||!a.hasOwnProperty(s))&&(a[s]=Du(r[s],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new jy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Lp,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new jU(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,a){let s=[];if(o&&s.push(this.element),n.length>0){n=(n=n.replace(FU,"."+this._enterClassName)).replace(BU,"."+this._leaveClassName);let u=this._driver.query(this.element,n,1!=i);0!==i&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),s.push(...u)}return!r&&0==s.length&&a.push(function qH(t){return new ue(3014,!1)}()),s}}class Bp{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Bp(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ha),this._currentKeyframe.set(e,ha);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},a=function zU(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,ha)}else for(let[r,a]of o)e.set(r,a)}),e}(n,this._globalTimelineStyles);for(let[s,c]of a){const u=Du(c,r,i);this._pendingStyles.set(s,u),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??ha),this._updateStyle(s,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((s,c)=>{const u=new Map([...this._backFill,...s]);u.forEach((p,g)=>{"!"===p?n.add(g):p===ha&&e.add(g)}),i||u.set("offset",c/this.duration),o.push(u)});const r=[...n.values()],a=[...e.values()];if(i){const s=o[0],c=new Map(s);s.set("offset",0),c.set("offset",1),o=[s,c]}return By(this.element,o,r,a,this.duration,this.startTime,this.easing,!1)}}class jU extends Bp{constructor(n,e,i,o,r,a,s=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=s,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],a=i+e,s=e/a,c=new Map(n[0]);c.set("offset",0),r.push(c);const u=new Map(n[0]);u.set("offset",fI(s)),r.push(u);const p=n.length-1;for(let g=1;g<=p;g++){let b=new Map(n[g]);const w=b.get("offset");b.set("offset",fI((e+w*i)/a)),r.push(b)}i=a,e=0,o="",n=r}return By(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function fI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function gI(t,n,e,i,o,r,a,s,c,u,p,g,b){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:a,timelines:s,queriedElements:c,preStyleProps:u,postStyleProps:p,totalTime:g,errors:b}}const zy={};class _I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function HU(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,a,s,c,u,p){const g=[],b=this.ast.options&&this.ast.options.params||zy,k=this.buildStyles(i,s&&s.params||zy,g),T=c&&c.params||zy,z=this.buildStyles(o,T,g),re=new Set,ae=new Map,Ue=new Map,tt="void"===o,ft={params:bI(T,b),delay:this.ast.options?.delay},zt=p?[]:Vy(n,e,this.ast.animation,r,a,k,z,ft,u,g);let Ni=0;return zt.forEach(On=>{Ni=Math.max(On.duration+On.delay,Ni)}),g.length?gI(e,this._triggerName,i,o,tt,k,z,[],[],ae,Ue,Ni,g):(zt.forEach(On=>{const Pa=On.element,cd=Bo(ae,Pa,new Set);On.preStyleProps.forEach(fc=>cd.add(fc));const UN=Bo(Ue,Pa,new Set);On.postStyleProps.forEach(fc=>UN.add(fc)),Pa!==e&&re.add(Pa)}),gI(e,this._triggerName,i,o,tt,k,z,zt,[...re.values()],ae,Ue,Ni))}}function bI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class UU{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=bI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((a,s)=>{a&&(a=Du(a,o,e));const c=this.normalizer.normalizePropertyName(s,e);a=this.normalizer.normalizeStyleValue(s,c,a,e),i.set(s,a)})}),i}}class GU{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new UU(o.style,o.options&&o.options.params||{},i))}),vI(this.states,"true","1"),vI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new _I(n,o,this.states))}),this.fallbackTransition=function qU(t,n,e){return new _I(t,{type:St.Transition,animation:{type:St.Sequence,steps:[],options:null},matchers:[(a,s)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function vI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const WU=new Fp;class KU{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Fy(this._driver,e,i,[]);if(i.length)throw function JH(t){return new ue(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=iI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let a;const s=new Map;if(r?(a=Vy(this._driver,e,r,Ey,Ip,new Map,new Map,i,WU,o),a.forEach(p=>{const g=Bo(s,p.element,new Map);p.postStyleProps.forEach(b=>g.set(b,null))})):(o.push(function eU(){return new ue(3300,!1)}()),a=[]),o.length)throw function tU(t){return new ue(3504,!1)}();s.forEach((p,g)=>{p.forEach((b,w)=>{p.set(w,this._driver.computeStyle(g,w,ha))})});const u=Xa(a.map(p=>{const g=s.get(p.element);return this._buildPlayer(p,new Map,g)}));return this._playersById.set(n,u),u.onDestroy(()=>this.destroy(n)),this.players.push(u),u}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function iU(t){return new ue(3301,!1)}();return e}listen(n,e,i,o){const r=Sy(e,"","","");return xy(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const yI="ng-animate-queued",Hy="ng-animate-disabled",JU=[],CI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},e$={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Cr="__ng_removed";class Uy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function o$(t){return t??null}(i?n.value:n),i){const{value:r,...a}=n;this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const Su="void",$y=new Uy(Su);class t${constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,Qo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function nU(t,n){return new ue(3302,!1)}();if(null==i||0==i.length)throw function oU(t){return new ue(3303,!1)}();if(!function r$(t){return"start"==t||"done"==t}(i))throw function rU(t,n){return new ue(3400,!1)}();const r=Bo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};r.push(a);const s=Bo(this._engine.statesByElement,n,new Map);return s.has(e)||(Qo(n,Ep),Qo(n,Ep+"-"+e),s.set(e,$y)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(a);c>=0&&r.splice(c,1),this._triggers.has(e)||s.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function aU(t){return new ue(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),a=new Gy(this.id,e,n);let s=this._engine.statesByElement.get(n);s||(Qo(n,Ep),Qo(n,Ep+"-"+e),this._engine.statesByElement.set(n,s=new Map));let c=s.get(e);const u=new Uy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&u.absorbOptions(c.options),s.set(e,u),c||(c=$y),u.value!==Su&&c.value===u.value){if(!function c$(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Zs(n,z),Br(n,re)})}return}const b=Bo(this._engine.playersByElement,n,[]);b.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let w=r.matchTransition(c.value,u.value,n,u.params),k=!1;if(!w){if(!o)return;w=r.fallbackTransition,k=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:w,fromState:c,toState:u,player:a,isFallbackTransition:k}),k||(Qo(n,yI),a.onStart(()=>{Dl(n,yI)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);const z=this._engine.playersByElement.get(n);if(z){let re=z.indexOf(a);re>=0&&z.splice(re,1)}}),this.players.push(a),b.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,Op,!0);i.forEach(o=>{if(o[Cr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),a=new Map;if(r){const s=[];if(r.forEach((c,u)=>{if(a.set(u,c.value),this._triggers.has(u)){const p=this.trigger(n,u,Su,o);p&&s.push(p)}}),s.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Xa(s).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const a=r.name;if(o.has(a))return;o.add(a);const c=this._triggers.get(a).fallbackTransition,u=i.get(a)||$y,p=new Uy(Su),g=new Gy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:c,fromState:u,toState:p,player:g,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[Cr];(!r||r===CI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Qo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,a=this._elementListeners.get(r);a&&a.forEach(s=>{if(s.name==i.triggerName){const c=Sy(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,xy(i.player,s.phase,c,s.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==r||0==a?r-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class i${_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i,o){this.bodyNode=n,this.driver=e,this._normalizer=i,this.scheduler=o,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(r,a)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new t$(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,s=this.driver.getParentElement(e);for(;s;){const c=o.get(s);if(c){const u=i.indexOf(c);i.splice(u+1,0,n),a=!0;break}s=this.driver.getParentElement(s)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(Vp(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!Vp(e))return;const r=e[Cr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),Qo(n,Hy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Dl(n,Hy))}removeNode(n,e,i){if(Vp(e)){this.scheduler?.notify();const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[Cr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return Vp(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,Op,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Oy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[Cr];if(e&&e.setForRemoval){if(n[Cr]=CI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Hy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function sU(t){return new ue(3402,!1)}()}_flushAnimations(n,e){const i=new Fp,o=[],r=new Map,a=[],s=new Map,c=new Map,u=new Map,p=new Set;this.disabledNodes.forEach(rt=>{p.add(rt);const _t=this.driver.query(rt,".ng-animate-queued",!0);for(let xt=0;xt<_t.length;xt++)p.add(_t[xt])});const g=this.bodyNode,b=Array.from(this.statesByElement.keys()),w=DI(b,this.collectedEnterElements),k=new Map;let T=0;w.forEach((rt,_t)=>{const xt=Ey+T++;k.set(_t,xt),rt.forEach(ii=>Qo(ii,xt))});const z=[],re=new Set,ae=new Set;for(let rt=0;rtre.add(ii)):ae.add(_t))}const Ue=new Map,tt=DI(b,Array.from(re));tt.forEach((rt,_t)=>{const xt=Ip+T++;Ue.set(_t,xt),rt.forEach(ii=>Qo(ii,xt))}),n.push(()=>{w.forEach((rt,_t)=>{const xt=k.get(_t);rt.forEach(ii=>Dl(ii,xt))}),tt.forEach((rt,_t)=>{const xt=Ue.get(_t);rt.forEach(ii=>Dl(ii,xt))}),z.forEach(rt=>{this.processLeaveNode(rt)})});const ft=[],zt=[];for(let rt=this._namespaceList.length-1;rt>=0;rt--)this._namespaceList[rt].drainQueuedTransitions(e).forEach(xt=>{const ii=xt.player,Nn=xt.element;if(ft.push(ii),this.collectedEnterElements.length){const to=Nn[Cr];if(to&&to.setForMove){if(to.previousTriggersValues&&to.previousTriggersValues.has(xt.triggerName)){const gc=to.previousTriggersValues.get(xt.triggerName),or=this.statesByElement.get(xt.element);if(or&&or.has(xt.triggerName)){const Og=or.get(xt.triggerName);Og.value=gc,or.set(xt.triggerName,Og)}}return void ii.destroy()}}const Yr=!g||!this.driver.containsElement(g,Nn),$o=Ue.get(Nn),Cs=k.get(Nn),Ki=this._buildInstruction(xt,i,Cs,$o,Yr);if(Ki.errors&&Ki.errors.length)return void zt.push(Ki);if(Yr)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Br(Nn,Ki.toStyles)),void o.push(ii);if(xt.isFallbackTransition)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Br(Nn,Ki.toStyles)),void o.push(ii);const qN=[];Ki.timelines.forEach(to=>{to.stretchStartingKeyframe=!0,this.disabledNodes.has(to.element)||qN.push(to)}),Ki.timelines=qN,i.append(Nn,Ki.timelines),a.push({instruction:Ki,player:ii,element:Nn}),Ki.queriedElements.forEach(to=>Bo(s,to,[]).push(ii)),Ki.preStyleProps.forEach((to,gc)=>{if(to.size){let or=c.get(gc);or||c.set(gc,or=new Set),to.forEach((Og,Mw)=>or.add(Mw))}}),Ki.postStyleProps.forEach((to,gc)=>{let or=u.get(gc);or||u.set(gc,or=new Set),to.forEach((Og,Mw)=>or.add(Mw))})});if(zt.length){const rt=[];zt.forEach(_t=>{rt.push(function cU(t,n){return new ue(3505,!1)}())}),ft.forEach(_t=>_t.destroy()),this.reportError(rt)}const Ni=new Map,On=new Map;a.forEach(rt=>{const _t=rt.element;i.has(_t)&&(On.set(_t,_t),this._beforeAnimationBuild(rt.player.namespaceId,rt.instruction,Ni))}),o.forEach(rt=>{const _t=rt.element;this._getPreviousPlayers(_t,!1,rt.namespaceId,rt.triggerName,null).forEach(ii=>{Bo(Ni,_t,[]).push(ii),ii.destroy()})});const Pa=z.filter(rt=>kI(rt,c,u)),cd=new Map;xI(cd,this.driver,ae,u,ha).forEach(rt=>{kI(rt,c,u)&&Pa.push(rt)});const fc=new Map;w.forEach((rt,_t)=>{xI(fc,this.driver,new Set(rt),c,"!")}),Pa.forEach(rt=>{const _t=cd.get(rt),xt=fc.get(rt);cd.set(rt,new Map([..._t?.entries()??[],...xt?.entries()??[]]))});const kw=[],$N=[],GN={};a.forEach(rt=>{const{element:_t,player:xt,instruction:ii}=rt;if(i.has(_t)){if(p.has(_t))return xt.onDestroy(()=>Br(_t,ii.toStyles)),xt.disabled=!0,xt.overrideTotalTime(ii.totalTime),void o.push(xt);let Nn=GN;if(On.size>1){let $o=_t;const Cs=[];for(;$o=$o.parentNode;){const Ki=On.get($o);if(Ki){Nn=Ki;break}Cs.push($o)}Cs.forEach(Ki=>On.set(Ki,Nn))}const Yr=this._buildAnimation(xt.namespaceId,ii,Ni,r,fc,cd);if(xt.setRealPlayer(Yr),Nn===GN)kw.push(xt);else{const $o=this.playersByElement.get(Nn);$o&&$o.length&&(xt.parentPlayer=Xa($o)),o.push(xt)}}else Zs(_t,ii.fromStyles),xt.onDestroy(()=>Br(_t,ii.toStyles)),$N.push(xt),p.has(_t)&&o.push(xt)}),$N.forEach(rt=>{const _t=r.get(rt.element);if(_t&&_t.length){const xt=Xa(_t);rt.setRealPlayer(xt)}}),o.forEach(rt=>{rt.parentPlayer?rt.syncPlayerEvents(rt.parentPlayer):rt.destroy()});for(let rt=0;rt!Yr.destroyed);Nn.length?a$(this,_t,Nn):this.processLeaveNode(_t)}return z.length=0,kw.forEach(rt=>{this.players.push(rt),rt.onDone(()=>{rt.destroy();const _t=this.players.indexOf(rt);this.players.splice(_t,1)}),rt.play()}),kw}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let a=[];if(e){const s=this.playersByQueriedElement.get(n);s&&(a=s)}else{const s=this.playersByElement.get(n);if(s){const c=!r||r==Su;s.forEach(u=>{u.queued||!c&&u.triggerName!=o||a.push(u)})}}return(i||o)&&(a=a.filter(s=>!(i&&i!=s.namespaceId||o&&o!=s.triggerName))),a}_beforeAnimationBuild(n,e,i){const r=e.element,a=e.isRemovalTransition?void 0:n,s=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const u=c.element,p=u!==r,g=Bo(i,u,[]);this._getPreviousPlayers(u,p,a,s,e.toState).forEach(w=>{const k=w.getRealPlayer();k.beforeDestroy&&k.beforeDestroy(),w.destroy(),g.push(w)})}Zs(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,a){const s=e.triggerName,c=e.element,u=[],p=new Set,g=new Set,b=e.timelines.map(k=>{const T=k.element;p.add(T);const z=T[Cr];if(z&&z.removedBeforeQueried)return new wu(k.duration,k.delay);const re=T!==c,ae=function s$(t){const n=[];return SI(t,n),n}((i.get(T)||JU).map(Ni=>Ni.getRealPlayer())).filter(Ni=>!!Ni.element&&Ni.element===T),Ue=r.get(T),tt=a.get(T),ft=iI(this._normalizer,k.keyframes,Ue,tt),zt=this._buildPlayer(k,ft,ae);if(k.subTimeline&&o&&g.add(T),re){const Ni=new Gy(n,s,T);Ni.setRealPlayer(zt),u.push(Ni)}return zt});u.forEach(k=>{Bo(this.playersByQueriedElement,k.element,[]).push(k),k.onDone(()=>function n$(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,k.element,k))}),p.forEach(k=>Qo(k,cI));const w=Xa(b);return w.onDestroy(()=>{p.forEach(k=>Dl(k,cI)),Br(c,e.toStyles)}),g.forEach(k=>{Bo(o,k,[]).push(w)}),w}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new wu(n.duration,n.delay)}}class Gy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new wu,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>xy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Bo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function Vp(t){return t&&1===t.nodeType}function wI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function xI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(wI(c)));const a=[];i.forEach((c,u)=>{const p=new Map;c.forEach(g=>{const b=n.computeStyle(u,g,o);p.set(g,b),(!b||0==b.length)&&(u[Cr]=e$,a.push(u))}),t.set(u,p)});let s=0;return e.forEach(c=>wI(c,r[s++])),a}function DI(t,n){const e=new Map;if(t.forEach(s=>e.set(s,[])),0==n.length)return e;const o=new Set(n),r=new Map;function a(s){if(!s)return 1;let c=r.get(s);if(c)return c;const u=s.parentNode;return c=e.has(u)?u:o.has(u)?1:a(u),r.set(s,c),c}return n.forEach(s=>{const c=a(s);1!==c&&e.get(c).push(s)}),e}function Qo(t,n){t.classList?.add(n)}function Dl(t,n){t.classList?.remove(n)}function a$(t,n,e){Xa(e).onDone(()=>t.processLeaveNode(n))}function SI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class ku{constructor(n,e,i,o){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,a)=>{},this._transitionEngine=new i$(n.body,e,i,o),this._timelineEngine=new KU(n.body,e,i),this._transitionEngine.onRemovalComplete=(r,a)=>this.onRemovalComplete(r,a)}registerTrigger(n,e,i,o,r){const a=n+"-"+o;let s=this._triggerCache[a];if(!s){const c=[],p=Fy(this._driver,r,c,[]);if(c.length)throw function QH(t,n){return new ue(3404,!1)}();s=function $U(t,n,e){return new GU(t,n,e)}(o,p,this._normalizer),this._triggerCache[a]=s}this._transitionEngine.registerTrigger(e,o,s)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,a]=nI(i);this._timelineEngine.command(r,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[a,s]=nI(i);return this._timelineEngine.listen(a,e,s,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class Mu{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=Mu.initialStylesByElement.get(n);o||Mu.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Br(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Br(this._element,this._initialStyles),this._endStyles&&(Br(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Mu.initialStylesByElement.delete(this._element),this._startStyles&&(Zs(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Zs(this._element,this._endStyles),this._endStyles=null),Br(this._element,this._initialStyles),this._state=3)}}function qy(t){let n=null;return t.forEach((e,i)=>{(function d$(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class MI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Ny(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class TI{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return rI(n,e)}getParentElement(n){return ky(n)}query(n,e,i){return aI(n,e,i)}computeStyle(n,e,i){return Ny(n,e)}animate(n,e,i,o,r,a=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const u=new Map,p=a.filter(w=>w instanceof MI);(function CU(t,n){return 0===t||0===n})(i,o)&&p.forEach(w=>{w.currentSnapshot.forEach((k,T)=>u.set(T,k))});let g=function bU(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(w=>new Map(w));g=function wU(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,a)=>{i.has(a)||o.push(a),i.set(a,r)}),o.length)for(let r=1;ra.set(s,Ny(t,s)))}}return n}(n,g,u);const b=function l$(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=qy(n[0]),n.length>1&&(i=qy(n[n.length-1]))):n instanceof Map&&(e=qy(n)),e||i?new Mu(t,e,i):null}(n,g);return new MI(n,g,c,b)}}const II="@.disabled";class EI{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==II?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class u$ extends EI{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==II?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function h$(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),a="";return"@"!=r.charAt(0)&&([r,a]=function m$(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,a,s=>{this.factory.scheduleListenerCallback(s._data||-1,i,s)})}return this.delegate.listen(n,e,i)}}class p${constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const a=r?.parentNode(o);a&&r.removeChild(a,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const u=this._rendererCache;let p=u.get(o);return p||(p=new EI("",o,this.engine,()=>u.delete(o)),u.set(o,p)),p}const r=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);const s=u=>{Array.isArray(u)?u.forEach(s):this.engine.registerTrigger(r,a,n,u.name,u)};return e.data.animation.forEach(s),new u$(this,a,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[a,s]=r;a(s)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const OI=[{provide:Iy,useFactory:function g$(){return new uI}},{provide:ku,useClass:(()=>{class t extends ku{constructor(e,i,o){super(e,i,o,xe(Ob,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(Ty),X(Iy))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})()},{provide:Ab,useFactory:function _$(t,n,e){return new p$(t,n,e)},deps:[fy,ku,We]}],Wy=[{provide:Ty,useFactory:()=>new TI},{provide:ui,useValue:"BrowserAnimations"},...OI],AI=[{provide:Ty,useClass:My},{provide:ui,useValue:"NoopAnimations"},...OI];let Ky,b$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?AI:Wy}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:Wy,imports:[Y2]})}return t})();try{Ky=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ky=!1}let Sl,ci=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?M2(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!Ky)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const PI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RI(){if(Sl)return Sl;if("object"!=typeof document||!document)return Sl=new Set(PI),Sl;let t=document.createElement("input");return Sl=new Set(PI.filter(n=>(t.setAttribute("type",n),t.type===n))),Sl}let Tu,zp,Qs,Zy;function Ja(t){return function v$(){if(null==Tu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Tu=!0}))}finally{Tu=Tu||!1}return Tu}()?t:!!t.capture}function NI(){if(null==Qs){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Qs=!1,Qs;if("scrollBehavior"in document.documentElement.style)Qs=!0;else{const t=Element.prototype.scrollTo;Qs=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Qs}function Iu(){if("object"!=typeof document||!document)return 0;if(null==zp){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),zp=0,0===t.scrollLeft&&(t.scrollLeft=1,zp=0===t.scrollLeft?1:2),t.remove()}return zp}function Hp(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function pa(t){return t.composedPath?t.composedPath()[0]:t.target}function Yy(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function FI(t){return t&&J(t.schedule)}function Qy(t){return t[t.length-1]}function LI(t){return J(Qy(t))?t.pop():void 0}function Eu(t){return FI(Qy(t))?t.pop():void 0}function es(t){return this instanceof es?(this.v=t,this):new es(t)}function zI(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function t0(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(a){return new Promise(function(s,c){!function o(r,a,s,c){Promise.resolve(c).then(function(u){r({value:u,done:s})},a)}(s,c,(a=t[r](a)).done,a.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const n0=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function HI(t){return J(t?.then)}function UI(t){return J(t[Pg])}function $I(t){return Symbol.asyncIterator&&J(t?.[Symbol.asyncIterator])}function GI(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const qI=function $$(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function WI(t){return J(t?.[qI])}function KI(t){return function jI(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(b){i[b]&&(o[b]=function(w){return new Promise(function(k,T){r.push([b,w,k,T])>1||s(b,w)})})}function s(b,w){try{!function c(b){b.value instanceof es?Promise.resolve(b.value.v).then(u,p):g(r[0][2],b)}(i[b](w))}catch(k){g(r[0][3],k)}}function u(b){s("next",b)}function p(b){s("throw",b)}function g(b,w){b(w),r.shift(),r.length&&s(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield es(e.read());if(o)return yield es(void 0);yield yield es(i)}}finally{e.releaseLock()}})}function ZI(t){return J(t?.getReader)}function Yn(t){if(t instanceof li)return t;if(null!=t){if(UI(t))return function G$(t){return new li(n=>{const e=t[Pg]();if(J(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(n0(t))return function q$(t){return new li(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,ut)})}(t);if($I(t))return YI(t);if(WI(t))return function K$(t){return new li(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(ZI(t))return function Z$(t){return YI(KI(t))}(t)}throw GI(t)}function YI(t){return new li(n=>{(function Y$(t,n){var e,i,o,r;return function BI(t,n,e,i){return new(e||(e=Promise))(function(r,a){function s(p){try{u(i.next(p))}catch(g){a(g)}}function c(p){try{u(i.throw(p))}catch(g){a(g)}}function u(p){p.done?r(p.value):function o(r){return r instanceof e?r:new e(function(a){a(r)})}(p.value).then(s,c)}u((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=zI(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function fa(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function QI(t,n=0){return $i((e,i)=>{e.subscribe(Fi(i,o=>fa(i,t,()=>i.next(o),n),()=>fa(i,t,()=>i.complete(),n),o=>fa(i,t,()=>i.error(o),n)))})}function XI(t,n=0){return $i((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function JI(t,n){if(!t)throw new Error("Iterable cannot be null");return new li(e=>{fa(e,n,()=>{const i=t[Symbol.asyncIterator]();fa(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Xi(t,n){return n?function iG(t,n){if(null!=t){if(UI(t))return function Q$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if(n0(t))return function J$(t,n){return new li(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(HI(t))return function X$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if($I(t))return JI(t,n);if(WI(t))return function eG(t,n){return new li(e=>{let i;return fa(e,n,()=>{i=t[qI](),fa(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(a){return void e.error(a)}r?e.complete():e.next(o)},0,!0)}),()=>J(i?.return)&&i.return()})}(t,n);if(ZI(t))return function tG(t,n){return JI(KI(t),n)}(t,n)}throw GI(t)}(t,n):Yn(t)}function Ke(...t){return Xi(t,Eu(t))}function An(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function qt(t,n,e){const i=J(t)||n||e?{next:t,error:n,complete:e}:t;return i?$i((o,r)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let s=!0;o.subscribe(Fi(r,c=>{var u;null===(u=i.next)||void 0===u||u.call(i,c),r.next(c)},()=>{var c;s=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var u;s=!1,null===(u=i.error)||void 0===u||u.call(i,c),r.error(c)},()=>{var c,u;s&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(u=i.finalize)||void 0===u||u.call(i)}))}):Ra}class gG extends de{constructor(n,e){super()}schedule(n,e=0){return this}}const qp={setInterval(t,n,...e){const{delegate:i}=qp;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=qp;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class a0 extends gG{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){var i;if(this.closed)return this;this.state=n;const o=this.id,r=this.scheduler;return null!=o&&(this.id=this.recycleAsyncId(r,o,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(r,this.id,e),this}requestAsyncId(n,e,i=0){return qp.setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&qp.clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(r){i=!0,o=r||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),o}unsubscribe(){if(!this.closed){const{id:n,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Z(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const s0={now:()=>(s0.delegate||Date).now(),delegate:void 0};class Au{constructor(n,e=Au.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Au.now=s0.now;class c0 extends Au{constructor(n,e=Au.now){super(n,e),this.actions=[],this._active=!1}flush(n){const{actions:e}=this;if(this._active)return void e.push(n);let i;this._active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this._active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Pu=new c0(a0),_G=Pu;function Wp(t,n=Pu){return $i((e,i)=>{let o=null,r=null,a=null;const s=()=>{if(o){o.unsubscribe(),o=null;const u=r;r=null,i.next(u)}};function c(){const u=a+t,p=n.now();if(p{r=u,a=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{s(),i.complete()},void 0,()=>{r=o=null}))})}function kt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>t.call(n,r,o++)&&i.next(r)))})}const jo=new li(t=>t.complete());function Pt(t){return t<=0?()=>jo:$i((n,e)=>{let i=0;n.subscribe(Fi(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function l0(t){return kt((n,e)=>t<=e)}function Ru(t,n=Ra){return t=t??vG,$i((e,i)=>{let o,r=!0;e.subscribe(Fi(i,a=>{const s=n(a);(r||!t(o,s))&&(r=!1,o=s,i.next(a))}))})}function vG(t,n){return t===n}function ot(t){return $i((n,e)=>{Yn(t).subscribe(Fi(e,()=>e.complete(),oi)),!e.closed&&n.subscribe(e)})}function $e(t){return null!=t&&"false"!=`${t}`}function yi(t,n=0){return eE(t)?Number(t):n}function eE(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function Kp(t){return Array.isArray(t)?t:[t]}function pn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _a(t){return t instanceof Be?t.nativeElement:t}let tE=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),CG=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=_a(e);return new li(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new qe,o=this._mutationObserverFactory.create(r=>i.next(r));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(tE))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),iE=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=yi(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new Ne,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(Wp(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(CG),_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[ge.None,"cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),Zp=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[tE]})}return t})();const{isArray:wG}=Array,{getPrototypeOf:xG,prototype:DG,keys:SG}=Object;function nE(t){if(1===t.length){const n=t[0];if(wG(n))return{args:n,keys:null};if(function kG(t){return t&&"object"==typeof t&&xG(t)===DG}(n)){const e=SG(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:MG}=Array;function d0(t){return nt(n=>function TG(t,n){return MG(n)?t(...n):t(n)}(t,n))}function oE(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function Xs(...t){const n=Eu(t),e=LI(t),{args:i,keys:o}=nE(t);if(0===i.length)return Xi([],n);const r=new li(function IG(t,n,e=Ra){return i=>{rE(n,()=>{const{length:o}=t,r=new Array(o);let a=o,s=o;for(let c=0;c{const u=Xi(t[c],n);let p=!1;u.subscribe(Fi(i,g=>{r[c]=g,p||(p=!0,s--),s||i.next(e(r.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,n,o?a=>oE(o,a):Ra));return e?r.pipe(d0(e)):r}function rE(t,n,e){t?fa(e,t,n):n()}function Pn(t,n,e=1/0){return J(n)?Pn((i,o)=>nt((r,a)=>n(i,r,o,a))(Yn(t(i,o))),e):("number"==typeof n&&(e=n),$i((i,o)=>function EG(t,n,e,i,o,r,a,s){const c=[];let u=0,p=0,g=!1;const b=()=>{g&&!c.length&&!u&&n.complete()},w=T=>u{r&&n.next(T),u++;let z=!1;Yn(e(T,p++)).subscribe(Fi(n,re=>{o?.(re),r?w(re):n.next(re)},()=>{z=!0},void 0,()=>{if(z)try{for(u--;c.length&&uk(re)):k(re)}b()}catch(re){n.error(re)}}))};return t.subscribe(Fi(n,w,()=>{g=!0,b()})),()=>{s?.()}}(i,o,t,e)))}function Ml(t=1/0){return Pn(Ra,t)}function Nu(...t){return function OG(){return Ml(1)}()(Xi(t,Eu(t)))}function an(...t){const n=Eu(t);return $i((e,i)=>{(n?Nu(t,e,n):Nu(t,e)).subscribe(i)})}const aE=new Set;let Js,AG=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):RG}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function PG(t,n){if(!aE.has(t))try{Js||(Js=document.createElement("style"),n&&(Js.nonce=n),Js.setAttribute("type","text/css"),document.head.appendChild(Js)),Js.sheet&&(Js.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(s_,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function RG(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let u0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new qe}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return sE(Kp(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=Xs(sE(Kp(e)).map(a=>this._registerQuery(a).observable));return r=Nu(r.pipe(Pt(1)),r.pipe(l0(1),Wp(0))),r.pipe(nt(a=>{const s={matches:!1,breakpoints:{}};return a.forEach(({matches:c,query:u})=>{s.matches=s.matches||c,s.breakpoints[u]=c}),s}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new li(a=>{const s=c=>this._zone.run(()=>a.next(c));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(an(i),nt(({matches:a})=>({query:e,matches:a})),ot(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(X(AG),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function Yp(t,n,e){const i=Qp(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))}function Tl(t,n,e){const o=Qp(t,n).filter(r=>r!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function Qp(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const lE="cdk-describedby-message",Xp="cdk-describedby-host";let h0=0,FG=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+h0++,this._document=e,this._id=xe(wd)+"-"+h0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=m0(i,o);"string"!=typeof i?(dE(i,this._id),this._messageRegistry.set(r,{messageElement:i,referenceCount:0})):this._messageRegistry.has(r)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,r)||this._addMessageReference(e,r)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const r=m0(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const a=this._messageRegistry.get(r);a&&0===a.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${Xp}="${this._id}"]`);for(let i=0;i0!=o.indexOf(lE));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);Yp(e,"aria-describedby",o.messageElement.id),e.setAttribute(Xp,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,Tl(e,"aria-describedby",o.messageElement.id),e.removeAttribute(Xp)}_isElementDescribedByMessage(e,i){const o=Qp(e,"aria-describedby"),r=this._messageRegistry.get(i),a=r&&r.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),r=e.getAttribute("aria-label");return!(!o||r&&r.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function m0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function dE(t,n){t.id||(t.id=`${lE}-${n}-${h0++}`)}class uE{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new qe,this._typeaheadSubscription=de.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new qe,this.change=new qe,n instanceof oa&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(qt(e=>this._pressedLetters.push(e)),Wp(n),kt(()=>this._pressedLetters.length>0),nt(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof oa?this._items.toArray():this._items}}class hE extends uE{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Jp extends uE{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let Fu=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function BG(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function LG(t){try{return t.frameElement}catch{return null}}(function qG(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===pE(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=pE(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function $G(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function GG(t){return!function jG(t){return function HG(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function VG(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function zG(t){return function UG(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||mE(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function mE(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function pE(t){if(!mE(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class fE{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Pt(1)).subscribe(n)}}let ef=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new fE(e,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Fu),X(We),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function p0(t){return 0===t.buttons||0===t.detail}function f0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const WG=new se("cdk-input-modality-detector-options"),KG={ignoreKeys:[18,17,224,91,16]},Il=Ja({passive:!0,capture:!0});let ZG=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new mt(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(s=>s===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(p0(a)?"keyboard":"mouse"),this._mostRecentTarget=pa(a))},this._onTouchstart=a=>{f0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pa(a))},this._options={...KG,...r},this.modalityDetected=this._modality.pipe(l0(1)),this.modalityChanged=this.modalityDetected.pipe(Ru()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Il),o.addEventListener("mousedown",this._onMousedown,Il),o.addEventListener("touchstart",this._onTouchstart,Il)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Il),document.removeEventListener("mousedown",this._onMousedown,Il),document.removeEventListener("touchstart",this._onTouchstart,Il))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(dt),X(WG,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const YG=new se("liveAnnouncerElement",{providedIn:"root",factory:function QG(){return null}}),XG=new se("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let JG=0,g0=(()=>{class t{constructor(e,i,o,r){this._ngZone=i,this._defaultOptions=r,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[r,a]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",r),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let r=0;r .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,r,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new qe,this._rootNodeFocusAndBlurListener=s=>{for(let u=pa(s);u;u=u.parentElement)"focus"===s.type?this._onFocus(s,u):this._onBlur(s,u)},this._document=r,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=_a(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ke();const r=function C$(t){if(function y$(){if(null==Zy){const t=typeof document<"u"?document.head:null;Zy=!(!t||!t.createShadowRoot&&!t.attachShadow)}return Zy}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const s={checkChildren:i,subject:new qe,rootNode:r};return this._elementInfo.set(o,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(e){const i=_a(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=_a(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([s,c])=>this._originChanged(s,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=pa(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,tf)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(ot(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,tf),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new Ne}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(zo))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();const _E="cdk-high-contrast-black-on-white",bE="cdk-high-contrast-white-on-black",_0="cdk-high-contrast-active";let vE=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=xe(u0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(_0,_E,bE),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(_0,_E):2===i&&e.add(_0,bE)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Zp]})}return t})();const iq=new se("cdk-dir-doc",{providedIn:"root",factory:function nq(){return xe(dt)}}),oq=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let fn=(()=>{class t{constructor(e){this.value="ltr",this.change=new Ne,e&&(this.value=function rq(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?oq.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(X(iq,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lu=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const aq=["*",[["mat-option"],["ng-container"]]],sq=["*","mat-option, ng-container"],cq=["text"];function lq(t,n){if(1&t&&D(0,"mat-pseudo-checkbox",6),2&t){const e=C();f("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dq(t,n){1&t&&D(0,"mat-pseudo-checkbox",7),2&t&&f("disabled",C().disabled)}function uq(t,n){if(1&t&&(d(0,"span",8),h(1),l()),2&t){const e=C();m(),De("(",e.group.label,")")}}const hq=[[["mat-icon"]],"*"],mq=["mat-icon","*"],fq=new se("mat-sanity-checks",{providedIn:"root",factory:function pq(){return!0}});let Mt=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!Yy()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE),X(fq,8),X(dt))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Lu,Lu]})}return t})();function Vr(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=$e(n)}constructor(...n){super(...n),this._disabled=!1}}}function is(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function ns(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=$e(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function os(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?yi(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function v0(t){return class extends t{updateErrorState(){const n=this.errorState,r=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);r!==n&&(this.errorState=r,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}function gq(t){return class extends t{constructor(...n){super(...n),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new li(e=>{this._isInitialized?this._notifySubscriber(e):this._pendingSubscribers.push(e)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(n){n.next(),n.complete()}}}let nf=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class bq{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wE=Ja({passive:!0,capture:!0});class vq{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=pa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}addHandler(n,e,i,o){const r=this._events.get(e);if(r){const a=r.get(i);a?a.add(o):r.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wE)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const r=o.get(e);r&&(r.delete(i),0===r.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,wE)))}}const xE={enterDuration:225,exitDuration:150},DE=Ja({passive:!0,capture:!0}),SE=["mousedown","touchstart"],kE=["mouseup","mouseleave","touchend","touchcancel"];class Vu{static#e=this._eventManager=new vq;constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=_a(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...xE,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function Cq(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),s=n-o.left,c=e-o.top,u=r.enterDuration,p=document.createElement("div");p.classList.add("mat-ripple-element"),p.style.left=s-a+"px",p.style.top=c-a+"px",p.style.height=2*a+"px",p.style.width=2*a+"px",null!=i.color&&(p.style.backgroundColor=i.color),p.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(p);const g=window.getComputedStyle(p),w=g.transitionDuration,k="none"===g.transitionProperty||"0s"===w||"0s, 0s"===w||0===o.width&&0===o.height,T=new bq(this,p,i,k);p.style.transform="scale3d(1, 1, 1)",T.state=0,i.persistent||(this._mostRecentTransientRipple=T);let z=null;return!k&&(u||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const re=()=>this._finishRippleTransition(T),ae=()=>this._destroyRipple(T);p.addEventListener("transitionend",re),p.addEventListener("transitioncancel",ae),z={onTransitionEnd:re,onTransitionCancel:ae}}),this._activeRipples.set(T,z),(k||!u)&&this._finishRippleTransition(T),T}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...xE,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=_a(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,SE.forEach(i=>{Vu._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{kE.forEach(e=>{this._triggerElement.addEventListener(e,this,DE)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=p0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(SE.forEach(e=>Vu._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&kE.forEach(e=>n.removeEventListener(e,this,DE)))}}const El=new se("mat-ripple-global-options");let rs=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,r,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new Vu(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(ci),_(El,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-ripple-unbounded",o.unbounded)},inputs:{color:[ge.None,"matRippleColor","color"],unbounded:[ge.None,"matRippleUnbounded","unbounded"],centered:[ge.None,"matRippleCentered","centered"],radius:[ge.None,"matRippleRadius","radius"],animation:[ge.None,"matRippleAnimation","animation"],disabled:[ge.None,"matRippleDisabled","disabled"],trigger:[ge.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),as=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})(),wq=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static#e=this.\u0275fac=function(i){return new(i||t)(_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&et("mat-pseudo-checkbox-indeterminate","indeterminate"===o.state)("mat-pseudo-checkbox-checked","checked"===o.state)("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal","minimal"===o.appearance)("mat-pseudo-checkbox-full","full"===o.appearance)("_mat-animation-noopable","NoopAnimations"===o._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,o){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),ME=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt]})}return t})();const rf=new se("MAT_OPTION_PARENT_COMPONENT"),xq=Vr(class{});let Dq=0,Sq=(()=>{class t extends xq{constructor(e){super(),this._labelId="mat-optgroup-label-"+Dq++,this._inert=e?.inertGroups??!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(rf,8))};static#t=this.\u0275dir=Q({type:t,inputs:{label:"label"},features:[ve]})}return t})();const af=new se("MatOptgroup");let TE=(()=>{class t extends Sq{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-mdc-optgroup"],hostVars:3,hostBindings:function(i,o){2&i&&Je("role",o._inert?null:"group")("aria-disabled",o._inert?null:o.disabled.toString())("aria-labelledby",o._inert?null:o._labelId)},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[Ye([{provide:af,useExisting:t}]),ve],ngContentSelectors:sq,decls:5,vars:4,consts:[["role","presentation",1,"mat-mdc-optgroup-label",3,"id"],[1,"mdc-list-item__primary-text"]],template:function(i,o){1&i&&(Ut(aq),d(0,"span",0)(1,"span",1),h(2),Ze(3),l()(),Ze(4,1)),2&i&&(et("mdc-list-item--disabled",o.disabled),f("id",o._labelId),m(2),De("",o.label," "))},styles:[".mat-mdc-optgroup{color:var(--mat-optgroup-label-text-color);font-family:var(--mat-optgroup-label-text-font);line-height:var(--mat-optgroup-label-text-line-height);font-size:var(--mat-optgroup-label-text-size);letter-spacing:var(--mat-optgroup-label-text-tracking);font-weight:var(--mat-optgroup-label-text-weight)}.mat-mdc-optgroup-label{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;min-height:48px}.mat-mdc-optgroup-label:focus{outline:none}[dir=rtl] .mat-mdc-optgroup-label,.mat-mdc-optgroup-label[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-optgroup-label.mdc-list-item--disabled{opacity:.38}.mat-mdc-optgroup-label .mdc-list-item__primary-text{font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;white-space:normal}"],encapsulation:2,changeDetection:0})}return t})(),kq=0;class IE{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Mq=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=$e(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,r){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+kq++,this.onSelectionChange=new Ne,this._stateChanges=new qe}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!An(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new IE(this,e))}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(cq,7),2&i){let r;Oe(r=Ae())&&(o._text=r.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}})}return t})(),Tn=(()=>{class t extends Mq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(rf,8),_(af,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&A("click",function(){return o._selectViaInteraction()})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Je("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),et("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},exportAs:["matOption"],features:[ve],ngContentSelectors:mq,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox","aria-hidden","true",3,"disabled","state",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","aria-hidden","true","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(i,o){1&i&&(Ut(hq),y(0,lq,1,2,"mat-pseudo-checkbox",0),Ze(1),d(2,"span",1,2),Ze(4,1),l(),y(5,dq,1,1,"mat-pseudo-checkbox",3)(6,uq,2,1,"span",4),D(7,"div",5)),2&i&&(f("ngIf",o.multiple),m(5),f("ngIf",!o.multiple&&o.selected&&!o.hideSingleSelectionIndicator),m(),f("ngIf",o.group&&o.group._inert),m(),f("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[rs,It,wq],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function EE(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}let sf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[as,Vn,Mt,ME]})}return t})();const AE={capture:!0},PE=["focus","click","mouseenter","touchstart"],y0="mat-ripple-loader-uninitialized",C0="mat-ripple-loader-class-name",RE="mat-ripple-loader-centered",cf="mat-ripple-loader-disabled";let NE=(()=>{class t{constructor(){this._document=xe(dt,{optional:!0}),this._animationMode=xe(ui,{optional:!0}),this._globalRippleOptions=xe(El,{optional:!0}),this._platform=xe(ci),this._ngZone=xe(We),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const o=e.target.closest(`[${y0}]`);o&&this._createRipple(o)},this._ngZone.runOutsideAngular(()=>{for(const e of PE)this._document?.addEventListener(e,this._onInteraction,AE)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of PE)this._document?.removeEventListener(i,this._onInteraction,AE)}configureRipple(e,i){e.setAttribute(y0,""),(i.className||!e.hasAttribute(C0))&&e.setAttribute(C0,i.className||""),i.centered&&e.setAttribute(RE,""),i.disabled&&e.setAttribute(cf,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const o=this._hosts.get(e);o?o.disabled=i:i?e.setAttribute(cf,""):e.removeAttribute(cf)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const o=this._document.createElement("span");o.classList.add("mat-ripple",e.getAttribute(C0)),e.append(o);const r=new rs(new Be(o),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return r._isInitialized=!0,r.trigger=e,r.centered=e.hasAttribute(RE),r.disabled=e.hasAttribute(cf),this.attachRipple(e,r),r}attachRipple(e,i){e.removeAttribute(y0),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Tq=["*",[["mat-toolbar-row"]]],Iq=["*","mat-toolbar-row"],Eq=is(class{constructor(t){this._elementRef=t}});let Oq=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]})}return t})(),Aq=(()=>{class t extends Eq{constructor(e,i,o){super(e),this._platform=i,this._document=o}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(dt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-toolbar"]],contentQueries:function(i,o,r){if(1&i&>(r,Oq,5),2&i){let a;Oe(a=Ae())&&(o._toolbarRows=a)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-toolbar-multiple-rows",o._toolbarRows.length>0)("mat-toolbar-single-row",0===o._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[ve],ngContentSelectors:Iq,decls:2,vars:0,template:function(i,o){1&i&&(Ut(Tq),Ze(0),Ze(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}return t})(),FE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();const LE=["mat-button",""],BE=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],VE=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],jE=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",Rq=["mat-icon-button",""],Nq=["*"],Fq=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Lq=is(Vr(ns(class{constructor(t){this._elementRef=t}})));let w0=(()=>{class t extends Lq{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e),this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._updateRippleDisabled()}constructor(e,i,o,r){super(e),this._platform=i,this._ngZone=o,this._animationMode=r,this._focusMonitor=xe(zo),this._rippleLoader=xe(NE),this._isFab=!1,this._disableRipple=!1,this._disabled=!1,this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-button-ripple"});const a=e.nativeElement.classList;for(const s of Fq)this._hasHostAttributes(s.selector)&&s.mdcClasses.forEach(c=>{a.add(c)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Vq=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Yt=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Je("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),zE=(()=>{class t extends Vq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(i,o){2&i&&(Je("disabled",o.disabled||null)("tabindex",o.disabled?-1:o.tabIndex)("aria-disabled",o.disabled.toString()),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',jE],encapsulation:2,changeDetection:0})}return t})(),ba=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Je("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:Rq,ngContentSelectors:Nq,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(),D(0,"span",0),Ze(1),D(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',jE],encapsulation:2,changeDetection:0})}return t})(),lf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,as,Mt]})}return t})();function ju(t,n){const e=J(t)?t:()=>t,i=o=>o.error(e());return new li(n?o=>n.schedule(i,0,o):i)}function x0(...t){const n=LI(t),{args:e,keys:i}=nE(t),o=new li(r=>{const{length:a}=e;if(!a)return void r.complete();const s=new Array(a);let c=a,u=a;for(let p=0;p{g||(g=!0,u--),s[p]=b},()=>c--,void 0,()=>{(!c||!g)&&(u||r.next(i?oE(i,s):s),r.complete())}))}});return n?o.pipe(d0(n)):o}function Li(t){return $i((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Fi(e,void 0,void 0,a=>{r=Yn(t(a,Li(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function ec(t){return $i((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function HE(t={}){const{connector:n=(()=>new qe),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let a,s,c,u=0,p=!1,g=!1;const b=()=>{s?.unsubscribe(),s=void 0},w=()=>{b(),a=c=void 0,p=g=!1},k=()=>{const T=a;w(),T?.unsubscribe()};return $i((T,z)=>{u++,!g&&!p&&b();const re=c=c??n();z.add(()=>{u--,0===u&&!g&&!p&&(s=D0(k,o))}),re.subscribe(z),!a&&u>0&&(a=new Ds({next:ae=>re.next(ae),error:ae=>{g=!0,b(),s=D0(w,e,ae),re.error(ae)},complete:()=>{p=!0,b(),s=D0(w,i),re.complete()}}),Yn(T).subscribe(a))})(r)}}function D0(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ds({next:()=>{i.unsubscribe(),t()}});return Yn(n(...e)).subscribe(i)}function Ol(t,n){return J(n)?Pn(t,n,1):Pn(t,1)}function gn(t,n){return $i((e,i)=>{let o=null,r=0,a=!1;const s=()=>a&&!o&&i.complete();e.subscribe(Fi(i,c=>{o?.unsubscribe();let u=0;const p=r++;Yn(t(c,p)).subscribe(o=Fi(i,g=>i.next(n?n(c,g,p,u++):g),()=>{o=null,s()}))},()=>{a=!0,s()}))})}class df{}class uf{}class Jo{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(a):this.headers.set(r,[a])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Jo?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Jo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Jo?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let a=this.headers.get(e);if(!a)return;a=a.filter(s=>-1===r.indexOf(s)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class zq{encodeKey(n){return UE(n)}encodeValue(n){return UE(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const Uq=/%(\d[a-f0-9])/gi,$q={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function UE(t){return encodeURIComponent(t).replace(Uq,(n,e)=>$q[e]??n)}function hf(t){return`${t}`}class ss{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new zq,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Hq(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[a,s]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(a)||[];c.push(s),e.set(a,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(hf):[hf(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ss({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(hf(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(hf(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class Gq{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function $E(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function GE(t){return typeof Blob<"u"&&t instanceof Blob}function qE(t){return typeof FormData<"u"&&t instanceof FormData}class zu{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function qq(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Jo,this.context??=new Gq,this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":sg.set(b,n.setHeaders[b]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,b)=>g.set(b,n.setParams[b]),u)),new zu(e,i,r,{params:u,headers:c,context:p,reportProgress:s,responseType:o,withCredentials:a})}}var cs=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(cs||{});class S0{constructor(n,e=Hu.Ok,i="OK"){this.headers=n.headers||new Jo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class mf extends S0{constructor(n={}){super(n),this.type=cs.ResponseHeader}clone(n={}){return new mf({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class tc extends S0{constructor(n={}){super(n),this.type=cs.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new tc({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Al extends S0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var Hu=function(t){return t[t.Continue=100]="Continue",t[t.SwitchingProtocols=101]="SwitchingProtocols",t[t.Processing=102]="Processing",t[t.EarlyHints=103]="EarlyHints",t[t.Ok=200]="Ok",t[t.Created=201]="Created",t[t.Accepted=202]="Accepted",t[t.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",t[t.NoContent=204]="NoContent",t[t.ResetContent=205]="ResetContent",t[t.PartialContent=206]="PartialContent",t[t.MultiStatus=207]="MultiStatus",t[t.AlreadyReported=208]="AlreadyReported",t[t.ImUsed=226]="ImUsed",t[t.MultipleChoices=300]="MultipleChoices",t[t.MovedPermanently=301]="MovedPermanently",t[t.Found=302]="Found",t[t.SeeOther=303]="SeeOther",t[t.NotModified=304]="NotModified",t[t.UseProxy=305]="UseProxy",t[t.Unused=306]="Unused",t[t.TemporaryRedirect=307]="TemporaryRedirect",t[t.PermanentRedirect=308]="PermanentRedirect",t[t.BadRequest=400]="BadRequest",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Gone=410]="Gone",t[t.LengthRequired=411]="LengthRequired",t[t.PreconditionFailed=412]="PreconditionFailed",t[t.PayloadTooLarge=413]="PayloadTooLarge",t[t.UriTooLong=414]="UriTooLong",t[t.UnsupportedMediaType=415]="UnsupportedMediaType",t[t.RangeNotSatisfiable=416]="RangeNotSatisfiable",t[t.ExpectationFailed=417]="ExpectationFailed",t[t.ImATeapot=418]="ImATeapot",t[t.MisdirectedRequest=421]="MisdirectedRequest",t[t.UnprocessableEntity=422]="UnprocessableEntity",t[t.Locked=423]="Locked",t[t.FailedDependency=424]="FailedDependency",t[t.TooEarly=425]="TooEarly",t[t.UpgradeRequired=426]="UpgradeRequired",t[t.PreconditionRequired=428]="PreconditionRequired",t[t.TooManyRequests=429]="TooManyRequests",t[t.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",t[t.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",t[t.InternalServerError=500]="InternalServerError",t[t.NotImplemented=501]="NotImplemented",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t[t.HttpVersionNotSupported=505]="HttpVersionNotSupported",t[t.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",t[t.InsufficientStorage=507]="InsufficientStorage",t[t.LoopDetected=508]="LoopDetected",t[t.NotExtended=510]="NotExtended",t[t.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",t}(Hu||{});function k0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let pf=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof zu)r=e;else{let c,u;c=o.headers instanceof Jo?o.headers:new Jo(o.headers),o.params&&(u=o.params instanceof ss?o.params:new ss({fromObject:o.params})),r=new zu(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const a=Ke(r).pipe(Ol(c=>this.handler.handle(c)));if(e instanceof zu||"events"===o.observe)return a;const s=a.pipe(kt(c=>c instanceof tc));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return s.pipe(nt(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return s.pipe(nt(c=>c.body))}case"response":return s;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ss).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,k0(o,i))}post(e,i,o={}){return this.request("POST",e,k0(o,i))}put(e,i,o={}){return this.request("PUT",e,k0(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(df))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function KE(t,n){return n(t)}function Xq(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const ZE=new se(""),Uu=new se(""),YE=new se(""),QE=new se("");function eW(){let t=null;return(n,e)=>{null===t&&(t=(xe(ZE,{optional:!0})??[]).reduceRight(Xq,KE));const i=xe(Vs),o=i.add();return t(n,e).pipe(ec(()=>i.remove(o)))}}let XE=(()=>{class t extends df{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=xe(Vs);const o=xe(QE,{optional:!0});this.backend=o??e}handle(e){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Uu),...this.injector.get(YE,[])]));this.chain=o.reduceRight((r,a)=>function Jq(t,n,e){return(i,o)=>Ha(e,()=>n(i,r=>t(r,o)))}(r,a,this.injector),KE)}const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(ec(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||t)(X(uf),X(Ao))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const rW=/^\)\]\}',?\n/;let eO=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ue(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?Xi(i.\u0275loadImpl()):Ke(null)).pipe(gn(()=>new li(r=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((T,z)=>a.setRequestHeader(T,z.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const T=e.detectContentTypeHeader();null!==T&&a.setRequestHeader("Content-Type",T)}if(e.responseType){const T=e.responseType.toLowerCase();a.responseType="json"!==T?T:"text"}const s=e.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const T=a.statusText||"OK",z=new Jo(a.getAllResponseHeaders()),re=function aW(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return c=new mf({headers:z,status:a.status,statusText:T,url:re}),c},p=()=>{let{headers:T,status:z,statusText:re,url:ae}=u(),Ue=null;z!==Hu.NoContent&&(Ue=typeof a.response>"u"?a.responseText:a.response),0===z&&(z=Ue?Hu.Ok:0);let tt=z>=200&&z<300;if("json"===e.responseType&&"string"==typeof Ue){const ft=Ue;Ue=Ue.replace(rW,"");try{Ue=""!==Ue?JSON.parse(Ue):null}catch(zt){Ue=ft,tt&&(tt=!1,Ue={error:zt,text:Ue})}}tt?(r.next(new tc({body:Ue,headers:T,status:z,statusText:re,url:ae||void 0})),r.complete()):r.error(new Al({error:Ue,headers:T,status:z,statusText:re,url:ae||void 0}))},g=T=>{const{url:z}=u(),re=new Al({error:T,status:a.status||0,statusText:a.statusText||"Unknown Error",url:z||void 0});r.error(re)};let b=!1;const w=T=>{b||(r.next(u()),b=!0);let z={type:cs.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),"text"===e.responseType&&a.responseText&&(z.partialText=a.responseText),r.next(z)},k=T=>{let z={type:cs.UploadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),r.next(z)};return a.addEventListener("load",p),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),e.reportProgress&&(a.addEventListener("progress",w),null!==s&&a.upload&&a.upload.addEventListener("progress",k)),a.send(s),r.next({type:cs.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",p),a.removeEventListener("timeout",g),e.reportProgress&&(a.removeEventListener("progress",w),null!==s&&a.upload&&a.upload.removeEventListener("progress",k)),a.readyState!==a.DONE&&a.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||t)(X(I2))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const I0=new se(""),tO=new se("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),iO=new se("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class nO{}let lW=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=f2(e,this.cookieName),this.lastCookieString=e),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ra),X(tO))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function dW(t,n){const e=t.url.toLowerCase();if(!xe(I0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=xe(nO).getToken(),o=xe(iO);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var ls=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(ls||{});function uW(...t){const n=[pf,eO,XE,{provide:df,useExisting:XE},{provide:uf,useExisting:eO},{provide:Uu,useValue:dW,multi:!0},{provide:I0,useValue:!0},{provide:nO,useClass:lW}];for(const e of t)n.push(...e.\u0275providers);return function Qh(t){return{\u0275providers:t}}(n)}const oO=new se("");function hW(){return function ic(t,n){return{\u0275kind:t,\u0275providers:n}}(ls.LegacyInterceptors,[{provide:oO,useFactory:eW},{provide:Uu,useExisting:oO,multi:!0}])}let mW=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[uW(hW())]})}return t})();const vW=["*"];let gf;function $u(t){return function yW(){if(void 0===gf&&(gf=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gf=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gf}()?.createHTML(t)||t}function uO(t){return Error(`Unable to find icon with the name "${t}"`)}function hO(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function mO(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class nc{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let _f=(()=>{class t{constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,r){return this._addSvgIconConfig(e,i,new nc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const a=this._sanitizer.sanitize(Bn.HTML,o);if(!a)throw mO(o);const s=$u(a);return this._addSvgIconConfig(e,i,new nc("",s,r))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new nc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(Bn.HTML,i);if(!r)throw mO(i);const a=$u(r);return this._addSvgIconSetConfig(e,new nc("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(Bn.RESOURCE_URL,e);if(!i)throw hO(e);const o=this._cachedIconsByUrl.get(i);return o?Ke(bf(o)):this._loadSvgIconFromConfig(new nc(e,null)).pipe(qt(r=>this._cachedIconsByUrl.set(i,r)),nt(r=>bf(r)))}getNamedSvgIcon(e,i=""){const o=pO(i,e);let r=this._svgIconConfigs.get(o);if(r)return this._getSvgFromConfig(r);if(r=this._getIconConfigFromResolvers(i,e),r)return this._svgIconConfigs.set(o,r),this._getSvgFromConfig(r);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):ju(uO(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ke(bf(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(nt(i=>bf(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ke(o):x0(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Li(s=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(Bn.RESOURCE_URL,a.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(u)),Ke(null)})))).pipe(nt(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw uO(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const r=i[o];if(r.svgText&&r.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(r),s=this._extractSvgIconFromSet(a,e,r.options);if(s)return s}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(qt(i=>e.svgText=i),nt(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ke(null):this._fetchIcon(e).pipe(qt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const a=r.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const s=this._svgElementFromString($u(""));return s.appendChild(a),this._setSvgAttributes(s,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString($u("")),o=e.attributes;for(let r=0;r$u(u)),ec(()=>this._inProgressUrlFetches.delete(a)),HE());return this._inProgressUrlFetches.set(a,c),c}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(pO(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),fO=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],TW=fO.map(t=>`[${t}]`).join(", "),IW=/^url\(['"]?#(.*?)['"]?\)$/;let Mi=(()=>{class t extends DW{get inline(){return this._inline}set inline(e){this._inline=$e(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,r,a,s){super(e),this._iconRegistry=i,this._location=r,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=de.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,r)=>{o.forEach(a=>{r.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(TW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const s=i[r],c=s.getAttribute(a),u=c?c.match(IW):null;if(u){let p=o.get(s);p||(p=[],o.set(s,p)),p.push({name:a,value:u[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Pt(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(_f),oo("aria-hidden"),_(kW),_(Go),_(SW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(i,o){2&i&&(Je("data-mat-icon-type",o._usingFontIcon()?"font":"svg")("data-mat-icon-name",o._svgName||o.fontIcon)("data-mat-icon-namespace",o._svgNamespace||o.fontSet)("fontIcon",o._usingFontIcon()?o.fontIcon:null),et("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[ve],ngContentSelectors:vW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),gO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();const EW=["*"],PW=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],RW=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],NW=new se("MAT_CARD_CONFIG");let Gu=(()=>{class t{constructor(e){this.appearance=e?.appearance||"raised"}static#e=this.\u0275fac=function(i){return new(i||t)(_(NW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-card-outlined","outlined"===o.appearance)("mdc-card--outlined","outlined"===o.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:EW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation);--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})(),E0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return t})(),O0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return t})(),_O=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:RW,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,o){1&i&&(Ut(PW),Ze(0),d(1,"div",0),Ze(2,1),l(),Ze(3,2))},encapsulation:2,changeDetection:0})}return t})(),bO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,Mt]})}return t})();const VW=new se("MAT_PROGRESS_BAR_DEFAULT_OPTIONS"),zW=is(class{constructor(t){this._elementRef=t}},"primary");let vO=(()=>{class t extends zW{constructor(e,i,o,r,a){super(e),this._ngZone=i,this._changeDetectorRef=o,this._animationMode=r,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new Ne,this._mode="determinate",this._transitionendHandler=s=>{0===this.animationEnd.observers.length||!s.target||!s.target.classList.contains("mdc-linear-progress__primary-bar")||("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))},this._isNoopAnimation="NoopAnimations"===r,a&&(a.color&&(this.color=this.defaultColor=a.color),this.mode=a.mode||this.mode)}get value(){return this._value}set value(e){this._value=yO(yi(e)),this._changeDetectorRef.markForCheck()}get bufferValue(){return this._bufferValue||0}set bufferValue(e){this._bufferValue=yO(yi(e)),this._changeDetectorRef.markForCheck()}get mode(){return this._mode}set mode(e){this._mode=e,this._changeDetectorRef.markForCheck()}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._transitionendHandler)})}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._transitionendHandler)}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${"buffer"===this.mode?this.bufferValue:100}%`}_isIndeterminate(){return"indeterminate"===this.mode||"query"===this.mode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(Lt),_(ui,8),_(VW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:8,hostBindings:function(i,o){2&i&&(Je("aria-valuenow",o._isIndeterminate()?null:o.value)("mode",o.mode),et("_mat-animation-noopable",o._isNoopAnimation)("mdc-linear-progress--animation-ready",!o._isNoopAnimation)("mdc-linear-progress--indeterminate",o._isIndeterminate()))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[ve],decls:7,vars:4,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"div",1)(2,"div",2),l(),d(3,"div",3),D(4,"span",4),l(),d(5,"div",5),D(6,"span",4),l()),2&i&&(m(),Sn("flex-basis",o._getBufferBarFlexBasis()),m(2),Sn("transform",o._getPrimaryBarTransform()))},styles:["@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}"],encapsulation:2,changeDetection:0})}return t})();function yO(t,n=0,e=100){return Math.max(n,Math.min(e,t))}let CO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt]})}return t})();function Ri(...t){const n=Eu(t),e=function w$(t,n){return"number"==typeof Qy(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Yn(i[0]):Ml(e)(Xi(i,n)):jo}let wO=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=$e(e)}get inset(){return this._inset}set inset(e){this._inset=$e(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,o){2&i&&(Je("aria-orientation",o.vertical?"vertical":"horizontal"),et("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,o){},styles:[".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),A0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();function P0(){return $i((t,n)=>{let e=null;t._refCount++;const i=Fi(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class R0 extends li{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Ow(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new de;const e=this.getSubject();n.add(this.source.subscribe(Fi(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=de.EMPTY)}return n}refCount(){return P0()(this)}}function Pl(t){return!!t&&(t instanceof li||J(t.lift)&&J(t.subscribe))}class vf{}function yf(t){return t&&"function"==typeof t.connect&&!(t instanceof R0)}class xO{applyChanges(n,e,i,o,r){n.forEachOperation((a,s,c)=>{let u,p;if(null==a.previousIndex){const g=i(a,s,c);u=e.createEmbeddedView(g.templateRef,g.context,g.index),p=1}else null==c?(e.remove(s),p=3):(u=e.get(s),e.move(u,c),p=2);r&&r({context:u?.context,operation:p,record:a})})}detach(){}}class qu{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new qe,e&&e.length&&(n?e.forEach(r=>this._markSelected(r)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(r)).forEach(r=>this._unmarkSelected(r));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}let N0=(()=>{class t{constructor(){this._listeners=[]}notify(e,i){for(let o of this._listeners)o(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Wu=new se("_ViewRepeater");let SO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be))};static#t=this.\u0275dir=Q({type:t})}return t})(),oc=(()=>{class t extends SO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const uo=new se(""),UW={provide:uo,useExisting:Qt(()=>Ci),multi:!0},GW=new se("");let Ci=(()=>{class t extends SO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function $W(){const t=Qa()?Qa().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be),_(GW,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o._handleInput(a.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(a){return o._compositionEnd(a.target.value)})},features:[Ye([UW]),ve]})}return t})();function ds(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function MO(t){return null!=t&&"number"==typeof t.length}const jn=new se(""),us=new se(""),qW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ee{static min(n){return function TO(t){return n=>{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return EO(n)}static requiredTrue(n){return function OO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function AO(t){return ds(t.value)||qW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return PO(n)}static maxLength(n){return RO(n)}static pattern(n){return NO(n)}static nullValidator(n){return null}static compose(n){return zO(n)}static composeAsync(n){return HO(n)}}function EO(t){return ds(t.value)?{required:!0}:null}function PO(t){return n=>ds(n.value)||!MO(n.value)?null:n.value.lengthMO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function NO(t){if(!t)return Cf;let n,e;return"string"==typeof t?(e="","^"!==t.charAt(0)&&(e+="^"),e+=t,"$"!==t.charAt(t.length-1)&&(e+="$"),n=new RegExp(e)):(e=t.toString(),n=t),i=>{if(ds(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}function Cf(t){return null}function FO(t){return null!=t}function LO(t){return pu(t)?Xi(t):t}function BO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function VO(t,n){return n.map(e=>e(t))}function jO(t){return t.map(n=>function WW(t){return!t.validate}(n)?n:e=>n.validate(e))}function zO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return BO(VO(e,n))}}function F0(t){return null!=t?zO(jO(t)):null}function HO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return x0(VO(e,n).map(LO)).pipe(nt(BO))}}function L0(t){return null!=t?HO(jO(t)):null}function UO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function $O(t){return t._rawValidators}function GO(t){return t._rawAsyncValidators}function B0(t){return t?Array.isArray(t)?t:[t]:[]}function wf(t,n){return Array.isArray(t)?t.includes(n):t===n}function qO(t,n){const e=B0(n);return B0(t).forEach(o=>{wf(e,o)||e.push(o)}),e}function WO(t,n){return B0(n).filter(e=>!wf(t,e))}class KO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=F0(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=L0(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class ho extends KO{get formDirective(){return null}get path(){return null}}class wr extends KO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class ZO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let _i=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(wr,2))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[ve]})}return t})(),Bi=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[ve]})}return t})();const Ku="VALID",Df="INVALID",Rl="PENDING",Zu="DISABLED";function z0(t){return(Sf(t)?t.validators:t)||null}function H0(t,n){return(Sf(n)?n.asyncValidators:t)||null}function Sf(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function QO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new ue(1e3,"");if(!i[e])throw new ue(1001,"")}function XO(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new ue(1002,"")})}class kf{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ku}get invalid(){return this.status===Df}get pending(){return this.status==Rl}get disabled(){return this.status===Zu}get enabled(){return this.status!==Zu}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(qO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(qO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(WO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(WO(n,this._rawAsyncValidators))}hasValidator(n){return wf(this._rawValidators,n)}hasAsyncValidator(n){return wf(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Rl,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zu,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Ku,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ku||this.status===Rl)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zu:Ku}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Rl,this._hasOwnPendingAsyncValidator=!0;const e=LO(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?Zu:this.errors?Df:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Rl)?Rl:this._anyControlsHaveStatus(Df)?Df:Ku}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Sf(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function QW(t){return Array.isArray(t)?F0(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function XW(t){return Array.isArray(t)?L0(t):t||null}(this._rawAsyncValidators)}}class ti extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){XO(this,0,n),Object.keys(n).forEach(i=>{QO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class JO extends ti{}const rc=new se("CallSetDisabledState",{providedIn:"root",factory:()=>Yu}),Yu="always";function Mf(t,n){return[...n.path,t]}function Qu(t,n,e=Yu){U0(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function eK(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&eA(t,n)})}(t,n),function iK(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function tK(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&eA(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function JW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Tf(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Ef(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function If(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function U0(t,n){const e=$O(t);null!==n.validator?t.setValidators(UO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=GO(t);null!==n.asyncValidator?t.setAsyncValidators(UO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();If(n._rawValidators,o),If(n._rawAsyncValidators,o)}function Ef(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=$O(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=GO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return If(n._rawValidators,i),If(n._rawAsyncValidators,i),e}function eA(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function tA(t,n){U0(t,n)}function G0(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function iA(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function q0(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Ci?e=r:function rK(t){return Object.getPrototypeOf(t.constructor)===oc}(r)?i=r:o=r}),o||i||e||null}const sK={provide:ho,useExisting:Qt(()=>hs)},Xu=Promise.resolve();let hs=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new ti({},F0(e),L0(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Xu.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Qu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path),o=new ti({});tA(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Xu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,iA(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{options:[ge.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([sK]),ve]})}return t})();function nA(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function oA(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const q=class extends kf{constructor(n=null,e,i){super(z0(e),H0(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Sf(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=oA(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){nA(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){nA(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){oA(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let rA=(()=>{class t extends ho{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const dK={provide:wr,useExisting:Qt(()=>Nl)},sA=Promise.resolve();let Nl=(()=>{class t extends wr{constructor(e,i,o,r,a,s){super(),this._changeDetectorRef=a,this.callSetDisabledState=s,this.control=new q,this._registered=!1,this.name="",this.update=new Ne,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),G0(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Qu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){sA.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Cl(i);sA.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Mf(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,9),_(jn,10),_(us,10),_(uo,10),_(Lt,8),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"],options:[ge.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ye([dK]),ve,fi]})}return t})(),_n=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const uK={provide:uo,useExisting:Qt(()=>W0),multi:!0};let W0=(()=>{class t extends oc{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o.onChange(a.target.value)})("blur",function(){return o.onTouched()})},features:[Ye([uK]),ve]})}return t})();const K0=new se(""),fK={provide:wr,useExisting:Qt(()=>Fl)};let Fl=(()=>{class t extends wr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=a,this.update=new Ne,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=q0(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&Tf(i,this,!1),Qu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}G0(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Tf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(uo,10),_(K0,8),_(rc,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControl",""]],inputs:{form:[ge.None,"formControl","form"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[Ye([fK]),ve,fi]})}return t})();const gK={provide:ho,useExisting:Qt(()=>wi)};let wi=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ne,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ef(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Qu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tf(e.control||null,e,!1),function aK(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,iA(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tf(i||null,e),(t=>t instanceof q)(o)&&(Qu(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);tA(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function nK(t,n){return Ef(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){U0(this.form,this),this._oldForm&&Ef(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{form:[ge.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([gK]),ve,fi]})}return t})();const _K={provide:ho,useExisting:Qt(()=>Ju)};let Ju=(()=>{class t extends rA{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""]],inputs:{name:[ge.None,"formGroupName","name"]},features:[Ye([_K]),ve]})}return t})();const bK={provide:ho,useExisting:Qt(()=>eh)};let eh=(()=>{class t extends ho{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formArrayName",""]],inputs:{name:[ge.None,"formArrayName","name"]},features:[Ye([bK]),ve]})}return t})();function dA(t){return!(t instanceof Ju||t instanceof wi||t instanceof eh)}const vK={provide:wr,useExisting:Qt(()=>zi)};let zi=(()=>{class t extends wr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new Ne,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){this._added||this._setUpControl(),G0(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10),_(uo,10),_(K0,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""]],inputs:{name:[ge.None,"formControlName","name"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[Ye([vK]),ve,fi]})}return t})();function mA(t){return"number"==typeof t?t:parseInt(t,10)}let ac=(()=>{class t{constructor(){this._validator=Cf}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Cf,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();const TK={provide:jn,useExisting:Qt(()=>Do),multi:!0};let Do=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Cl,this.createValidator=e=>EO}enabled(e){return e}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,o){2&i&&Je("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ye([TK]),ve]})}return t})();const OK={provide:jn,useExisting:Qt(()=>X0),multi:!0};let X0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>PO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Je("minlength",o._enabled?o.minlength:null)},inputs:{minlength:"minlength"},features:[Ye([OK]),ve]})}return t})();const AK={provide:jn,useExisting:Qt(()=>J0),multi:!0};let J0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>RO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Je("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ye([AK]),ve]})}return t})();const PK={provide:jn,useExisting:Qt(()=>eC),multi:!0};let eC=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=e=>e,this.createValidator=e=>NO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Je("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ye([PK]),ve]})}return t})(),bA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();class vA extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){XO(this,0,n),n.forEach((i,o)=>{QO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function yA(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let xr=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return yA(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ti(o,r)}record(e,i=null){const o=this._reduceControls(e);return new JO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(yA(i)?r=i:(r.validators=i,r.asyncValidators=o),new q(e,{...r,nonNullable:!0})):new q(e,i,o)}array(e,i,o){const r=e.map(a=>this._createControl(a));return new vA(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof q||e instanceof kf?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),RK=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[bA]})}return t})(),CA=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:K0,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[bA]})}return t})(),kA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Zp,Vn,Mt,as,ME,A0]})}return t})();class dZ extends qe{constructor(n=1/0,e=1/0,i=s0){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:a}=this;e||(i.push(n),!o&&i.push(r.now()+a)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let a=0;athis._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new li(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(kt(e=>e.some(i=>i.target===n)),function uZ(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,HE({connector:()=>new dZ(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}({bufferSize:1,refCount:!0}),ot(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let mZ=(()=>{class t{constructor(){this._observers=new Map,this._ngZone=xe(We)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new hZ(o)),this._observers.get(o).observe(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pZ=["notch"],fZ=["matFormFieldNotchedOutline",""],gZ=["*"],_Z=["textField"],bZ=["iconPrefixContainer"],vZ=["textPrefixContainer"];function yZ(t,n){1&t&&D(0,"span",19)}function CZ(t,n){if(1&t&&(d(0,"label",17),Ze(1,1),y(2,yZ,1,0,"span",18),l()),2&t){const e=C(2);f("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Je("for",e._control.id),m(2),f("ngIf",!e.hideRequiredMarker&&e._control.required)}}function wZ(t,n){1&t&&y(0,CZ,3,5,"label",16),2&t&&f("ngIf",C()._hasFloatingLabel())}function xZ(t,n){1&t&&D(0,"div",20)}function DZ(t,n){}function SZ(t,n){1&t&&y(0,DZ,0,0,"ng-template",22),2&t&&(C(2),f("ngTemplateOutlet",Ft(1)))}function kZ(t,n){if(1&t&&(d(0,"div",21),y(1,SZ,1,1,"ng-template",9),l()),2&t){const e=C();f("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),m(),f("ngIf",!e._forceDisplayInfixLabel())}}function MZ(t,n){1&t&&(d(0,"div",23,24),Ze(2,2),l())}function TZ(t,n){1&t&&(d(0,"div",25,26),Ze(2,3),l())}function IZ(t,n){}function EZ(t,n){1&t&&y(0,IZ,0,0,"ng-template",22),2&t&&(C(),f("ngTemplateOutlet",Ft(1)))}function OZ(t,n){1&t&&(d(0,"div",27),Ze(1,4),l())}function AZ(t,n){1&t&&(d(0,"div",28),Ze(1,5),l())}function PZ(t,n){1&t&&D(0,"div",29)}function RZ(t,n){1&t&&(d(0,"div",30),Ze(1,6),l()),2&t&&f("@transitionMessages",C()._subscriptAnimationState)}function NZ(t,n){if(1&t&&(d(0,"mat-hint",34),h(1),l()),2&t){const e=C(2);f("id",e._hintLabelId),m(),Pe(e.hintLabel)}}function FZ(t,n){if(1&t&&(d(0,"div",31),y(1,NZ,2,2,"mat-hint",32),Ze(2,7),D(3,"div",33),Ze(4,8),l()),2&t){const e=C();f("@transitionMessages",e._subscriptAnimationState),m(),f("ngIf",e.hintLabel)}}const LZ=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],BZ=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let xi=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-label"]]})}return t})(),VZ=0;const MA=new se("MatError");let iC=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+VZ++,e||i.nativeElement.setAttribute("aria-live","polite")}static#e=this.\u0275fac=function(i){return new(i||t)(oo("aria-live"),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},features:[Ye([{provide:MA,useExisting:t}])]})}return t})(),jZ=0,sc=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+jZ++}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,o){2&i&&(ao("id",o.id),Je("align",null),et("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const zZ=new se("MatPrefix"),TA=new se("MatSuffix");let nC=(()=>{class t{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[ge.None,"matTextSuffix","_isTextSelector"]},features:[Ye([{provide:TA,useExisting:t}])]})}return t})();const IA=new se("FloatingLabelParent");let EA=(()=>{class t{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=xe(mZ),this._ngZone=xe(We),this._parent=xe(IA),this._resizeSubscription=new de}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function HZ(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const OA="mdc-line-ripple--active",Of="mdc-line-ripple--deactivating";let AA=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const r=this._elementRef.nativeElement.classList,a=r.contains(Of);"opacity"===o.propertyName&&a&&r.remove(OA,Of)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Of),e.add(OA)}deactivate(){this._elementRef.nativeElement.classList.add(Of)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PA=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&vt(pZ,5),2&i){let r;Oe(r=Ae())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-notched-outline--notched",o.open)},inputs:{open:[ge.None,"matFormFieldNotchedOutlineOpen","open"]},attrs:fZ,ngContentSelectors:gZ,decls:5,vars:0,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],["notch",""],[1,"mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Ut(),D(0,"div",0),d(1,"div",1,2),Ze(3),l(),D(4,"div",3))},encapsulation:2,changeDetection:0})}return t})();const UZ={transitionMessages:Lo("transitionMessages",[mn("enter",Zt({opacity:1,transform:"translateY(0%)"})),Qi("void => enter",[Zt({opacity:0,transform:"translateY(-5px)"}),Yi("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let Af=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t})}return t})();const th=new se("MatFormField"),$Z=new se("MAT_FORM_FIELD_DEFAULT_OPTIONS");let RA=0,Di=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=$e(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=r,this._platform=a,this._defaults=s,this._animationMode=c,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+RA++,this._hintLabelId="mat-mdc-hint-"+RA++,this._subscriptAnimationState="",this._destroyed=new qe,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,s&&(s.appearance&&(this.appearance=s.appearance),this._hideRequiredMarker=!!s?.hideRequiredMarker,s.color&&(this.color=s.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(ot(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Ri(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ot(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(ot(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(r=>"start"===r.align):null,o=this._hintChildren?this._hintChildren.find(r=>"end"===r.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,r=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${r+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),_(fn),_(ci),_($Z,8),_(ui,8),_(dt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,xi,5),gt(r,xi,7),gt(r,Af,5),gt(r,zZ,5),gt(r,TA,5),gt(r,MA,5),gt(r,sc,5)),2&i){let a;Oe(a=Ae())&&(o._labelChildNonStatic=a.first),Oe(a=Ae())&&(o._labelChildStatic=a.first),Oe(a=Ae())&&(o._formFieldControl=a.first),Oe(a=Ae())&&(o._prefixChildren=a),Oe(a=Ae())&&(o._suffixChildren=a),Oe(a=Ae())&&(o._errorChildren=a),Oe(a=Ae())&&(o._hintChildren=a)}},viewQuery:function(i,o){if(1&i&&(vt(_Z,5),vt(bZ,5),vt(vZ,5),vt(EA,5),vt(PA,5),vt(AA,5)),2&i){let r;Oe(r=Ae())&&(o._textField=r.first),Oe(r=Ae())&&(o._iconPrefixContainer=r.first),Oe(r=Ae())&&(o._textPrefixContainer=r.first),Oe(r=Ae())&&(o._floatingLabel=r.first),Oe(r=Ae())&&(o._notchedOutline=r.first),Oe(r=Ae())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,o){2&i&&et("mat-mdc-form-field-label-always-float",o._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",o._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",o._hasIconSuffix)("mat-form-field-invalid",o._control.errorState)("mat-form-field-disabled",o._control.disabled)("mat-form-field-autofilled",o._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===o._animationMode)("mat-form-field-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("mat-focused",o._control.focused)("mat-primary","accent"!==o.color&&"warn"!==o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("ng-untouched",o._shouldForward("untouched"))("ng-touched",o._shouldForward("touched"))("ng-pristine",o._shouldForward("pristine"))("ng-dirty",o._shouldForward("dirty"))("ng-valid",o._shouldForward("valid"))("ng-invalid",o._shouldForward("invalid"))("ng-pending",o._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Ye([{provide:th,useExisting:t},{provide:IA,useExisting:t}])],ngContentSelectors:BZ,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(i,o){1&i&&(Ut(LZ),y(0,wZ,1,1,"ng-template",null,0,_r),d(2,"div",1,2),A("click",function(a){return o._control.onContainerClick(a)}),y(4,xZ,1,0,"div",3),d(5,"div",4),y(6,kZ,2,2,"div",5)(7,MZ,3,0,"div",6)(8,TZ,3,0,"div",7),d(9,"div",8),y(10,EZ,1,1,"ng-template",9),Ze(11),l(),y(12,OZ,2,0,"div",10)(13,AZ,2,0,"div",11),l(),y(14,PZ,1,0,"div",12),l(),d(15,"div",13),y(16,RZ,2,1,"div",14)(17,FZ,5,2,"div",15),l()),2&i&&(m(2),et("mdc-text-field--filled",!o._hasOutline())("mdc-text-field--outlined",o._hasOutline())("mdc-text-field--no-label",!o._hasFloatingLabel())("mdc-text-field--disabled",o._control.disabled)("mdc-text-field--invalid",o._control.errorState),m(2),f("ngIf",!o._hasOutline()&&!o._control.disabled),m(2),f("ngIf",o._hasOutline()),m(),f("ngIf",o._hasIconPrefix),m(),f("ngIf",o._hasTextPrefix),m(2),f("ngIf",!o._hasOutline()||o._forceDisplayInfixLabel()),m(2),f("ngIf",o._hasTextSuffix),m(),f("ngIf",o._hasIconSuffix),m(),f("ngIf",!o._hasOutline()),m(),et("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing),f("ngSwitch",o._getDisplayedMessages()),m(),f("ngSwitchCase","error"),m(),f("ngSwitchCase","hint"))},dependencies:[It,kp,xl,Sp,sc,EA,PA,AA],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[UZ.transitionMessages]},changeDetection:0})}return t})(),ih=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,Zp,Mt]})}return t})();const WZ=["addListener","removeListener"],KZ=["addEventListener","removeEventListener"],ZZ=["on","off"];function er(t,n,e,i){if(J(e)&&(i=e,e=void 0),i)return er(t,n,e).pipe(d0(i));const[o,r]=function XZ(t){return J(t.addEventListener)&&J(t.removeEventListener)}(t)?KZ.map(a=>s=>t[a](n,s,e)):function YZ(t){return J(t.addListener)&&J(t.removeListener)}(t)?WZ.map(LA(t,n)):function QZ(t){return J(t.on)&&J(t.off)}(t)?ZZ.map(LA(t,n)):[];if(!o&&n0(t))return Pn(a=>er(a,n,e))(Yn(t));if(!o)throw new TypeError("Invalid event target");return new li(a=>{const s=(...c)=>a.next(1r(s)})}function LA(t,n){return e=>i=>t[e](n,i)}function Pf(t=0,n,e=_G){let i=-1;return null!=n&&(FI(n)?e=n:i=n),new li(o=>{let r=function eY(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let a=0;return e.schedule(function(){o.closed||(o.next(a++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function oC(t,n=Pu){return function JZ(t){return $i((n,e)=>{let i=!1,o=null,r=null,a=!1;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const u=o;o=null,e.next(u)}a&&e.complete()},c=()=>{r=null,a&&e.complete()};n.subscribe(Fi(e,u=>{i=!0,o=u,r||Yn(t(u)).subscribe(r=Fi(e,s,c))},()=>{a=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Pf(t,n))}const BA=Ja({passive:!0});let tY=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return jo;const i=_a(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new qe,a="cdk-text-field-autofilled",s=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,BA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:r,unlisten:()=>{i.removeEventListener("animationstart",s,BA)}}),r}stopMonitoring(e){const i=_a(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),VA=(()=>{class t{get minRows(){return this._minRows}set minRows(e){this._minRows=yi(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=yi(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){e=$e(e),this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,o,r){this._elementRef=e,this._platform=i,this._ngZone=o,this._destroyed=new qe,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=a=>{this._hasFocus="focus"===a.type},this._document=r,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{er(this._getWindow(),"resize").pipe(oC(16),ot(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",o=this._platform.FIREFOX,r=o&&this._hasFocus,a=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";r&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);const s=e.scrollHeight-4;return e.classList.remove(a),r&&(e.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,o=i.value;if(!e&&this._minRows===this._previousMinRows&&o===this._previousValue)return;const r=this._measureScrollHeight(),a=Math.max(r,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=o,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:o}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(dt,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,o){1&i&&A("input",function(){return o._noopInputHandler()})},inputs:{minRows:[ge.None,"cdkAutosizeMinRows","minRows"],maxRows:[ge.None,"cdkAutosizeMaxRows","maxRows"],enabled:[ge.None,"cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),iY=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const nY=new se("MAT_INPUT_VALUE_ACCESSOR"),oY=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let rY=0;const aY=v0(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new qe}});let qi=(()=>{class t extends aY{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RI().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g){super(s,r,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=u,this._formField=g,this._uid="mat-input-"+rY++,this.focused=!1,this.stateChanges=new qe,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(k=>RI().has(k)),this._iOSKeyupListener=k=>{const T=k.target;!T.value&&0===T.selectionStart&&0===T.selectionEnd&&(T.setSelectionRange(1,1),T.setSelectionRange(0,0))};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=c||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&p.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!g,this._isNativeSelect&&(this.controlType=b.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){oY.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(wr,10),_(hs,8),_(wi,8),_(nf),_(nY,10),_(tY),_(We),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,o){1&i&&A("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id)("disabled",o.disabled)("required",o.required),Je("name",o.name||null)("readonly",o.readonly&&!o._isNativeSelect||null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),et("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mdc-text-field__input",o._isInFormField)("mat-mdc-native-select-inline",o._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Ye([{provide:Af,useExisting:t}]),ve,fi]})}return t})(),jA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,ih,ih,iY,Mt]})}return t})();const nh={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=nh;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new de(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=nh;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=nh;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class cY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class sY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=nh.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(nh.cancelAnimationFrame(e),n._scheduled=void 0)}});let rC,dY=1;const Rf={};function zA(t){return t in Rf&&(delete Rf[t],!0)}const uY={setImmediate(t){const n=dY++;return Rf[n]=!0,rC||(rC=Promise.resolve()),rC.then(()=>zA(n)&&t()),n},clearImmediate(t){zA(t)}},{setImmediate:hY,clearImmediate:mY}=uY,Nf={setImmediate(...t){const{delegate:n}=Nf;return(n?.setImmediate||hY)(...t)},clearImmediate(t){const{delegate:n}=Nf;return(n?.clearImmediate||mY)(t)},delegate:void 0},aC=new class fY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class pY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=Nf.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(Nf.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});let oh=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new qe,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new li(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(oC(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ke()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(kt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=_a(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>er(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(ci),X(dt,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rh=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new qe,this._elementScrolled=new li(a=>this.ngZone.runOutsideAngular(()=>er(this.elementRef.nativeElement,"scroll").pipe(ot(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=Iu()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==Iu()?e.left=e.right:1==Iu()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;NI()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==Iu()?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:a&&1==Iu()?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(oh),_(We),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),va=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new qe,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(oC(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(dt,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ms=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),sC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Lu,ms,Lu,ms]})}return t})();class cC{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ll extends cC{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class ya extends cC{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class vY extends cC{constructor(n){super(),this.element=n instanceof Be?n.nativeElement:n}}class Ff{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ll?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof ya?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof vY?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class yY extends Ff{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const s=a.element,c=this._document.createComment("dom-portal");s.parentNode.insertBefore(c,s),this.outletElement.appendChild(s),this._attachedPortal=a,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(s,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||ji.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let CY=(()=>{class t extends ya{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[ve]})}return t})(),Ca=(()=>{class t extends Ff{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ne,this.attachDomPortal=r=>{const a=r.element,s=this._document.createComment("dom-portal");r.setAttachedHost(this),a.parentNode.insertBefore(s,a),this._getRootNode().appendChild(a),this._attachedPortal=r,super.setDisposeFn(()=>{s.parentNode&&s.parentNode.replaceChild(a,s)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[ge.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ve]})}return t})(),cc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const HA=NI();class wY{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=pn(-this._previousScrollPosition.left),n.style.top=pn(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),HA&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),HA&&(i.scrollBehavior=r,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class xY{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(kt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class UA{enable(){}disable(){}attach(){}}function lC(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function $A(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class DY{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();lC(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let SY=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new UA,this.close=a=>new xY(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new wY(this._viewportRuler,this._document),this.reposition=a=>new DY(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(X(oh),X(va),X(We),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Bl{constructor(n){if(this.scrollStrategy=new UA,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class kY{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let GA=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MY=(()=>{class t extends GA{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let a=r.length-1;a>-1;a--)if(r[a]._keydownEvents.observers.length>0){const s=r[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(o)):s.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TY=(()=>{class t extends GA{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=pa(r)},this._clickListener=r=>{const a=pa(r),s="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let u=c.length-1;u>-1;u--){const p=c[u];if(p._outsidePointerEvents.observers.length<1||!p.hasAttached())continue;if(p.overlayElement.contains(a)||p.overlayElement.contains(s))break;const g=p._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>g.next(r)):g.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ci),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lf=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||Yy()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(g),this._backdropTransitionendHandler=g=>{this._disposeBackdrop(g.target)},this._keydownEvents=new qe,this._outsidePointerEvents=new qe,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=pn(this._config.width),n.height=pn(this._config.height),n.minWidth=pn(this._config.minWidth),n.minHeight=pn(this._config.minHeight),n.maxWidth=pn(this._config.maxWidth),n.maxHeight=pn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Kp(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(ot(Ri(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const qA="cdk-overlay-connected-position-bounding-box",IY=/([A-Za-z%]+)$/;class EY{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new qe,this._resizeSubscription=de.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(qA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let a;for(let s of this._preferredPositions){let c=this._getOriginPoint(n,o,s),u=this._getOverlayPoint(c,e,s),p=this._getOverlayFit(u,e,i,s);if(p.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(s,c);this._canFitWithFlexibleDimensions(p,u,i)?r.push({position:s,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,s)}):(!a||a.overlayFit.visibleAreac&&(c=p,s=u)}return this._isPushed=!1,void this._applyPosition(s.position,s.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&lc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(qA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,s=this._isRtl()?n.left:n.right;o="start"==i.originX?a:s}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=KA(e);let{x:a,y:s}=n,c=this._getOffset(o,"x"),u=this._getOffset(o,"y");c&&(a+=c),u&&(s+=u);let b=0-s,w=s+r.height-i.height,k=this._subtractOverflows(r.width,0-a,a+r.width-i.width),T=this._subtractOverflows(r.height,b,w),z=k*T;return{visibleArea:z,isCompletelyWithinViewport:r.width*r.height===z,fitsInViewportVertically:T===r.height,fitsInViewportHorizontally:k==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,a=WA(this._overlayRef.getConfig().minHeight),s=WA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=s&&s<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=KA(e),r=this._viewportRect,a=Math.max(n.x+o.width-r.width,0),s=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),u=Math.max(r.left-i.left-n.x,0);let p=0,g=0;return p=o.width<=r.width?u||-a:n.xk&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-k/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)b=i.width-n.x+this._viewportMargin,p=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)g=n.x,p=i.right-n.x;else{const w=Math.min(i.right-n.x+i.left,n.x),k=this._lastBoundingBoxSize.width;p=2*w,g=n.x-w,p>k&&!this._isInitialRender&&!this._growAfterOpen&&(g=n.x-k/2)}return{top:a,left:g,bottom:s,right:b,width:p,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=pn(i.height),o.top=pn(i.top),o.bottom=pn(i.bottom),o.width=pn(i.width),o.left=pn(i.left),o.right=pn(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=pn(r)),a&&(o.maxWidth=pn(a))}this._lastBoundingBoxSize=i,lc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){lc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){lc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const p=this._viewportRuler.getViewportScrollPosition();lc(i,this._getExactOverlayY(e,n,p)),lc(i,this._getExactOverlayX(e,n,p))}else i.position="static";let s="",c=this._getOffset(e,"x"),u=this._getOffset(e,"y");c&&(s+=`translateX(${c}px) `),u&&(s+=`translateY(${u}px)`),i.transform=s.trim(),a.maxHeight&&(o?i.maxHeight=pn(a.maxHeight):r&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=pn(a.maxWidth):r&&(i.maxWidth="")),lc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=pn(r.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=pn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:$A(n,i),isOriginOutsideView:lC(n,i),isOverlayClipped:$A(e,i),isOverlayOutsideView:lC(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Kp(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Be)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function lc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function WA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(IY);return e&&"px"!==e?null:parseFloat(n)}return t||null}function KA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const ZA="cdk-global-overlay-wrapper";class OY{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(ZA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:a,maxHeight:s}=i,c=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),u=!("100%"!==r&&"100vh"!==r||s&&"100%"!==s&&"100vh"!==s),p=this._xPosition,g=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",k="",T="";c?T="flex-start":"center"===p?(T="center",b?k=g:w=g):b?"left"===p||"end"===p?(T="flex-end",w=g):("right"===p||"start"===p)&&(T="flex-start",k=g):"left"===p||"start"===p?(T="flex-start",w=g):("right"===p||"end"===p)&&(T="flex-end",k=g),n.position=this._cssPosition,n.marginLeft=c?"0":w,n.marginTop=u?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":k,e.justifyContent=T,e.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(ZA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let AY=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new OY}flexibleConnectedTo(e){return new EY(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(X(va),X(dt),X(ci),X(Lf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),PY=0,Qn=(()=>{class t{constructor(e,i,o,r,a,s,c,u,p,g,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=a,this._injector=s,this._ngZone=c,this._document=u,this._directionality=p,this._location=g,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),a=new Bl(e);return a.direction=a.direction||this._directionality.value,new ah(r,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+PY++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Za)),new yY(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(SY),X(Lf),X(Ns),X(AY),X(MY),X(ji),X(We),X(dt),X(fn),X(Ws),X(TY),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const RY=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],YA=new se("cdk-connected-overlay-scroll-strategy");let dC=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),QA=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=$e(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=$e(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=$e(e)}get push(){return this._push}set push(e){this._push=$e(e)}constructor(e,i,o,r,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=de.EMPTY,this._attachSubscription=de.EMPTY,this._detachSubscription=de.EMPTY,this._positionSubscription=de.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Ne,this.positionChange=new Ne,this.attach=new Ne,this.detach=new Ne,this.overlayKeydown=new Ne,this.overlayOutsideClick=new Ne,this._templatePortal=new ya(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=RY);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Bl({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof dC?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function bY(t,n=!1){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{const a=t(r,o++);(a||n)&&i.next(r),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(gi),_(vi),_(YA),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[ge.None,"cdkConnectedOverlayOrigin","origin"],positions:[ge.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[ge.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[ge.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[ge.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[ge.None,"cdkConnectedOverlayWidth","width"],height:[ge.None,"cdkConnectedOverlayHeight","height"],minWidth:[ge.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[ge.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[ge.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[ge.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[ge.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[ge.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[ge.None,"cdkConnectedOverlayOpen","open"],disableClose:[ge.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[ge.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[ge.None,"cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:[ge.None,"cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:[ge.None,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:[ge.None,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:[ge.None,"cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[fi]})}return t})();const FY={provide:YA,deps:[Qn],useFactory:function NY(t){return()=>t.scrollStrategies.reposition()}};let dc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[Qn,FY],imports:[Lu,cc,sC,sC]})}return t})();function Vl(t){return new li(n=>{Yn(t()).subscribe(n)})}const LY=["trigger"],BY=["panel"];function VY(t,n){if(1&t&&(d(0,"span",10),h(1),l()),2&t){const e=C();m(),Pe(e.placeholder)}}function jY(t,n){if(1&t&&(d(0,"span",14),h(1),l()),2&t){const e=C(2);m(),Pe(e.triggerValue)}}function zY(t,n){1&t&&Ze(0,0,["*ngSwitchCase","true"])}function HY(t,n){1&t&&(d(0,"span",11),y(1,jY,2,1,"span",12)(2,zY,1,0,"ng-content",13),l()),2&t&&(f("ngSwitch",!!C().customTrigger),m(2),f("ngSwitchCase",!0))}function UY(t,n){if(1&t){const e=_e();ei(),mr(),d(0,"div",15,16),A("@transformPanel.done",function(o){return ie(e),ne(C()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))}),Ze(2,1),l()}if(2&t){const e=C();Mk("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),f("ngClass",e.panelClass)("@transformPanel","showing"),Je("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $Y=[[["mat-select-trigger"]],"*"],GY=["mat-select-trigger","*"],qY={transformPanelWrap:Lo("transformPanelWrap",[Qi("* => void",Cy("@transformPanel",[yy()],{optional:!0}))]),transformPanel:Lo("transformPanel",[mn("void",Zt({opacity:0,transform:"scale(1, 0.8)"})),Qi("void => showing",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1, 1)"}))),Qi("* => void",Yi("100ms linear",Zt({opacity:0})))])};let XA=0;const JA=new se("mat-select-scroll-strategy"),KY=new se("MAT_SELECT_CONFIG"),ZY={provide:JA,deps:[Qn],useFactory:function WY(t){return()=>t.scrollStrategies.reposition()}},YY=new se("MatSelectTrigger");class QY{constructor(n,e){this.source=n,this.value=e}}const XY=ns(os(Vr(v0(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new qe}}))));let JY=(()=>{class t extends XY{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=$e(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=$e(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=yi(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,r,a,s,c,u,p,g,b,w,k,T){super(a,r,c,u,g),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._parentFormField=p,this._liveAnnouncer=k,this._defaultOptions=T,this._panelOpen=!1,this._compareWith=(z,re)=>z===re,this._uid="mat-select-"+XA++,this._triggerAriaLabelledBy=null,this._destroy=new qe,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+XA++,this._panelDoneAnimatingStream=new qe,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=Vl(()=>{const z=this.options;return z?z.changes.pipe(an(z),gn(()=>Ri(...z.map(re=>re.onSelectionChange)))):this._ngZone.onStable.pipe(Pt(1),gn(()=>this.optionSelectionChanges))}),this.openedChange=new Ne,this._openedStream=this.openedChange.pipe(kt(z=>z),nt(()=>{})),this._closedStream=this.openedChange.pipe(kt(z=>!z),nt(()=>{})),this.selectionChange=new Ne,this.valueChange=new Ne,this._trackedModal=null,this.ngControl&&(this.ngControl.valueAccessor=this),null!=T?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=T.typeaheadDebounceInterval),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new qu(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ru(),ot(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(ot(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(an(null),ot(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,r=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&r&&!An(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const s=this.selected;a.onKeydown(e);const c=this.selected;c&&s!==c&&this._liveAnnouncer.announce(c.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,a=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||An(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const s=this.options.some(c=>!c.disabled&&!c.selected);this.options.forEach(c=>{c.disabled||(s?c.select():c.deselect())})}else{const s=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new hE(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Ri(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(ot(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Ri(...this.options.map(i=>i._stateChanges)).pipe(ot(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}static#e=this.\u0275fac=function(i){return new(i||t)(_(va),_(Lt),_(We),_(nf),_(Be),_(fn,8),_(hs,8),_(wi,8),_(th,8),_(wr,10),oo("tabindex"),_(JA),_(g0),_(KY,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(LY,5),vt(BY,5),vt(QA,5)),2&i){let r;Oe(r=Ae())&&(o.trigger=r.first),Oe(r=Ae())&&(o.panel=r.first),Oe(r=Ae())&&(o._overlayDir=r.first)}},inputs:{userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[ve,fi]})}return t})(),Xn=(()=>{class t extends JY{constructor(){super(...arguments),this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(ot(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}open(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=EE(e,this.options,this.optionGroups),a=i._getHostElement();o.scrollTop=0===e&&1===r?0:OE(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new QY(this,e)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof dC?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,YY,5),gt(r,Tn,5),gt(r,af,5)),2&i){let a;Oe(a=Ae())&&(o.customTrigger=a.first),Oe(a=Ae())&&(o.options=a),Oe(a=Ae())&&(o.optionGroups=a)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Je("id",o.id)("tabindex",o.tabIndex)("aria-controls",o.panelOpen?o.id+"-panel":null)("aria-expanded",o.panelOpen)("aria-label",o.ariaLabel||null)("aria-required",o.required.toString())("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState)("aria-activedescendant",o._getAriaActiveDescendant()),et("mat-mdc-select-disabled",o.disabled)("mat-mdc-select-invalid",o.errorState)("mat-mdc-select-required",o.required)("mat-mdc-select-empty",o.empty)("mat-mdc-select-multiple",o.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",panelWidth:"panelWidth",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[Ye([{provide:Af,useExisting:t},{provide:rf,useExisting:t}]),ve],ngContentSelectors:GY,decls:11,vars:10,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(i,o){if(1&i&&(Ut($Y),d(0,"div",0,1),A("click",function(){return o.toggle()}),d(3,"div",2),y(4,VY,2,1,"span",3)(5,HY,3,2,"span",4),l(),d(6,"div",5)(7,"div",6),ei(),d(8,"svg",7),D(9,"path",8),l()()()(),y(10,UY,3,9,"ng-template",9),A("backdropClick",function(){return o.close()})("attach",function(){return o._onAttached()})("detach",function(){return o.close()})),2&i){const r=Ft(1);m(3),f("ngSwitch",o.empty),Je("id",o._valueId),m(),f("ngSwitchCase",!0),m(),f("ngSwitchCase",!1),m(5),f("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayOpen",o.panelOpen)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)}},dependencies:[vr,xl,Sp,y2,QA,dC],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[qY.transformPanel]},changeDetection:0})}return t})(),uC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ZY],imports:[Vn,dc,sf,Mt,ms,ih,sf,Mt]})}return t})();function Bf(t){return nt(()=>t)}function eP(t,n){return n?e=>Nu(n.pipe(Pt(1),function eQ(){return $i((t,n)=>{t.subscribe(Fi(n,oi))})}()),e.pipe(eP(t))):Pn((e,i)=>Yn(t(e,i)).pipe(Pt(1),Bf(e)))}function hC(t,n=Pu){const e=Pf(t,n);return eP(()=>e)}const tQ=["mat-menu-item",""];function iQ(t,n){1&t&&(ei(),d(0,"svg",3),D(1,"polygon",4),l())}const nQ=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oQ=["mat-icon, [matMenuItemIcon]","*"];function rQ(t,n){if(1&t){const e=_e();d(0,"div",0),A("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))})("click",function(){return ie(e),ne(C().closed.emit("click"))})("@transformMenu.start",function(o){return ie(e),ne(C()._onAnimationStart(o))})("@transformMenu.done",function(o){return ie(e),ne(C()._onAnimationDone(o))}),d(1,"div",1),Ze(2),l()()}if(2&t){const e=C();f("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Je("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const aQ=["*"],mC=new se("MAT_MENU_PANEL"),sQ=ns(Vr(class{}));let wa=(()=>{class t extends sQ{constructor(e,i,o,r,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=r,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new qe,this._focused=new qe,this._highlighted=!1,this._triggersSubmenu=!1,r?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1)"}))),Qi("* => void",Yi("100ms 25ms linear",Zt({opacity:0})))]),fadeInItems:Lo("fadeInItems",[mn("showing",Zt({opacity:1})),Qi("void => *",[Zt({opacity:0}),Yi("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lQ=0;const tP=new se("mat-menu-default-options",{providedIn:"root",factory:function dQ(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let sh=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=$e(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,r){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=r,this._directDescendantItems=new oa,this._classList={},this._panelAnimationState="void",this._animationDone=new qe,this.closed=new Ne,this.close=this.closed,this.panelId="mat-menu-panel-"+lQ++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Jp(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(e=>Ri(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),r=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[r]&&!o[r].disabled?i.setActiveItem(r):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(i=>Ri(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:An(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,r=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!r||r===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(an(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275dir=Q({type:t,contentQueries:function(i,o,r){if(1&i&&(gt(r,cQ,5),gt(r,wa,5),gt(r,wa,4)),2&i){let a;Oe(a=Ae())&&(o.lazyContent=a.first),Oe(a=Ae())&&(o._allItems=a),Oe(a=Ae())&&(o.items=a)}},viewQuery:function(i,o){if(1&i&&vt(gi,5),2&i){let r;Oe(r=Ae())&&(o.templateRef=r.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:[ge.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}})}return t})(),jl=(()=>{class t extends sh{constructor(e,i,o,r){super(e,i,o,r),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration",""],hostVars:3,hostBindings:function(i,o){2&i&&Je("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Ye([{provide:mC,useExisting:t}]),ve],ngContentSelectors:aQ,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Ut(),y(0,rQ,3,6,"ng-template"))},dependencies:[vr],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Vf.transformMenu,Vf.fadeInItems]},changeDetection:0})}return t})();const iP=new se("mat-menu-scroll-strategy"),hQ={provide:iP,deps:[Qn],useFactory:function uQ(t){return()=>t.scrollStrategies.reposition()}},nP=Ja({passive:!0});let mQ=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,r,a,s,c,u,p){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=s,this._dir=c,this._focusMonitor=u,this._ngZone=p,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=de.EMPTY,this._hoverSubscription=de.EMPTY,this._menuCloseSubscription=de.EMPTY,this._changeDetectorRef=xe(Lt),this._handleTouchStart=g=>{f0(g)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ne,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ne,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=a instanceof sh?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,nP)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,nP),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),r=o.positionStrategy;this._setPosition(e,r),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof sh&&(e._startAnimation(),e._directDescendantItems.changes.pipe(ot(e.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof sh?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(kt(o=>"void"===o.toState),Pt(1),ot(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Bl({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const r="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(r,a)):e.setPositionClasses(r,a)})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[a,s]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[c,u]=[a,s],[p,g]=[o,r],b=0;if(this.triggersSubmenu()){if(g=o="before"===e.xPosition?"start":"end",r=p="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(c="top"===a?"bottom":"top",u="top"===s?"bottom":"top");i.withPositions([{originX:o,originY:c,overlayX:p,overlayY:a,offsetY:b},{originX:r,originY:c,overlayX:g,overlayY:a,offsetY:b},{originX:o,originY:u,overlayX:p,overlayY:s,offsetY:-b},{originX:r,originY:u,overlayX:g,overlayY:s,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Ri(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ke(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(kt(a=>a!==this._menuItemInstance),kt(()=>this._menuOpen)):Ke(),i)}_handleMousedown(e){p0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(kt(e=>e===this._menuItemInstance&&!e.disabled),hC(0,aC)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof sh&&this.menu._isAnimating?this.menu._animationDone.pipe(Pt(1),hC(0,aC),ot(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ya(e.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(vi),_(iP),_(mC,8),_(wa,10),_(fn,8),_(zo),_(We))};static#t=this.\u0275dir=Q({type:t,hostVars:3,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("mousedown",function(a){return o._handleMousedown(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&Je("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[ge.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[ge.None,"matMenuTriggerFor","menu"],menuData:[ge.None,"matMenuTriggerData","menuData"],restoreFocus:[ge.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}})}return t})(),zl=(()=>{class t extends mQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[ve]})}return t})(),oP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[hQ],imports:[Vn,as,Mt,dc,ms,Mt]})}return t})();const pQ=[[["caption"]],[["colgroup"],["col"]]],fQ=["caption","colgroup, col"];function pC(t){return class extends t{get sticky(){return this._sticky}set sticky(n){const e=this._sticky;this._sticky=$e(n),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const n=this._hasStickyChanged;return this._hasStickyChanged=!1,n}resetStickyChanged(){this._hasStickyChanged=!1}constructor(...n){super(...n),this._sticky=!1,this._hasStickyChanged=!1}}}const Hl=new se("CDK_TABLE");let Ul=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),$l=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),jf=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})();class vQ{}const yQ=pC(vQ);let xa=(()=>{class t extends yQ{get name(){return this._name}set name(e){this._setNameInput(e)}get stickyEnd(){return this._stickyEnd}set stickyEnd(e){const i=this._stickyEnd;this._stickyEnd=$e(e),this._hasStickyChanged=i!==this._stickyEnd}constructor(e){super(),this._table=e,this._stickyEnd=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(e){e&&(this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Ul,5),gt(r,$l,5),gt(r,jf,5)),2&i){let a;Oe(a=Ae())&&(o.cell=a.first),Oe(a=Ae())&&(o.headerCell=a.first),Oe(a=Ae())&&(o.footerCell=a.first)}},inputs:{sticky:"sticky",name:[ge.None,"cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[Ye([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})();class fC{constructor(n,e){e.nativeElement.classList.add(...n._columnCssClassName)}}let gC=(()=>{class t extends fC{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[ve]})}return t})(),_C=(()=>{class t extends fC{constructor(e,i){if(super(e,i),1===e._table?._elementRef.nativeElement.nodeType){const o=e._table._elementRef.nativeElement.getAttribute("role");i.nativeElement.setAttribute("role","grid"===o||"treegrid"===o?"gridcell":"cell")}}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[ve]})}return t})();class aP{constructor(){this.tasks=[],this.endTasks=[]}}const bC=new se("_COALESCED_STYLE_SCHEDULER");let sP=(()=>{class t{constructor(e){this._ngZone=e,this._currentSchedule=null,this._destroyed=new qe}schedule(e){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(e)}scheduleEnd(e){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(e)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new aP,this._getScheduleObservable().pipe(ot(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const e=this._currentSchedule;this._currentSchedule=new aP;for(const i of e.tasks)i();for(const i of e.endTasks)i()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?Xi(Promise.resolve(void 0)):this._ngZone.onStable.pipe(Pt(1))}static#e=this.\u0275fac=function(i){return new(i||t)(X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),vC=(()=>{class t{constructor(e,i){this.template=e,this._differs=i}ngOnChanges(e){if(!this._columnsDiffer){const i=e.columns&&e.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(e){return this instanceof ch?e.headerCell.template:this instanceof lh?e.footerCell.template:e.cell.template}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(pr))};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();class CQ extends vC{}const wQ=pC(CQ);let ch=(()=>{class t extends wQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(pr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[ge.None,"cdkHeaderRowDef","columns"],sticky:[ge.None,"cdkHeaderRowDefSticky","sticky"]},features:[ve,fi]})}return t})();class xQ extends vC{}const DQ=pC(xQ);let lh=(()=>{class t extends DQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(pr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[ge.None,"cdkFooterRowDef","columns"],sticky:[ge.None,"cdkFooterRowDefSticky","sticky"]},features:[ve,fi]})}return t})(),zf=(()=>{class t extends vC{constructor(e,i,o){super(e,i),this._table=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(pr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[ge.None,"cdkRowDefColumns","columns"],when:[ge.None,"cdkRowDefWhen","when"]},features:[ve]})}return t})(),Da=(()=>{class t{static#e=this.mostRecentCellOutlet=null;constructor(e){this._viewContainer=e,t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static#t=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#i=this.\u0275dir=Q({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),yC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),wC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),Hf=(()=>{class t{constructor(e){this.templateRef=e,this._contentClassName="cdk-no-data-row"}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})();const cP=["top","bottom","left","right"];class SQ{constructor(n,e,i,o,r=!0,a=!0,s){this._isNativeHtmlTable=n,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=r,this._needsPositionStickyOnElement=a,this._positionListener=s,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(n,e){const i=[];for(const o of n)if(o.nodeType===o.ELEMENT_NODE){i.push(o);for(let r=0;r{for(const o of i)this._removeStickyStyle(o,e)})}updateStickyColumns(n,e,i,o=!0){if(!n.length||!this._isBrowser||!e.some(b=>b)&&!i.some(b=>b))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const r=n[0],a=r.children.length,s=this._getCellWidths(r,o),c=this._getStickyStartColumnPositions(s,e),u=this._getStickyEndColumnPositions(s,i),p=e.lastIndexOf(!0),g=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const b="rtl"===this.direction,w=b?"right":"left",k=b?"left":"right";for(const T of n)for(let z=0;ze[z]?T:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===g?[]:s.slice(g).map((T,z)=>i[z+g]?T:null).reverse()}))})}stickRows(n,e,i){if(!this._isBrowser)return;const o="bottom"===i?n.slice().reverse():n,r="bottom"===i?e.slice().reverse():e,a=[],s=[],c=[];for(let p=0,g=0;p{for(let p=0;p{e.some(o=>!o)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(n,e){for(const o of e)n.style[o]="",n.classList.remove(this._borderCellCss[o]);cP.some(o=>-1===e.indexOf(o)&&n.style[o])?n.style.zIndex=this._getCalculatedZIndex(n):(n.style.zIndex="",this._needsPositionStickyOnElement&&(n.style.position=""),n.classList.remove(this._stickCellCss))}_addStickyStyle(n,e,i,o){n.classList.add(this._stickCellCss),o&&n.classList.add(this._borderCellCss[e]),n.style[e]=`${i}px`,n.style.zIndex=this._getCalculatedZIndex(n),this._needsPositionStickyOnElement&&(n.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(n){const e={top:100,bottom:10,left:1,right:1};let i=0;for(const o of cP)n.style[o]&&(i+=e[o]);return i?`${i}`:""}_getCellWidths(n,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],o=n.children;for(let r=0;r0;r--)e[r]&&(i[r]=o,o+=n[r]);return i}}const xC=new se("CDK_SPL");let Uf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","rowOutlet",""]]})}return t})(),$f=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),Gf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),qf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})(),Wf=(()=>{class t{get trackBy(){return this._trackByFn}set trackBy(e){this._trackByFn=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(e){this._multiTemplateDataRows=$e(e),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(e){this._fixedLayout=$e(e),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._differs=e,this._changeDetectorRef=i,this._elementRef=o,this._dir=a,this._platform=c,this._viewRepeater=u,this._coalescedStyleScheduler=p,this._viewportRuler=g,this._stickyPositioningListener=b,this._ngZone=w,this._onDestroy=new qe,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new Ne,this.viewChange=new mt({start:0,end:Number.MAX_VALUE}),r||this._elementRef.nativeElement.setAttribute("role","table"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((e,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(ot(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(e=>{e.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),yf(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const e=this._dataDiffer.diff(this._renderRows);if(!e)return this._updateNoDataRow(),void this.contentChanged.next();const i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(e,i,(o,r,a)=>this._getEmbeddedViewArgs(o.item,a),o=>o.item.data,o=>{1===o.operation&&o.context&&this._renderCellTemplateForItem(o.record.item.rowDef,o.context)}),this._updateRowIndexContext(),e.forEachIdentityChange(o=>{i.get(o.currentIndex).context.$implicit=o.item.data}),this._updateNoDataRow(),this._ngZone&&We.isInAngularZone()?this._ngZone.onStable.pipe(Pt(1),ot(this._onDestroy)).subscribe(()=>{this.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(e){this._customColumnDefs.add(e)}removeColumnDef(e){this._customColumnDefs.delete(e)}addRowDef(e){this._customRowDefs.add(e)}removeRowDef(e){this._customRowDefs.delete(e)}addHeaderRowDef(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}removeHeaderRowDef(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}addFooterRowDef(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}removeFooterRowDef(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}setNoDataRow(e){this._customNoDataRow=e}updateStickyHeaderRowStyles(){const e=this._getRenderedRows(this._headerRowOutlet),o=this._elementRef.nativeElement.querySelector("thead");o&&(o.style.display=e.length?"":"none");const r=this._headerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,r,"top"),this._headerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyFooterRowStyles(){const e=this._getRenderedRows(this._footerRowOutlet),o=this._elementRef.nativeElement.querySelector("tfoot");o&&(o.style.display=e.length?"":"none");const r=this._footerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,r,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,r),this._footerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyColumnStyles(){const e=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),o=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...e,...i,...o],["left","right"]),this._stickyColumnStylesNeedReset=!1),e.forEach((r,a)=>{this._addStickyColumnStyles([r],this._headerRowDefs[a])}),this._rowDefs.forEach(r=>{const a=[];for(let s=0;s{this._addStickyColumnStyles([r],this._footerRowDefs[a])}),Array.from(this._columnDefsByName.values()).forEach(r=>r.resetStickyChanged())}_getAllRenderRows(){const e=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let o=0;o{const s=o&&o.has(a)?o.get(a):[];if(s.length){const c=s.shift();return c.dataIndex=i,c}return{data:e,rowDef:a,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Kf(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=Kf(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Kf(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Kf(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const e=this._rowDefs.filter(i=>!i.when);this._defaultRowDef=e[0]}_renderUpdatedColumns(){const e=(a,s)=>a||!!s.getColumnsDiff(),i=this._rowDefs.reduce(e,!1);i&&this._forceRenderDataRows();const o=this._headerRowDefs.reduce(e,!1);o&&this._forceRenderHeaderRows();const r=this._footerRowDefs.reduce(e,!1);return r&&this._forceRenderFooterRows(),i||o||r}_switchDataSource(e){this._data=[],yf(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=e}_observeRenderChanges(){if(!this.dataSource)return;let e;yf(this.dataSource)?e=this.dataSource.connect(this):Pl(this.dataSource)?e=this.dataSource:Array.isArray(this.dataSource)&&(e=Ke(this.dataSource)),this._renderChangeSubscription=e.pipe(ot(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((e,i)=>this._renderRow(this._headerRowOutlet,e,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((e,i)=>this._renderRow(this._footerRowOutlet,e,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(e,i){const o=Array.from(i.columns||[]).map(s=>this._columnDefsByName.get(s)),r=o.map(s=>s.sticky),a=o.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(e,r,a,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(e){const i=[];for(let o=0;o!r.when||r.when(i,e));else{let r=this._rowDefs.find(a=>a.when&&a.when(i,e))||this._defaultRowDef;r&&o.push(r)}return o}_getEmbeddedViewArgs(e,i){return{templateRef:e.rowDef.template,context:{$implicit:e.data},index:i}}_renderRow(e,i,o,r={}){const a=e.viewContainer.createEmbeddedView(i.template,r,o);return this._renderCellTemplateForItem(i,r),a}_renderCellTemplateForItem(e,i){for(let o of this._getCellTemplates(e))Da.mostRecentCellOutlet&&Da.mostRecentCellOutlet._viewContainer.createEmbeddedView(o,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const e=this._rowOutlet.viewContainer;for(let i=0,o=e.length;i{const o=this._columnDefsByName.get(i);return e.extractCellTemplate(o)}):[]}_applyNativeTableSections(){const e=this._document.createDocumentFragment(),i=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const o of i){const r=this._document.createElement(o.tag);r.setAttribute("role","rowgroup");for(const a of o.outlets)r.appendChild(a.elementRef.nativeElement);e.appendChild(r)}this._elementRef.nativeElement.appendChild(e)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const e=(i,o)=>i||o.hasStickyChanged();this._headerRowDefs.reduce(e,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(e,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(e,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new SQ(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:Ke()).pipe(ot(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(e){return e.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){const e=this._customNoDataRow||this._noDataRow;if(!e)return;const i=0===this._rowOutlet.viewContainer.length;if(i===this._isShowingNoDataRow)return;const o=this._noDataRowOutlet.viewContainer;if(i){const r=o.createEmbeddedView(e.templateRef),a=r.rootNodes[0];1===r.rootNodes.length&&a?.nodeType===this._document.ELEMENT_NODE&&(a.setAttribute("role","row"),a.classList.add(e._contentClassName))}else o.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(pr),_(Lt),_(Be),oo("role"),_(fn,8),_(dt),_(ci),_(Wu),_(bC),_(va),_(xC,12),_(We,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Hf,5),gt(r,xa,5),gt(r,zf,5),gt(r,ch,5),gt(r,lh,5)),2&i){let a;Oe(a=Ae())&&(o._noDataRow=a.first),Oe(a=Ae())&&(o._contentColumnDefs=a),Oe(a=Ae())&&(o._contentRowDefs=a),Oe(a=Ae())&&(o._contentHeaderRowDefs=a),Oe(a=Ae())&&(o._contentFooterRowDefs=a)}},viewQuery:function(i,o){if(1&i&&(vt(Uf,7),vt($f,7),vt(Gf,7),vt(qf,7)),2&i){let r;Oe(r=Ae())&&(o._rowOutlet=r.first),Oe(r=Ae())&&(o._headerRowOutlet=r.first),Oe(r=Ae())&&(o._footerRowOutlet=r.first),Oe(r=Ae())&&(o._noDataRowOutlet=r.first)}},hostAttrs:["ngSkipHydration","",1,"cdk-table"],hostVars:2,hostBindings:function(i,o){2&i&&et("cdk-table-fixed-layout",o.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[Ye([{provide:Hl,useExisting:t},{provide:Wu,useClass:xO},{provide:bC,useClass:sP},{provide:xC,useValue:null}])],ngContentSelectors:fQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(pQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function Kf(t,n){return t.concat(Array.from(n))}let MQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[sC]})}return t})();const TQ=[[["caption"]],[["colgroup"],["col"]]],IQ=["caption","colgroup, col"];let ps=(()=>{class t extends Wf{constructor(){super(...arguments),this.stickyCssClass="mat-mdc-table-sticky",this.needsPositionStickyOnElement=!1}ngOnInit(){super.ngOnInit(),this._isNativeHtmlTable&&this._elementRef.nativeElement.querySelector("tbody").classList.add("mdc-data-table__content")}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-table-fixed-layout",o.fixedLayout)},exportAs:["matTable"],features:[Ye([{provide:Wf,useExisting:t},{provide:Hl,useExisting:t},{provide:bC,useClass:sP},{provide:Wu,useClass:xO},{provide:xC,useValue:null}]),ve],ngContentSelectors:IQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(TQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),Sa=(()=>{class t extends Ul{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matCellDef",""]],features:[Ye([{provide:Ul,useExisting:t}]),ve]})}return t})(),ka=(()=>{class t extends $l{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderCellDef",""]],features:[Ye([{provide:$l,useExisting:t}]),ve]})}return t})(),Ma=(()=>{class t extends xa{get name(){return this._name}set name(e){this._setNameInput(e)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:[ge.None,"matColumnDef","name"]},features:[Ye([{provide:xa,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})(),Ta=(()=>{class t extends gC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[ve]})}return t})(),Ia=(()=>{class t extends _C{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[ve]})}return t})(),fs=(()=>{class t extends ch{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[ge.None,"matHeaderRowDef","columns"],sticky:[ge.None,"matHeaderRowDefSticky","sticky"]},features:[Ye([{provide:ch,useExisting:t}]),ve]})}return t})(),gs=(()=>{class t extends zf{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[ge.None,"matRowDefColumns","columns"],when:[ge.None,"matRowDefWhen","when"]},features:[Ye([{provide:zf,useExisting:t}]),ve]})}return t})(),_s=(()=>{class t extends yC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[Ye([{provide:yC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),bs=(()=>{class t extends wC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[Ye([{provide:wC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),dP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,MQ,Mt]})}return t})();class BQ extends vf{get data(){return this._data.value}set data(n){n=Array.isArray(n)?n:[],this._data.next(n),this._renderChangesSubscription||this._filterData(n)}get filter(){return this._filter.value}set filter(n){this._filter.next(n),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(n){this._sort=n,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(n){this._paginator=n,this._updateChangeSubscription()}constructor(n=[]){super(),this._renderData=new mt([]),this._filter=new mt(""),this._internalPageChanges=new qe,this._renderChangesSubscription=null,this.sortingDataAccessor=(e,i)=>{const o=e[i];if(eE(o)){const r=Number(o);return r<9007199254740991?r:o}return o},this.sortData=(e,i)=>{const o=i.active,r=i.direction;return o&&""!=r?e.sort((a,s)=>{let c=this.sortingDataAccessor(a,o),u=this.sortingDataAccessor(s,o);const p=typeof c,g=typeof u;p!==g&&("number"===p&&(c+=""),"number"===g&&(u+=""));let b=0;return null!=c&&null!=u?c>u?b=1:c{const o=Object.keys(e).reduce((a,s)=>a+e[s]+"\u25ec","").toLowerCase(),r=i.trim().toLowerCase();return-1!=o.indexOf(r)},this._data=new mt(n),this._updateChangeSubscription()}_updateChangeSubscription(){const n=this._sort?Ri(this._sort.sortChange,this._sort.initialized):Ke(null),e=this._paginator?Ri(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ke(null),o=Xs([this._data,this._filter]).pipe(nt(([s])=>this._filterData(s))),r=Xs([o,n]).pipe(nt(([s])=>this._orderData(s))),a=Xs([r,e]).pipe(nt(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=a.subscribe(s=>this._renderData.next(s))}_filterData(n){return this.filteredData=null==this.filter||""===this.filter?n:n.filter(e=>this.filterPredicate(e,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(n){return this.sort?this.sortData(n.slice(),this.sort):n}_pageData(n){if(!this.paginator)return n;const e=this.paginator.pageIndex*this.paginator.pageSize;return n.slice(e,e+this.paginator.pageSize)}_updatePaginator(n){Promise.resolve().then(()=>{const e=this.paginator;if(e&&(e.length=n,e.pageIndex>0)){const i=Math.ceil(e.length/e.pageSize)-1||0,o=Math.min(e.pageIndex,i);o!==e.pageIndex&&(e.pageIndex=o,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}}class uP extends BQ{}const hP=new se("CdkAccordion");let VQ=0,jQ=(()=>{class t{get expanded(){return this._expanded}set expanded(e){e=$e(e),this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e)}constructor(e,i,o){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=o,this._openCloseAllSubscription=de.EMPTY,this.closed=new Ne,this.opened=new Ne,this.destroyed=new Ne,this.expandedChange=new Ne,this.id="cdk-accordion-child-"+VQ++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=o.listen((r,a)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===a&&this.id!==r&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(hP,12),_(Lt),_(N0))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[Ye([{provide:hP,useValue:void 0}])]})}return t})(),zQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const HQ=["body"];function UQ(t,n){}const $Q=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],GQ=["mat-expansion-panel-header","*","mat-action-row"];function qQ(t,n){1&t&&D(0,"span",2),2&t&&f("@indicatorRotate",C()._getExpandedState())}const WQ=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],KQ=["mat-panel-title","mat-panel-description","*"],mP=new se("MAT_ACCORDION"),pP="225ms cubic-bezier(0.4,0.0,0.2,1)",fP={indicatorRotate:Lo("indicatorRotate",[mn("collapsed, void",Zt({transform:"rotate(0deg)"})),mn("expanded",Zt({transform:"rotate(180deg)"})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))]),bodyExpansion:Lo("bodyExpansion",[mn("collapsed, void",Zt({height:"0px",visibility:"hidden"})),mn("expanded",Zt({height:"*",visibility:""})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))])},gP=new se("MAT_EXPANSION_PANEL");let ZQ=(()=>{class t{constructor(e,i){this._template=e,this._expansionPanel=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(gP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),YQ=0;const _P=new se("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let DC=(()=>{class t extends jQ{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=$e(e)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,o,r,a,s,c){super(e,i,o),this._viewContainerRef=r,this._animationMode=s,this._hideToggle=!1,this.afterExpand=new Ne,this.afterCollapse=new Ne,this._inputChanges=new qe,this._headerId="mat-expansion-panel-header-"+YQ++,this._bodyAnimationDone=new qe,this.accordion=e,this._document=a,this._bodyAnimationDone.pipe(Ru((u,p)=>u.fromState===p.fromState&&u.toState===p.toState)).subscribe(u=>{"void"!==u.fromState&&("expanded"===u.toState?this.afterExpand.emit():"collapsed"===u.toState&&this.afterCollapse.emit())}),c&&(this.hideToggle=c.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(an(null),kt(()=>this.expanded&&!this._portal),Pt(1)).subscribe(()=>{this._portal=new ya(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(mP,12),_(Lt),_(N0),_(vi),_(dt),_(ui,8),_(_P,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,o,r){if(1&i&>(r,ZQ,5),2&i){let a;Oe(a=Ae())&&(o._lazyContent=a.first)}},viewQuery:function(i,o){if(1&i&&vt(HQ,5),2&i){let r;Oe(r=Ae())&&(o._body=r.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,o){2&i&&et("mat-expanded",o.expanded)("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[Ye([{provide:mP,useValue:void 0},{provide:gP,useExisting:t}]),ve,fi],ngContentSelectors:GQ,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,o){1&i&&(Ut($Q),Ze(0),d(1,"div",0,1),A("@bodyExpansion.done",function(a){return o._bodyAnimationDone.next(a)}),d(3,"div",2),Ze(4,1),y(5,UQ,0,0,"ng-template",3),l(),Ze(6,2),l()),2&i&&(m(),f("@bodyExpansion",o._getExpandedState())("id",o.id),Je("aria-labelledby",o._headerId),m(4),f("cdkPortalOutlet",o._portal))},dependencies:[Ca],styles:['.mat-expansion-panel{--mat-expansion-container-shape:4px;box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[fP.bodyExpansion]},changeDetection:0})}return t})();class QQ{}const XQ=os(QQ);let bP=(()=>{class t extends XQ{constructor(e,i,o,r,a,s,c){super(),this.panel=e,this._element=i,this._focusMonitor=o,this._changeDetectorRef=r,this._animationMode=s,this._parentChangeSubscription=de.EMPTY;const u=e.accordion?e.accordion._stateChanges.pipe(kt(p=>!(!p.hideToggle&&!p.togglePosition))):jo;this.tabIndex=parseInt(c||"")||0,this._parentChangeSubscription=Ri(e.opened,e.closed,u,e._inputChanges.pipe(kt(p=>!!(p.hideToggle||p.disabled||p.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(kt(()=>e._containsFocus())).subscribe(()=>o.focusVia(i,"program")),a&&(this.expandedHeight=a.expandedHeight,this.collapsedHeight=a.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:An(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static#e=this.\u0275fac=function(i){return new(i||t)(_(DC,1),_(Be),_(zo),_(Lt),_(_P,8),_(ui,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,o){1&i&&A("click",function(){return o._toggle()})("keydown",function(a){return o._keydown(a)}),2&i&&(Je("id",o.panel._headerId)("tabindex",o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),Sn("height",o._getHeaderHeight()),et("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after","after"===o._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===o._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===o._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[ve],ngContentSelectors:KQ,decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(i,o){1&i&&(Ut(WQ),d(0,"span",0),Ze(1),Ze(2,1),Ze(3,2),l(),y(4,qQ,1,1,"span",1)),2&i&&(et("mat-content-hide-toggle",!o._showToggle()),m(4),f("ngIf",o._showToggle()))},dependencies:[It],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[fP.indicatorRotate]},changeDetection:0})}return t})(),JQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})(),vP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,zQ,cc]})}return t})();function eX(t,n){1&t&&(d(0,"span",7),Ze(1,1),l())}function tX(t,n){1&t&&(d(0,"span",8),Ze(1,2),l())}const yP=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],CP=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function oX(t,n){1&t&&(pe(0),D(1,"span",8),fe())}function rX(t,n){1&t&&(d(0,"span",9),Ze(1),l())}function aX(t,n){1&t&&(pe(0),Ze(1,1),fe())}function sX(t,n){1&t&&Ze(0,2,["*ngIf","contentEditInput; else defaultMatChipEditInput"])}function cX(t,n){1&t&&D(0,"span",12)}function lX(t,n){if(1&t&&(pe(0),y(1,sX,1,0,"ng-content",10)(2,cX,1,0,"ng-template",null,11,_r),fe()),2&t){const e=Ft(3),i=C();m(),f("ngIf",i.contentEditInput)("ngIfElse",e)}}function dX(t,n){1&t&&(d(0,"span",13),Ze(1,3),l())}const uX=[[["mat-chip-avatar"],["","matChipAvatar",""]],"*",[["","matChipEditInput",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],hX=["mat-chip-avatar, [matChipAvatar]","*","[matChipEditInput]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"],SC=["*"],Zf=new se("mat-chips-default-options"),kC=new se("MatChipAvatar"),MC=new se("MatChipTrailingIcon"),TC=new se("MatChipRemove"),Yf=new se("MatChip");class mX{}const pX=os(mX,-1);let Gl=(()=>{class t extends pX{get disabled(){return this._disabled||this._parentChip.disabled}set disabled(e){this._disabled=$e(e)}_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(e,i){super(),this._elementRef=e,this._parentChip=i,this.isInteractive=!0,this._isPrimary=!0,this._disabled=!1,this._allowFocusWhenDisabled=!1,"BUTTON"===e.nativeElement.nodeName&&e.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(e){!this.disabled&&this.isInteractive&&this._isPrimary&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Yf))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(Je("tabindex",o._getTabindex())("disabled",o._getDisabledAttribute())("aria-disabled",o.disabled),et("mdc-evolution-chip__action--primary",o._isPrimary)("mdc-evolution-chip__action--presentational",!o.isInteractive)("mdc-evolution-chip__action--trailing",!o._isPrimary))},inputs:{disabled:"disabled",tabIndex:"tabIndex",isInteractive:"isInteractive",_allowFocusWhenDisabled:"_allowFocusWhenDisabled"},features:[ve]})}return t})(),DP=(()=>{class t extends Gl{constructor(){super(...arguments),this._isPrimary=!1}_handleClick(e){this.disabled||(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-mdc-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(i,o){2&i&&Je("aria-hidden",null)},features:[Ye([{provide:TC,useExisting:t}]),ve]})}return t})(),_X=0;const bX=os(is(ns(Vr(class{constructor(t){this._elementRef=t}})),"primary"),-1);let uc=(()=>{class t extends bX{_hasFocus(){return this._hasFocusInternal}get value(){return void 0!==this._value?this._value:this._textElement.textContent.trim()}set value(e){this._value=e}get removable(){return this._removable}set removable(e){this._removable=$e(e)}get highlighted(){return this._highlighted}set highlighted(e){this._highlighted=$e(e)}get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetectorRef=e,this._ngZone=o,this._focusMonitor=r,this._globalRippleOptions=c,this._onFocus=new qe,this._onBlur=new qe,this.role=null,this._hasFocusInternal=!1,this.id="mat-mdc-chip-"+_X++,this.ariaLabel=null,this.ariaDescription=null,this._ariaDescriptionId=`${this.id}-aria-description`,this._removable=!0,this._highlighted=!1,this.removed=new Ne,this.destroyed=new Ne,this.basicChipAttrName="mat-basic-chip",this._rippleLoader=xe(NE),this._document=a,this._animationsDisabled="NoopAnimations"===s,null!=u&&(this.tabIndex=parseInt(u)??this.defaultTabIndex),this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){const e=this._elementRef.nativeElement;this._isBasicChip=e.hasAttribute(this.basicChipAttrName)||e.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Ri(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!(!this.trailingIcon&&!this.removeIcon)}_handleKeydown(e){(8===e.keyCode||46===e.keyCode)&&(e.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(e){return this._getActions().find(i=>{const o=i._elementRef.nativeElement;return o===e||o.contains(e)})}_getActions(){const e=[];return this.primaryAction&&e.push(this.primaryAction),this.removeIcon&&e.push(this.removeIcon),this.trailingIcon&&e.push(this.trailingIcon),e}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{const i=null!==e;i!==this._hasFocusInternal&&(this._hasFocusInternal=i,i?this._onFocus.next({chip:this}):this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>this._ngZone.run(()=>this._onBlur.next({chip:this}))))})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(dt),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,kC,5),gt(r,MC,5),gt(r,TC,5),gt(r,kC,5),gt(r,MC,5),gt(r,TC,5)),2&i){let a;Oe(a=Ae())&&(o.leadingIcon=a.first),Oe(a=Ae())&&(o.trailingIcon=a.first),Oe(a=Ae())&&(o.removeIcon=a.first),Oe(a=Ae())&&(o._allLeadingIcons=a),Oe(a=Ae())&&(o._allTrailingIcons=a),Oe(a=Ae())&&(o._allRemoveIcons=a)}},viewQuery:function(i,o){if(1&i&&vt(Gl,5),2&i){let r;Oe(r=Ae())&&(o.primaryAction=r.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:30,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Je("role",o.role)("tabindex",o.role?o.tabIndex:null)("aria-label",o.ariaLabel),et("mdc-evolution-chip",!o._isBasicChip)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-basic-chip",o._isBasicChip)("mat-mdc-standard-chip",!o._isBasicChip)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon())("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",role:"role",id:"id",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaDescription:[ge.None,"aria-description","ariaDescription"],value:"value",removable:"removable",highlighted:"highlighted"},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[Ye([{provide:Yf,useExisting:t}]),ve],ngContentSelectors:CP,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing",4,"ngIf"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(yP),D(0,"span",0),d(1,"span",1)(2,"span",2),y(3,eX,2,0,"span",3),d(4,"span",4),Ze(5),D(6,"span",5),l()()(),y(7,tX,2,0,"span",6)),2&i&&(m(2),f("isInteractive",!1),m(),f("ngIf",o.leadingIcon),m(4),f("ngIf",o._hasTrailingIcon()))},dependencies:[It,Gl],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),Qf=(()=>{class t{constructor(e,i){this._elementRef=e,this._document=i}initialize(e){this.getNativeElement().focus(),this.setValue(e)}getNativeElement(){return this._elementRef.nativeElement}setValue(e){this.getNativeElement().textContent=e,this._moveCursorToEndOfInput()}getValue(){return this.getNativeElement().textContent||""}_moveCursorToEndOfInput(){const e=this._document.createRange();e.selectNodeContents(this.getNativeElement()),e.collapse(!1);const i=window.getSelection();i.removeAllRanges(),i.addRange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["span","matChipEditInput",""]],hostAttrs:["role","textbox","tabindex","-1","contenteditable","true",1,"mat-chip-edit-input"]})}return t})(),IC=(()=>{class t extends uc{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this.basicChipAttrName="mat-basic-chip-row",this._editStartPending=!1,this.editable=!1,this.edited=new Ne,this._isEditing=!1,this.role="row",this._onBlur.pipe(ot(this.destroyed)).subscribe(()=>{this._isEditing&&!this._editStartPending&&this._onEditFinish()})}_hasTrailingIcon(){return!this._isEditing&&super._hasTrailingIcon()}_handleFocus(){!this._isEditing&&!this.disabled&&this.focus()}_handleKeydown(e){13!==e.keyCode||this.disabled?this._isEditing?e.stopPropagation():super._handleKeydown(e):this._isEditing?(e.preventDefault(),this._onEditFinish()):this.editable&&this._startEditing(e)}_handleDoubleclick(e){!this.disabled&&this.editable&&this._startEditing(e)}_startEditing(e){if(!this.primaryAction||this.removeIcon&&this._getSourceAction(e.target)===this.removeIcon)return;const i=this.value;this._isEditing=this._editStartPending=!0,this._changeDetectorRef.detectChanges(),setTimeout(()=>{this._getEditInput().initialize(i),this._editStartPending=!1})}_onEditFinish(){this._isEditing=this._editStartPending=!1,this.edited.emit({chip:this,value:this._getEditInput().getValue()}),(this._document.activeElement===this._getEditInput().getNativeElement()||this._document.activeElement===this._document.body)&&this.primaryAction.focus()}_isRippleDisabled(){return super._isRippleDisabled()||this._isEditing}_getEditInput(){return this.contentEditInput||this.defaultEditInput}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(dt),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-row"],["","mat-chip-row",""],["mat-basic-chip-row"],["","mat-basic-chip-row",""]],contentQueries:function(i,o,r){if(1&i&>(r,Qf,5),2&i){let a;Oe(a=Ae())&&(o.contentEditInput=a.first)}},viewQuery:function(i,o){if(1&i&&vt(Qf,5),2&i){let r;Oe(r=Ae())&&(o.defaultEditInput=r.first)}},hostAttrs:[1,"mat-mdc-chip","mat-mdc-chip-row","mdc-evolution-chip"],hostVars:27,hostBindings:function(i,o){1&i&&A("focus",function(a){return o._handleFocus(a)})("dblclick",function(a){return o._handleDoubleclick(a)}),2&i&&(ao("id",o.id),Je("tabindex",o.disabled?null:-1)("aria-label",null)("aria-description",null)("role",o.role),et("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-chip-editing",o._isEditing)("mat-mdc-chip-editable",o.editable)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon()))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",editable:"editable"},outputs:{edited:"edited"},features:[Ye([{provide:uc,useExisting:t},{provide:Yf,useExisting:t}]),ve],ngContentSelectors:hX,decls:10,vars:12,consts:[[4,"ngIf"],["role","gridcell","matChipAction","",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary",3,"tabIndex","disabled"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label",3,"ngSwitch"],[4,"ngSwitchCase"],["aria-hidden","true",1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing","role","gridcell",4,"ngIf"],[1,"cdk-visually-hidden",3,"id"],[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[4,"ngIf","ngIfElse"],["defaultMatChipEditInput",""],["matChipEditInput",""],["role","gridcell",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(uX),y(0,oX,2,0,"ng-container",0),d(1,"span",1),y(2,rX,2,0,"span",2),d(3,"span",3),y(4,aX,2,0,"ng-container",4)(5,lX,4,2,"ng-container",4),D(6,"span",5),l()(),y(7,dX,2,0,"span",6),d(8,"span",7),h(9),l()),2&i&&(f("ngIf",!o._isEditing),m(),f("tabIndex",o.tabIndex)("disabled",o.disabled),Je("aria-label",o.ariaLabel)("aria-describedby",o._ariaDescriptionId),m(),f("ngIf",o.leadingIcon),m(),f("ngSwitch",o._isEditing),m(),f("ngSwitchCase",!1),m(),f("ngSwitchCase",!0),m(2),f("ngIf",o._hasTrailingIcon()),m(),f("id",o._ariaDescriptionId),m(),Pe(o.ariaDescription))},dependencies:[It,xl,Sp,Gl,Qf],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();class vX{constructor(n){}}const yX=os(vX);let EC=(()=>{class t extends yX{get chipFocusChanges(){return this._getChipStream(e=>e._onFocus)}get chipDestroyedChanges(){return this._getChipStream(e=>e.destroyed)}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get empty(){return!this._chips||0===this._chips.length}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}set role(e){this._explicitRole=e}get focused(){return this._hasFocusedChip()}constructor(e,i,o){super(e),this._elementRef=e,this._changeDetectorRef=i,this._dir=o,this._lastDestroyedFocusedChipIndex=null,this._destroyed=new qe,this._defaultRole="presentation",this._disabled=!1,this._explicitRole=null,this._chipActions=new oa}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(e=>e._hasFocus())}_syncChipsState(){this._chips&&this._chips.forEach(e=>{e.disabled=this._disabled,e._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(e){this._originatesFromChip(e)&&this._keyManager.onKeydown(e)}_isValidIndex(e){return e>=0&&ethis.tabIndex=e)}}_getChipStream(e){return this._chips.changes.pipe(an(null),gn(()=>Ri(...this._chips.map(e))))}_originatesFromChip(e){let i=e.target;for(;i&&i!==this._elementRef.nativeElement;){if(i.classList.contains("mat-mdc-chip"))return!0;i=i.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(an(this._chips)).subscribe(e=>{const i=[];e.forEach(o=>o._getActions().forEach(r=>i.push(r))),this._chipActions.reset(i),this._chipActions.notifyOnChanges()}),this._keyManager=new Jp(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(e=>this._skipPredicate(e)),this.chipFocusChanges.pipe(ot(this._destroyed)).subscribe(({chip:e})=>{const i=e._getSourceAction(document.activeElement);i&&this._keyManager.updateActiveItem(i)}),this._dir?.change.pipe(ot(this._destroyed)).subscribe(e=>this._keyManager.withHorizontalOrientation(e))}_skipPredicate(e){return!e.isInteractive||e.disabled}_trackChipSetChanges(){this._chips.changes.pipe(an(null),ot(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(ot(this._destroyed)).subscribe(e=>{const o=this._chips.toArray().indexOf(e.chip);this._isValidIndex(o)&&e.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=o)})}_redirectDestroyedChipFocus(){if(null!=this._lastDestroyedFocusedChipIndex){if(this._chips.length){const e=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),i=this._chips.toArray()[e];i.disabled?1===this._chips.length?this.focus():this._keyManager.setPreviousItemActive():i.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-set"]],contentQueries:function(i,o,r){if(1&i&>(r,uc,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&Je("role",o.role)},inputs:{disabled:"disabled",role:"role"},features:[ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();class xX{constructor(n,e){this.source=n,this.value=e}}class DX extends EC{constructor(n,e,i,o,r,a,s){super(n,e,i),this._defaultErrorStateMatcher=o,this._parentForm=r,this._parentFormGroup=a,this.ngControl=s,this.stateChanges=new qe}}const SX=v0(DX);let MP=(()=>{class t extends SX{get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get id(){return this._chipInput.id}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this._chips||0===this._chips.length)}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get focused(){return this._chipInput.focused||this._hasFocusedChip()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get shouldLabelFloat(){return!this.empty||this.focused}get value(){return this._value}set value(e){this._value=e}get chipBlurChanges(){return this._getChipStream(e=>e._onBlur)}constructor(e,i,o,r,a,s,c){super(e,i,o,s,r,a,c),this.controlType="mat-chip-grid",this._defaultRole="grid",this._ariaDescribedbyIds=[],this._onTouched=()=>{},this._onChange=()=>{},this._value=[],this.change=new Ne,this.valueChange=new Ne,this._chips=void 0,this.ngControl&&(this.ngControl.valueAccessor=this)}ngAfterContentInit(){this.chipBlurChanges.pipe(ot(this._destroyed)).subscribe(()=>{this._blur(),this.stateChanges.next()}),Ri(this.chipFocusChanges,this._chips.changes).pipe(ot(this._destroyed)).subscribe(()=>this.stateChanges.next())}ngAfterViewInit(){super.ngAfterViewInit()}ngDoCheck(){this.ngControl&&this.updateErrorState()}ngOnDestroy(){super.ngOnDestroy(),this.stateChanges.complete()}registerInput(e){this._chipInput=e,this._chipInput.setDescribedByIds(this._ariaDescribedbyIds)}onContainerClick(e){!this.disabled&&!this._originatesFromChip(e)&&this.focus()}focus(){this.disabled||this._chipInput.focused||(!this._chips.length||this._chips.first.disabled?Promise.resolve().then(()=>this._chipInput.focus()):this._chips.length&&this._keyManager.setFirstItemActive(),this.stateChanges.next())}setDescribedByIds(e){this._ariaDescribedbyIds=e,this._chipInput?.setDescribedByIds(e)}writeValue(e){this._value=e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this.stateChanges.next()}_blur(){this.disabled||setTimeout(()=>{this.focused||(this._propagateChanges(),this._markAsTouched())})}_allowFocusEscape(){this._chipInput.focused||super._allowFocusEscape()}_handleKeydown(e){9===e.keyCode?this._chipInput.focused&&An(e,"shiftKey")&&this._chips.length&&!this._chips.last.disabled?(e.preventDefault(),this._keyManager.activeItem?this._keyManager.setActiveItem(this._keyManager.activeItem):this._focusLastChip()):super._allowFocusEscape():this._chipInput.focused||super._handleKeydown(e),this.stateChanges.next()}_focusLastChip(){this._chips.length&&this._chips.last.focus()}_propagateChanges(){const e=this._chips.length?this._chips.toArray().map(i=>i.value):[];this._value=e,this.change.emit(new xX(this,e)),this.valueChange.emit(e),this._onChange(e),this._changeDetectorRef.markForCheck()}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8),_(hs,8),_(wi,8),_(nf),_(wr,10))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-grid"]],contentQueries:function(i,o,r){if(1&i&>(r,IC,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mat-mdc-chip-grid","mdc-evolution-chip-set"],hostVars:10,hostBindings:function(i,o){1&i&&A("focus",function(){return o.focus()})("blur",function(){return o._blur()}),2&i&&(ao("tabIndex",o._chips&&0===o._chips.length?-1:o.tabIndex),Je("role",o.role)("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState),et("mat-mdc-chip-list-disabled",o.disabled)("mat-mdc-chip-list-invalid",o.errorState)("mat-mdc-chip-list-required",o.required))},inputs:{tabIndex:"tabIndex",disabled:"disabled",placeholder:"placeholder",required:"required",value:"value",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},features:[Ye([{provide:Af,useExisting:t}]),ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})(),kX=0,TP=(()=>{class t{set chipGrid(e){e&&(this._chipGrid=e,this._chipGrid.registerInput(this))}get addOnBlur(){return this._addOnBlur}set addOnBlur(e){this._addOnBlur=$e(e)}get disabled(){return this._disabled||this._chipGrid&&this._chipGrid.disabled}set disabled(e){this._disabled=$e(e)}get empty(){return!this.inputElement.value}constructor(e,i,o){this._elementRef=e,this.focused=!1,this._addOnBlur=!1,this.chipEnd=new Ne,this.placeholder="",this.id="mat-mdc-chip-list-input-"+kX++,this._disabled=!1,this.inputElement=this._elementRef.nativeElement,this.separatorKeyCodes=i.separatorKeyCodes,o&&this.inputElement.classList.add("mat-mdc-form-field-input-control")}ngOnChanges(){this._chipGrid.stateChanges.next()}ngOnDestroy(){this.chipEnd.complete()}ngAfterContentInit(){this._focusLastChipOnBackspace=this.empty}_keydown(e){if(e){if(8===e.keyCode&&this._focusLastChipOnBackspace)return this._chipGrid._focusLastChip(),void e.preventDefault();this._focusLastChipOnBackspace=!1}this._emitChipEnd(e)}_keyup(e){!this._focusLastChipOnBackspace&&8===e.keyCode&&this.empty&&(this._focusLastChipOnBackspace=!0,e.preventDefault())}_blur(){this.addOnBlur&&this._emitChipEnd(),this.focused=!1,this._chipGrid.focused||this._chipGrid._blur(),this._chipGrid.stateChanges.next()}_focus(){this.focused=!0,this._focusLastChipOnBackspace=this.empty,this._chipGrid.stateChanges.next()}_emitChipEnd(e){(!e||this._isSeparatorKey(e))&&(this.chipEnd.emit({input:this.inputElement,value:this.inputElement.value,chipInput:this}),e?.preventDefault())}_onInput(){this._chipGrid.stateChanges.next()}focus(){this.inputElement.focus()}clear(){this.inputElement.value="",this._focusLastChipOnBackspace=!0}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}_isSeparatorKey(e){return!An(e)&&new Set(this.separatorKeyCodes).has(e.keyCode)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Zf),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matChipInputFor",""]],hostAttrs:[1,"mat-mdc-chip-input","mat-mdc-input-element","mdc-text-field__input","mat-input-element"],hostVars:6,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._keydown(a)})("keyup",function(a){return o._keyup(a)})("blur",function(){return o._blur()})("focus",function(){return o._focus()})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id),Je("disabled",o.disabled||null)("placeholder",o.placeholder||null)("aria-invalid",o._chipGrid&&o._chipGrid.ngControl?o._chipGrid.ngControl.invalid:null)("aria-required",o._chipGrid&&o._chipGrid.required||null)("required",o._chipGrid&&o._chipGrid.required||null))},inputs:{chipGrid:[ge.None,"matChipInputFor","chipGrid"],addOnBlur:[ge.None,"matChipInputAddOnBlur","addOnBlur"],separatorKeyCodes:[ge.None,"matChipInputSeparatorKeyCodes","separatorKeyCodes"],placeholder:"placeholder",id:"id",disabled:"disabled"},outputs:{chipEnd:"matChipInputTokenEnd"},exportAs:["matChipInput","matChipInputFor"],features:[fi]})}return t})(),OC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[nf,{provide:Zf,useValue:{separatorKeyCodes:[13]}}],imports:[Mt,Vn,as,Mt]})}return t})();class IP{constructor(){this.expansionModel=new qu(!0)}toggle(n){this.expansionModel.toggle(this._trackByValue(n))}expand(n){this.expansionModel.select(this._trackByValue(n))}collapse(n){this.expansionModel.deselect(this._trackByValue(n))}isExpanded(n){return this.expansionModel.isSelected(this._trackByValue(n))}toggleDescendants(n){this.expansionModel.isSelected(this._trackByValue(n))?this.collapseDescendants(n):this.expandDescendants(n)}collapseAll(){this.expansionModel.clear()}expandDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.select(...e.map(i=>this._trackByValue(i)))}collapseDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.deselect(...e.map(i=>this._trackByValue(i)))}_trackByValue(n){return this.trackBy?this.trackBy(n):n}}class EP extends IP{constructor(n,e,i){super(),this.getLevel=n,this.isExpandable=e,this.options=i,this.options&&(this.trackBy=this.options.trackBy)}getDescendants(n){const i=[];for(let o=this.dataNodes.indexOf(n)+1;othis._trackByValue(n)))}}let OX=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),OP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[OX,Mt,Mt]})}return t})();class LX{constructor(n,e,i,o){this.transformFunction=n,this.getLevel=e,this.isExpandable=i,this.getChildren=o}_flattenNode(n,e,i,o){const r=this.transformFunction(n,e);if(i.push(r),this.isExpandable(r)){const a=this.getChildren(n);a&&(Array.isArray(a)?this._flattenChildren(a,e,i,o):a.pipe(Pt(1)).subscribe(s=>{this._flattenChildren(s,e,i,o)}))}return i}_flattenChildren(n,e,i,o){n.forEach((r,a)=>{let s=o.slice();s.push(a!=n.length-1),this._flattenNode(r,e+1,i,s)})}flattenNodes(n){let e=[];return n.forEach(i=>this._flattenNode(i,0,e,[])),e}expandFlattenedNodes(n,e){let i=[],o=[];return o[0]=!0,n.forEach(r=>{let a=!0;for(let s=0;s<=this.getLevel(r);s++)a=a&&o[s];a&&i.push(r),this.isExpandable(r)&&(o[this.getLevel(r)+1]=e.isExpanded(r))}),i}}class AP extends vf{get data(){return this._data.value}set data(n){this._data.next(n),this._flattenedData.next(this._treeFlattener.flattenNodes(this.data)),this._treeControl.dataNodes=this._flattenedData.value}constructor(n,e,i){super(),this._treeControl=n,this._treeFlattener=e,this._flattenedData=new mt([]),this._expandedData=new mt([]),this._data=new mt([]),i&&(this.data=i)}connect(n){return Ri(n.viewChange,this._treeControl.expansionModel.changed,this._flattenedData).pipe(nt(()=>(this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value,this._treeControl)),this._expandedData.value)))}disconnect(){}}function BX(t,n){}const VX=t=>({animationDuration:t}),jX=(t,n)=>({value:t,params:n});function zX(t,n){1&t&&Ze(0)}const PP=["*"],HX=["tabListContainer"],UX=["tabList"],$X=["tabListInner"],GX=["nextPaginator"],qX=["previousPaginator"],WX=["tabBodyWrapper"],KX=["tabHeader"];function ZX(t,n){}function YX(t,n){1&t&&y(0,ZX,0,0,"ng-template",14),2&t&&f("cdkPortalOutlet",C().$implicit.templateLabel)}function QX(t,n){1&t&&h(0),2&t&&Pe(C().$implicit.textLabel)}function XX(t,n){if(1&t){const e=_e();d(0,"div",6,7),A("click",function(){const o=ie(e),r=o.$implicit,a=o.index,s=C(),c=Ft(1);return ne(s._handleClick(r,c,a))})("cdkFocusChange",function(o){const a=ie(e).index;return ne(C()._tabFocusChanged(o,a))}),D(2,"span",8)(3,"div",9),d(4,"span",10)(5,"span",11),y(6,YX,1,1,"ng-template",12)(7,QX,1,1,"ng-template",null,13,_r),l()()()}if(2&t){const e=n.$implicit,i=n.index,o=Ft(1),r=Ft(8),a=C();et("mdc-tab--active",a.selectedIndex===i),f("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Je("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),m(3),f("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),m(3),f("ngIf",e.templateLabel)("ngIfElse",r)}}function JX(t,n){if(1&t){const e=_e();d(0,"mat-tab-body",15),A("_onCentered",function(){return ie(e),ne(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return ie(e),ne(C()._setTabBodyWrapperHeight(o))}),l()}if(2&t){const e=n.$implicit,i=n.index,o=C();et("mat-mdc-tab-body-active",o.selectedIndex===i),f("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Je("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))("aria-hidden",o.selectedIndex!==i)}}const eJ={translateTab:Lo("translateTab",[mn("center, void, left-origin-center, right-origin-center",Zt({transform:"none"})),mn("left",Zt({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),mn("right",Zt({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Qi("* => left, * => right, left => center, right => center",Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Qi("void => left-origin-center",[Zt({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Qi("void => right-origin-center",[Zt({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let tJ=(()=>{class t extends Ca{constructor(e,i,o,r){super(e,i,r),this._host=o,this._centeringSub=de.EMPTY,this._leavingSub=de.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(an(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(Qt(()=>RP)),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabBodyHost",""]],features:[ve]})}return t})(),iJ=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=de.EMPTY,this._translateTabComplete=new qe,this._onCentering=new Ne,this._beforeCentering=new Ne,this._afterLeavingCenter=new Ne,this._onCentered=new Ne(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(r=>{this._computePositionAnimationState(r),o.markForCheck()})),this._translateTabComplete.pipe(Ru((r,a)=>r.fromState===a.fromState&&r.toState===a.toState)).subscribe(r=>{this._isCenterPosition(r.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(r.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{_content:[ge.None,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}})}return t})(),RP=(()=>{class t extends iJ{constructor(e,i,o){super(e,i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&vt(Ca,5),2&i){let r;Oe(r=Ae())&&(o._portalHost=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[ve],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,o){1&i&&(d(0,"div",0,1),A("@translateTab.start",function(a){return o._onTranslateTabStarted(a)})("@translateTab.done",function(a){return o._translateTabComplete.next(a)}),y(2,BX,0,0,"ng-template",2),l()),2&i&&f("@translateTab",zM(3,jX,o._position,hi(1,VX,o.animationDuration)))},dependencies:[tJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[eJ.translateTab]}})}return t})();const nJ=new se("MatTabContent");let oJ=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabContent",""]],features:[Ye([{provide:nJ,useExisting:t}])]})}return t})();const rJ=new se("MatTabLabel"),NP=new se("MAT_TAB");let FC=(()=>{class t extends CY{constructor(e,i,o){super(e,i),this._closestTab=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi),_(NP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Ye([{provide:rJ,useExisting:t}]),ve]})}return t})();const LC="mdc-tab-indicator--active",FP="mdc-tab-indicator--no-transition";class aJ{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function sJ(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=$e(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(LC);const i=e.getBoundingClientRect(),o=n.width/i.width,r=n.left-i.left;e.classList.add(FP),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(FP),e.classList.add(LC),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(LC)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const lJ=Vr(class{}),dJ=sJ((()=>{class t extends lJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})());let LP=(()=>{class t extends dJ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Je("aria-disabled",!!o.disabled),et("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[ve]})}return t})();const uJ=Vr(class{}),BP=new se("MAT_TAB_GROUP");let hJ=(()=>{class t extends uJ{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new qe,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ya(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(BP,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(gi,7),2&i){let r;Oe(r=Ae())&&(o._implicitContent=r.first)}},inputs:{textLabel:[ge.None,"label","textLabel"],ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[ve,fi]})}return t})(),eg=(()=>{class t extends hJ{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,oJ,7,gi),gt(r,FC,5)),2&i){let a;Oe(a=Ae())&&(o._explicitContent=a.first),Oe(a=Ae())&&(o.templateLabel=a.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Ye([{provide:NP,useExisting:t}]),ve],ngContentSelectors:PP,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),y(0,zX,1,0,"ng-template"))},encapsulation:2})}return t})();const VP=Ja({passive:!0});let fJ=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=yi(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,r,a,s,c){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=r,this._ngZone=a,this._platform=s,this._animationMode=c,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new qe,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new qe,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new Ne,this.indexFocused=new Ne,a.runOutsideAngular(()=>{er(e.nativeElement,"mouseleave").pipe(ot(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){er(this._previousPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),er(this._nextPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ke("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Jp(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Pt(1)).subscribe(o),Ri(e,i,this._items.changes,this._itemsResized()).pipe(ot(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return"function"!=typeof ResizeObserver?jo:this._items.changes.pipe(an(this._items),gn(e=>new li(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),l0(1),kt(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!An(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:r,offsetWidth:a}=i.elementRef.nativeElement;let s,c;"ltr"==this._getLayoutDirection()?(s=r,c=s+a):(c=this._tabListInner.nativeElement.offsetWidth-r,s=c-a);const u=this.scrollDistance,p=this.scrollDistance+o;sp&&(this.scrollDistance+=Math.min(c-p,s-u))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Pf(650,100).pipe(ot(Ri(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:r}=this._scrollHeader(e);(0===r||r>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disablePagination:"disablePagination"}})}return t})(),gJ=(()=>{class t extends fJ{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e)}constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disableRipple:"disableRipple"},features:[ve]})}return t})(),_J=(()=>{class t extends gJ{constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c)}ngAfterContentInit(){this._inkBar=new aJ(this._items),super.ngAfterContentInit()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&>(r,LP,4),2&i){let a;Oe(a=Ae())&&(o._items=a)}},viewQuery:function(i,o){if(1&i&&(vt(HX,7),vt(UX,7),vt($X,7),vt(GX,5),vt(qX,5)),2&i){let r;Oe(r=Ae())&&(o._tabListContainer=r.first),Oe(r=Ae())&&(o._tabList=r.first),Oe(r=Ae())&&(o._tabListInner=r.first),Oe(r=Ae())&&(o._nextPaginator=r.first),Oe(r=Ae())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[ve],ngContentSelectors:PP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(i,o){1&i&&(Ut(),d(0,"button",0,1),A("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(a){return o._handlePaginatorPress("before",a)})("touchend",function(){return o._stopInterval()}),D(2,"div",2),l(),d(3,"div",3,4),A("keydown",function(a){return o._handleKeydown(a)}),d(5,"div",5,6),A("cdkObserveContent",function(){return o._onContentChanges()}),d(7,"div",7,8),Ze(9),l()()(),d(10,"button",9,10),A("mousedown",function(a){return o._handlePaginatorPress("after",a)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),D(12,"div",2),l()),2&i&&(et("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),f("matRippleDisabled",o._disableScrollBefore||o.disableRipple)("disabled",o._disableScrollBefore||null),m(3),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(7),et("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),f("matRippleDisabled",o._disableScrollAfter||o.disableRipple)("disabled",o._disableScrollAfter||null))},dependencies:[rs,iE],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2})}return t})();const jP=new se("MAT_TABS_CONFIG");let bJ=0;const vJ=is(ns(class{constructor(t){this._elementRef=t}}),"primary");let yJ=(()=>{class t extends vJ{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=yi(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=yi(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=$e(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,r){super(e),this._changeDetectorRef=i,this._animationMode=r,this._tabs=new oa,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=de.EMPTY,this._tabLabelSubscription=de.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new Ne,this.focusChange=new Ne,this.animationDone=new Ne,this.selectedTabChange=new Ne(!0),this._groupId=bJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,r)=>o.isActive=r===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let r=0;r{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(an(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new CJ;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Ri(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[ve]})}return t})(),BC=(()=>{class t extends yJ{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=$e(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=$e(e)}constructor(e,i,o,r){super(e,i,o,r),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&>(r,eg,5),2&i){let a;Oe(a=Ae())&&(o._allTabs=a)}},viewQuery:function(i,o){if(1&i&&(vt(WX,5),vt(KX,5)),2&i){let r;Oe(r=Ae())&&(o._tabBodyWrapper=r.first),Oe(r=Ae())&&(o._tabHeader=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-tab-group"],hostVars:8,hostBindings:function(i,o){2&i&&(Sn("--mat-tab-animation-duration",o.animationDuration),et("mat-mdc-tab-group-dynamic-height",o.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===o.headerPosition)("mat-mdc-tab-group-stretch-tabs",o.stretchTabs))},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:[ge.None,"mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Ye([{provide:BP,useExisting:t}]),ve],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(i,o){1&i&&(d(0,"mat-tab-header",0,1),A("indexFocused",function(a){return o._focusChanged(a)})("selectFocusedIndex",function(a){return o.selectedIndex=a}),y(2,XX,9,17,"div",2),l(),d(3,"div",3,4),y(5,JX,1,12,"mat-tab-body",5),l()),2&i&&(f("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),m(2),f("ngForOf",o._tabs),m(),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(2),f("ngForOf",o._tabs))},dependencies:[vr,rn,It,Ca,rs,tq,RP,LP,_J],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})();class CJ{}let zP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,cc,as,Zp,b0,Mt]})}return t})();function wJ(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"button",3),A("click",function(){return ie(e),ne(C().action())}),h(2),l()()}if(2&t){const e=C();m(2),De(" ",e.data.action," ")}}const xJ=["label"];function DJ(t,n){}const SJ=Math.pow(2,31)-1;class VC{constructor(n,e){this._overlayRef=e,this._afterDismissed=new qe,this._afterOpened=new qe,this._onAction=new qe,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,SJ))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const HP=new se("MatSnackBarData");class tg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let kJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),MJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),TJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),IJ=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static#e=this.\u0275fac=function(i){return new(i||t)(_(VC),_(HP))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),h(1),l(),y(2,wJ,3,1,"div",1)),2&i&&(m(),De(" ",o.data.message,"\n"),m(),f("ngIf",o.hasAction))},dependencies:[It,Yt,kJ,MJ,TJ],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})();const EJ={snackBarState:Lo("state",[mn("void, hidden",Zt({transform:"scale(0.8)",opacity:0})),mn("visible",Zt({transform:"scale(1)",opacity:1})),Qi("* => visible",Yi("150ms cubic-bezier(0, 0, 0.2, 1)")),Qi("* => void, * => hidden",Yi("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zt({opacity:0})))])};let OJ=0,AJ=(()=>{class t extends Ff{constructor(e,i,o,r,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=r,this.snackBarConfig=a,this._document=xe(dt),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new qe,this._onExit=new qe,this._onEnter=new qe,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+OJ++,this.attachDomPortal=s=>{this._assertNotAttached();const c=this._portalOutlet.attachDomPortal(s);return this._afterPortalAttached(),c},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const r=this._onEnter;this._ngZone.run(()=>{r.next(),r.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(We),_(Be),_(Lt),_(ci),_(tg))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},features:[ve]})}return t})(),PJ=(()=>{class t extends AJ{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&vt(xJ,7),2&i){let r;Oe(r=Ae())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(i,o){1&i&&ep("@state.done",function(a){return o.onAnimationEnd(a)}),2&i&&Zm("@state",o._animationState)},features:[ve],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1,2)(3,"div",3),y(4,DJ,0,0,"ng-template",4),l(),D(5,"div"),l()()),2&i&&(m(5),Je("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Ca],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[EJ.snackBarState]}})}return t})(),jC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[dc,cc,Vn,lf,Mt,Mt]})}return t})();const UP=new se("mat-snack-bar-default-options",{providedIn:"root",factory:function RJ(){return new tg}});let NJ=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,r,a,s){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=r,this._parentSnackBar=a,this._defaultConfig=s,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const r={...this._defaultConfig,...o};return r.data={message:e,action:i},r.announcementMessage===e&&(r.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,r)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const r=ji.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:tg,useValue:i}]}),a=new Ll(this.snackBarContainerComponent,i.viewContainerRef,r),s=e.attach(a);return s.instance.snackBarConfig=i,s.instance}_attach(e,i){const o={...new tg,...this._defaultConfig,...i},r=this._createOverlay(o),a=this._attachSnackBarContainer(r,o),s=new VC(a,r);if(e instanceof gi){const c=new ya(e,null,{$implicit:o.data,snackBarRef:s});s.instance=a.attachTemplatePortal(c)}else{const c=this._createInjector(o,s),u=new Ll(e,void 0,c),p=a.attachComponentPortal(u);s.instance=p.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(ot(r.detachments())).subscribe(c=>{r.overlayElement.classList.toggle(this.handsetCssClass,c.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(s,o),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Bl;i.direction=e.direction;let o=this._overlay.position().global();const r="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,s=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):s?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return ji.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:VC,useValue:i},{provide:HP,useValue:e.data}]})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),FJ=(()=>{class t extends NJ{constructor(e,i,o,r,a,s){super(e,i,o,r,a,s),this.simpleSnackBarComponent=IJ,this.snackBarContainerComponent=PJ,this.handsetCssClass="mat-mdc-snack-bar-handset"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:jC})}return t})();function LJ(t,n){}class ig{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let $P=(()=>{class t extends Ff{constructor(e,i,o,r,a,s,c,u){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=r,this._interactivityChecker=a,this._ngZone=s,this._overlayRef=c,this._focusMonitor=u,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this.attachDomPortal=p=>{this._portalOutlet.hasAttached();const g=this._portalOutlet.attachDomPortal(p);return this._contentAttached(),g},this._document=o,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=Hp(),r=this._elementRef.nativeElement;(!o||o===this._document.body||o===r||r.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=Hp();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Hp())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ig),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Je("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[ve],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&y(0,LJ,0,0,"ng-template",0)},dependencies:[Ca],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})();class zC{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new qe,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const GP=new se("DialogScrollStrategy"),BJ=new se("DialogData"),VJ=new se("DefaultDialogConfig"),zJ={provide:GP,deps:[Qn],useFactory:function jJ(t){return()=>t.scrollStrategies.block()}};let HJ=0,qP=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,r,a,s){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=r,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._ariaHiddenElements=new Map,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s}open(e,i){(i={...this._defaultOptions||new ig,...i}).id=i.id||"cdk-dialog-"+HJ++,i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),a=this._overlay.create(r),s=new zC(a,i),c=this._attachContainer(a,s,i);return s.containerInstance=c,this._attachDialogContent(e,s,c,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){HC(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){HC(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),HC(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Bl({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,a=[{provide:ig,useValue:o},{provide:zC,useValue:i},{provide:ah,useValue:e}];let s;o.container?"function"==typeof o.container?s=o.container:(s=o.container.type,a.push(...o.container.providers(o))):s=$P;const c=new Ll(s,o.viewContainerRef,ji.create({parent:r||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(c).instance}_attachDialogContent(e,i,o,r){if(e instanceof gi){const a=this._createInjector(r,i,o,void 0);let s={$implicit:r.data,dialogRef:i};r.templateContext&&(s={...s,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new ya(e,null,s,a))}else{const a=this._createInjector(r,i,o,this._injector),s=o.attachComponentPortal(new Ll(e,r.viewContainerRef,a,r.componentFactoryResolver));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(e,i,o,r){const a=e.injector||e.viewContainerRef?.injector,s=[{provide:BJ,useValue:e.data},{provide:zC,useValue:i}];return e.providers&&("function"==typeof e.providers?s.push(...e.providers(i,e,o)):s.push(...e.providers)),e.direction&&(!a||!a.get(fn,null,{optional:!0}))&&s.push({provide:fn,useValue:{value:e.direction,change:Ke()}}),ji.create({parent:a||r,providers:s})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,a)=>{r?a.setAttribute("aria-hidden",r):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const r=i[o];r!==e&&"SCRIPT"!==r.nodeName&&"STYLE"!==r.nodeName&&!r.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(r,r.getAttribute("aria-hidden")),r.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(VJ,8),X(t,12),X(Lf),X(GP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function HC(t,n){let e=t.length;for(;e--;)n(t[e])}let UJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[qP,zJ],imports:[dc,cc,b0,cc]})}return t})();function $J(t,n){}class ng{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const UC="mdc-dialog--open",WP="mdc-dialog--opening",KP="mdc-dialog--closing";let WJ=(()=>{class t extends $P{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this._animationStateChanged=new Ne}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ng),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],features:[ve],decls:0,vars:0,template:function(i,o){},encapsulation:2})}return t})();const ZP="--mat-dialog-transition-duration";function YP(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?yi(t.substring(0,t.length-2)):t.endsWith("s")?1e3*yi(t.substring(0,t.length-1)):"0"===t?0:null}let KJ=(()=>{class t extends WJ{constructor(e,i,o,r,a,s,c,u,p){super(e,i,o,r,a,s,c,p),this._animationMode=u,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?YP(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?YP(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(WP,UC)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(UC),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(UC),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(KP)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(WP,KP)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ng),_(Fu),_(We),_(ah),_(ui,8),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(i,o){2&i&&(ao("id",o._config.id),Je("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),et("_mat-animation-noopable",!o._animationsEnabled))},features:[ve],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,$J,0,0,"ng-template",2),l()())},dependencies:[Ca],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return t})();class bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new qe,this._beforeClosed=new qe,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(kt(o=>"opened"===o.state),Pt(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(kt(o=>"closed"===o.state),Pt(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Ri(this.backdropClick(),this.keydownEvents().pipe(kt(o=>27===o.keyCode&&!this.disableClose&&!An(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),QP(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(kt(e=>"closing"===e.state),Pt(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function QP(t,n,e){return t._closeInteractionType=n,t.close(e)}const mo=new se("MatMdcDialogData"),ZJ=new se("mat-mdc-dialog-default-options"),XP=new se("mat-mdc-dialog-scroll-strategy"),QJ={provide:XP,deps:[Qn],useFactory:function YJ(t){return()=>t.scrollStrategies.block()}};let XJ=0,JJ=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,r,a,s,c,u,p,g){this._overlay=e,this._defaultOptions=o,this._parentDialog=r,this._dialogRefConstructor=c,this._dialogContainerType=u,this._dialogDataToken=p,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._idPrefix="mat-dialog-",this.dialogConfigClass=ng,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s,this._dialog=i.get(qP)}open(e,i){let o;(i={...this._defaultOptions||new ng,...i}).id=i.id||`${this._idPrefix}${XJ++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ig,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,s,c)=>(o=new this._dialogRefConstructor(a,i,c),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentRef=r.componentRef,o.componentInstance=r.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),zr=(()=>{class t extends JJ{constructor(e,i,o,r,a,s,c,u){super(e,i,r,s,c,a,bn,KJ,mo,u),this._idPrefix="mat-mdc-dialog-"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(Ws,8),X(ZJ,8),X(XP),X(t,12),X(Lf),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),eee=0,zn=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=JP(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){QP(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(zr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&A("click",function(a){return o._onButtonClick(a)}),2&i&&Je("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],type:"type",dialogResult:[ge.None,"mat-dialog-close","dialogResult"],_matDialogClose:[ge.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[fi]})}return t})(),tee=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+eee++}ngOnInit(){this._dialogRef||(this._dialogRef=JP(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._dialogRef._containerInstance?._ariaLabelledByQueue?.push(this.id)})}ngOnDestroy(){const e=this._dialogRef?._containerInstance?._ariaLabelledByQueue;e&&Promise.resolve().then(()=>{const i=e.indexOf(this.id);i>-1&&e.splice(i,1)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(zr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]})}return t})(),So=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]})}return t})(),ko=(()=>{class t{constructor(){this.align="start"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"}})}return t})();function JP(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let eR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[zr,QJ],imports:[UJ,dc,cc,Mt,Mt]})}return t})();const iee=["tooltip"],iR=new se("mat-tooltip-scroll-strategy"),ree={provide:iR,deps:[Qn],useFactory:function oee(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},see=new se("mat-tooltip-default-options",{providedIn:"root",factory:function aee(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),nR="tooltip-panel",oR=Ja({passive:!0});let mee=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=$e(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=yi(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=yi(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=r,this._ngZone=a,this._platform=s,this._ariaDescriber=c,this._focusMonitor=u,this._dir=g,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new qe,this._scrollStrategy=p,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures)),g.change.pipe(ot(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(ot(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,oR)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ll(this._tooltipComponent,this._viewContainerRef);const r=this._tooltipInstance=o.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&r._origin instanceof Be)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(ot(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${nR}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(ot(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(ot(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&27===r.keyCode&&!An(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),r=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...r.main}),this._addOffset({...o.fallback,...r.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:r,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:r,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Pt(1),ot(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:r}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",a!==this._currentPosition){const s=this._overlayRef;if(s){const c=`${this._cssClassPrefix}-${nR}-`;s.removePanelClass(c+this._currentPosition),s.addPanelClass(c+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,oR)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,inputs:{position:[ge.None,"matTooltipPosition","position"],positionAtOrigin:[ge.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[ge.None,"matTooltipDisabled","disabled"],showDelay:[ge.None,"matTooltipShowDelay","showDelay"],hideDelay:[ge.None,"matTooltipHideDelay","hideDelay"],touchGestures:[ge.None,"matTooltipTouchGestures","touchGestures"],message:[ge.None,"matTooltip","message"],tooltipClass:[ge.None,"matTooltipClass","tooltipClass"]}})}return t})(),vn=(()=>{class t extends mee{constructor(e,i,o,r,a,s,c,u,p,g,b,w){super(e,i,o,r,a,s,c,u,p,g,b,w),this._tooltipComponent=fee,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(oh),_(vi),_(We),_(ci),_(FG),_(zo),_(iR),_(fn,8),_(see,8),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-mdc-tooltip-disabled",o.disabled)},exportAs:["matTooltip"],features:[ve]})}return t})(),pee=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new qe,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,r=this._hideAnimation;if(i.classList.remove(e?r:o),i.classList.add(e?o:r),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(ui,8))};static#t=this.\u0275dir=Q({type:t})}return t})(),fee=(()=>{class t extends pee{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&vt(iee,7),2&i){let r;Oe(r=Ae())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,o){1&i&&A("mouseleave",function(a){return o._handleMouseLeave(a)}),2&i&&Sn("zoom",o.isVisible()?1:null)},features:[ve],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,o){1&i&&(d(0,"div",0,1),A("animationend",function(a){return o._handleAnimationEnd(a)}),d(2,"div",2),h(3),l()()),2&i&&(et("mdc-tooltip--multiline",o._isMultiline),f("ngClass",o.tooltipClass),m(3),Pe(o.message))},dependencies:[vr],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})(),$C=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ree],imports:[b0,Vn,dc,Mt,Mt,ms]})}return t})();const gee=["input"],_ee=["label"],bee=["*"],vee=new se("mat-checkbox-default-options",{providedIn:"root",factory:rR});function rR(){return{color:"accent",clickAction:"check-indeterminate"}}const yee={provide:uo,useExisting:Qt(()=>og),multi:!0};class Cee{}let wee=0;const aR=rR(),xee=os(is(ns(Vr(class{constructor(t){this._elementRef=t}}))));let Dee=(()=>{class t extends xee{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=$e(e)}constructor(e,i,o,r,a,s,c){super(i),this._changeDetectorRef=o,this._ngZone=r,this._animationMode=s,this._options=c,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ne,this.indeterminateChange=new Ne,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||aR,this.color=this.defaultColor=this._options.color||aR.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++wee}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=$e(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=$e(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=$e(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const r=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(r)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gee,5),vt(_ee,5),vt(rs,5)),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first),Oe(r=Ae())&&(o._labelElement=r.first),Oe(r=Ae())&&(o.ripple=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[ve]})}return t})(),og=(()=>{class t extends Dee{constructor(e,i,o,r,a,s){super("mat-mdc-checkbox-",e,i,o,r,a,s),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new Cee;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),oo("tabindex"),_(ui,8),_(vee,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&(ao("id",o.id),Je("tabindex",null)("aria-label",null)("aria-labelledby",null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Ye([yee]),ve],ngContentSelectors:bee,decls:15,vars:20,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0),A("click",function(a){return o._preventBubblingFromLabel(a)}),d(1,"div",1,2)(3,"div",3),A("click",function(){return o._onTouchTargetClick()}),l(),d(4,"input",4,5),A("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(a){return o._onInteractionEvent(a)}),l(),D(6,"div",6),d(7,"div",7),ei(),d(8,"svg",8),D(9,"path",9),l(),mr(),D(10,"div",10),l(),D(11,"div",11),l(),d(12,"label",12,13),Ze(14),l()()),2&i){const r=Ft(2);et("mdc-form-field--align-end","before"==o.labelPosition),m(4),et("mdc-checkbox--selected",o.checked),f("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled)("id",o.inputId)("required",o.required)("tabIndex",o.tabIndex),Je("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("name",o.name)("value",o.value),m(7),f("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),m(),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),sR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),cR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,as,sR,Mt,sR]})}return t})();const rg=["*"],Mee=["content"];function Tee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Iee(t,n){1&t&&(d(0,"mat-drawer-content"),Ze(1,2),l())}const Eee=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Oee=["mat-drawer","mat-drawer-content","*"];function Aee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Pee(t,n){1&t&&(d(0,"mat-sidenav-content"),Ze(1,2),l())}const Ree=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],Nee=["mat-sidenav","mat-sidenav-content","*"],lR={transformDrawer:Lo("transform",[mn("open, open-instant",Zt({transform:"none",visibility:"visible"})),mn("void",Zt({"box-shadow":"none",visibility:"hidden"})),Qi("void => open-instant",Yi("0ms")),Qi("void <=> open, open-instant => void",Yi("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},Lee=new se("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function Bee(){return!1}}),GC=new se("MAT_DRAWER_CONTAINER");let ag=(()=>{class t extends rh{constructor(e,i,o,r,a){super(o,r,a),this._changeDetectorRef=e,this._container=i}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>uR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{get position(){return this._position}set position(e){(e="end"===e?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=$e(e)}get autoFocus(){return this._autoFocus??("side"===this.mode?"dialog":"first-tabbable")}set autoFocus(e){("true"===e||"false"===e||null==e)&&(e=$e(e)),this._autoFocus=e}get opened(){return this._opened}set opened(e){this.toggle($e(e))}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._focusTrapFactory=i,this._focusMonitor=o,this._platform=r,this._ngZone=a,this._interactivityChecker=s,this._doc=c,this._container=u,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new qe,this._animationEnd=new qe,this._animationState="void",this.openedChange=new Ne(!0),this._openedStream=this.openedChange.pipe(kt(p=>p),nt(()=>{})),this.openedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&0===p.toState.indexOf("open")),Bf(void 0)),this._closedStream=this.openedChange.pipe(kt(p=>!p),nt(()=>{})),this.closedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&"void"===p.toState),Bf(void 0)),this._destroyed=new qe,this.onPositionChanged=new Ne,this._modeChanged=new qe,this.openedChange.subscribe(p=>{p?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{er(this._elementRef.nativeElement,"keydown").pipe(kt(p=>27===p.keyCode&&!this.disableClose&&!An(p)),ot(this._destroyed)).subscribe(p=>this._ngZone.run(()=>{this.close(),p.stopPropagation(),p.preventDefault()}))}),this._animationEnd.pipe(Ru((p,g)=>p.fromState===g.fromState&&p.toState===g.toState)).subscribe(p=>{const{fromState:g,toState:b}=p;(0===b.indexOf("open")&&"void"===g||"void"===b&&0===g.indexOf("open"))&&this.openedChange.emit(this._opened)})}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_takeFocus(){if(!this._focusTrap)return;const e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{!i&&"function"==typeof this._elementRef.nativeElement.focus&&e.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(e){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){const e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,i){e&&i&&(this._openedVia=i);const o=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),o}_setOpen(e,i,o){return this._opened=e,e?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(o)),this._updateFocusTrapState(),new Promise(r=>{this.openedChange.pipe(Pt(1)).subscribe(a=>r(a?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop)}_updatePositionInParent(e){const i=this._elementRef.nativeElement,o=i.parentNode;"end"===e?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(zo),_(ci),_(We),_(Fu),_(dt,8),_(GC,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,o){if(1&i&&vt(Mee,5),2&i){let r;Oe(r=Ae())&&(o._content=r.first)}},hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer"],hostVars:12,hostBindings:function(i,o){1&i&&ep("@transform.start",function(a){return o._animationStarted.next(a)})("@transform.done",function(a){return o._animationEnd.next(a)}),2&i&&(Je("align",null),Zm("@transform",o._animationState),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),uR=(()=>{class t{get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=$e(e)}get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=null==e?null:$e(e)}get scrollable(){return this._userContent||this._content}constructor(e,i,o,r,a,s=!1,c){this._dir=e,this._element=i,this._ngZone=o,this._changeDetectorRef=r,this._animationMode=c,this._drawers=new oa,this.backdropClick=new Ne,this._destroyed=new qe,this._doCheckSubject=new qe,this._contentMargins={left:null,right:null},this._contentMarginChanges=new qe,e&&e.change.pipe(ot(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),a.change().pipe(ot(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=s}ngAfterContentInit(){this._allDrawers.changes.pipe(an(this._allDrawers),ot(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(an(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Wp(10),ot(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,i=0;if(this._left&&this._left.opened)if("side"==this._left.mode)e+=this._left._getWidth();else if("push"==this._left.mode){const o=this._left._getWidth();e+=o,i-=o}if(this._right&&this._right.opened)if("side"==this._right.mode)i+=this._right._getWidth();else if("push"==this._right.mode){const o=this._right._getWidth();i+=o,e-=o}e=e||null,i=i||null,(e!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:e,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(kt(i=>i.fromState!==i.toState),ot(this._drawers.changes)).subscribe(i=>{"open-instant"!==i.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==e.mode&&e.openedChange.pipe(ot(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e&&e.onPositionChanged.pipe(ot(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(e){e&&e._modeChanged.pipe(ot(Ri(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){const i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";e?i.add(o):i.remove(o)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{"end"==e.position?this._end=e:this._start=e}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return null!=e&&e.opened}_drawerHasBackdrop(e){return null==this._backdropOverride?!!e&&"side"!==e.mode:this._backdropOverride}static#e=this.\u0275fac=function(i){return new(i||t)(_(fn,8),_(Be),_(We),_(Lt),_(va),_(Lee),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,ag,5),gt(r,dR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},viewQuery:function(i,o){if(1&i&&vt(ag,5),2&i){let r;Oe(r=Ae())&&(o._userContent=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[Ye([{provide:GC,useExisting:t}])],ngContentSelectors:Oee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Eee),y(0,Tee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Iee,2,0,"mat-drawer-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,ag],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),qC=(()=>{class t extends ag{constructor(e,i,o,r,a){super(e,i,o,r,a)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>mR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),hR=(()=>{class t extends dR{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=$e(e)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=yi(e)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=yi(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(i,o){2&i&&(Je("align",null),Sn("top",o.fixedInViewport?o.fixedTopGap:null,"px")("bottom",o.fixedInViewport?o.fixedBottomGap:null,"px"),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened)("mat-sidenav-fixed",o.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[ve],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),mR=(()=>{class t extends uR{constructor(){super(...arguments),this._allDrawers=void 0,this._content=void 0}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,qC,5),gt(r,hR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},exportAs:["matSidenavContainer"],features:[Ye([{provide:GC,useExisting:t}]),ve],ngContentSelectors:Nee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Ree),y(0,Aee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Pee,2,0,"mat-sidenav-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,qC],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),pR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,ms,ms,Mt]})}return t})();const Vee=["panel"];function jee(t,n){if(1&t){const e=_e();d(0,"div",0,1),A("@panelAnimation.done",function(o){return ie(e),ne(C()._animationDone.next(o))}),Ze(2),l()}if(2&t){const e=n.id,i=C();f("id",i.id)("ngClass",i._classList)("@panelAnimation",i.isOpen?"visible":"hidden"),Je("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(e))}}const zee=["*"],Hee=Lo("panelAnimation",[mn("void, hidden",Zt({opacity:0,transform:"scaleY(0.8)"})),Qi(":enter, hidden => visible",[vy([Yi("0.03s linear",Zt({opacity:1})),Yi("0.12s cubic-bezier(0, 0, 0.2, 1)",Zt({transform:"scaleY(1)"}))])]),Qi(":leave, visible => hidden",[Yi("0.075s linear",Zt({opacity:0}))])]);let Uee=0;class $ee{constructor(n,e){this.source=n,this.option=e}}const Gee=ns(class{}),fR=new se("mat-autocomplete-default-options",{providedIn:"root",factory:function qee(){return{autoActiveFirstOption:!1,autoSelectActiveOption:!1,hideSingleSelectionIndicator:!1,requireSelection:!1}}});let Wee=(()=>{class t extends Gee{get isOpen(){return this._isOpen&&this.showPanel}_setColor(e){this._color=e,this._setThemeClasses(this._classList)}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(e){this._autoActiveFirstOption=$e(e)}get autoSelectActiveOption(){return this._autoSelectActiveOption}set autoSelectActiveOption(e){this._autoSelectActiveOption=$e(e)}get requireSelection(){return this._requireSelection}set requireSelection(e){this._requireSelection=$e(e)}set classList(e){this._classList=e&&e.length?function yG(t,n=/\s+/){const e=[];if(null!=t){const i=Array.isArray(t)?t:`${t}`.split(n);for(const o of i){const r=`${o}`.trim();r&&e.push(r)}}return e}(e).reduce((i,o)=>(i[o]=!0,i),{}):{},this._setVisibilityClasses(this._classList),this._setThemeClasses(this._classList),this._elementRef.nativeElement.className=""}constructor(e,i,o,r){super(),this._changeDetectorRef=e,this._elementRef=i,this._defaults=o,this._activeOptionChanges=de.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new Ne,this.opened=new Ne,this.closed=new Ne,this.optionActivated=new Ne,this._classList={},this.id="mat-autocomplete-"+Uee++,this.inertGroups=r?.SAFARI||!1,this._autoActiveFirstOption=!!o.autoActiveFirstOption,this._autoSelectActiveOption=!!o.autoSelectActiveOption,this._requireSelection=!!o.requireSelection}ngAfterContentInit(){this._keyManager=new hE(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(e=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[e]||null})}),this._setVisibility()}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe()}_setScrollTop(e){this.panel&&(this.panel.nativeElement.scrollTop=e)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(e){const i=new $ee(this,e);this.optionSelected.emit(i)}_getPanelAriaLabelledby(e){return this.ariaLabel?null:this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_setVisibilityClasses(e){e[this._visibleClass]=this.showPanel,e[this._hiddenClass]=!this.showPanel}_setThemeClasses(e){e["mat-primary"]="primary"===this._color,e["mat-warn"]="warn"===this._color,e["mat-accent"]="accent"===this._color}_skipPredicate(e){return e.disabled}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(fR),_(ci))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gi,7),vt(Vee,5)),2&i){let r;Oe(r=Ae())&&(o.template=r.first),Oe(r=Ae())&&(o.panel=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",autoSelectActiveOption:"autoSelectActiveOption",requireSelection:"requireSelection",panelWidth:"panelWidth",classList:[ge.None,"class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[ve]})}return t})(),Kee=(()=>{class t extends Wee{constructor(){super(...arguments),this._visibleClass="mat-mdc-autocomplete-visible",this._hiddenClass="mat-mdc-autocomplete-hidden",this._animationDone=new Ne,this._hideSingleSelectionIndicator=this._defaults.hideSingleSelectionIndicator??!1}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}ngOnDestroy(){super.ngOnDestroy(),this._animationDone.complete()}_skipPredicate(e){return!1}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-autocomplete"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,af,5),gt(r,Tn,5)),2&i){let a;Oe(a=Ae())&&(o.optionGroups=a),Oe(a=Ae())&&(o.options=a)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-autocomplete"],inputs:{disableRipple:"disableRipple",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matAutocomplete"],features:[Ye([{provide:rf,useExisting:t}]),ve],ngContentSelectors:zee,decls:1,vars:0,consts:[["role","listbox",1,"mat-mdc-autocomplete-panel","mdc-menu-surface","mdc-menu-surface--open",3,"id","ngClass"],["panel",""]],template:function(i,o){1&i&&(Ut(),y(0,jee,3,5,"ng-template"))},dependencies:[vr],styles:["div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}"],encapsulation:2,data:{animation:[Hee]},changeDetection:0})}return t})();const Zee={provide:uo,useExisting:Qt(()=>_R),multi:!0},gR=new se("mat-autocomplete-scroll-strategy"),Qee={provide:gR,deps:[Qn],useFactory:function Yee(t){return()=>t.scrollStrategies.reposition()}};let Xee=(()=>{class t{get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(e){this._autocompleteDisabled=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g,b){this._element=e,this._overlay=i,this._viewContainerRef=o,this._zone=r,this._changeDetectorRef=a,this._dir=c,this._formField=u,this._document=p,this._viewportRuler=g,this._defaults=b,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=de.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new qe,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=Vl(()=>{const w=this.autocomplete?this.autocomplete.options:null;return w?w.changes.pipe(an(w),gn(()=>Ri(...w.map(k=>k.onSelectionChange)))):this._zone.onStable.pipe(Pt(1),gn(()=>this.optionSelections))}),this._handlePanelKeydown=w=>{(27===w.keyCode&&!An(w)||38===w.keyCode&&An(w,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),w.stopPropagation(),w.preventDefault())},this._trackedModal=null,this._scrollStrategy=s}ngAfterViewInit(){const e=this._getWindow();typeof e<"u"&&this._zone.runOutsideAngular(()=>e.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const e=this._getWindow();typeof e<"u"&&e.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete(),this._clearFromModal()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel(),this._trackedModal&&Yp(this._trackedModal,"aria-owns",this.autocomplete.id)}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit()}),this.autocomplete._isOpen=this._overlayAttached=!1,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges(),this._trackedModal)&&Tl(this._trackedModal,"aria-owns",this.autocomplete.id)}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return Ri(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(kt(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(kt(()=>this._overlayAttached)):Ke()).pipe(nt(e=>e instanceof IE?e:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return Ri(er(this._document,"click"),er(this._document,"auxclick"),er(this._document,"touchend")).pipe(kt(e=>{const i=pa(e),o=this._formField?this._formField._elementRef.nativeElement:null,r=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&i!==this._element.nativeElement&&this._document.activeElement!==this._element.nativeElement&&(!o||!o.contains(i))&&(!r||!r.contains(i))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(i)}))}writeValue(e){Promise.resolve(null).then(()=>this._assignOptionValue(e))}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this._element.nativeElement.disabled=e}_handleKeydown(e){const i=e.keyCode,o=An(e);if(27===i&&!o&&e.preventDefault(),this.activeOption&&13===i&&this.panelOpen&&!o)this.activeOption._selectViaInteraction(),this._resetActiveItem(),e.preventDefault();else if(this.autocomplete){const r=this.autocomplete._keyManager.activeItem,a=38===i||40===i;9===i||a&&!o&&this.panelOpen?this.autocomplete._keyManager.onKeydown(e):a&&this._canOpen()&&this.openPanel(),(a||this.autocomplete._keyManager.activeItem!==r)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._element.nativeElement.value),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)))}}_handleInput(e){let i=e.target,o=i.value;"number"===i.type&&(o=""==o?null:parseFloat(o)),this._previousValue!==o&&(this._previousValue=o,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(o),o||this._clearPreviousSelectedOption(null,!1),this._canOpen()&&this._document.activeElement===e.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_handleClick(){this._canOpen()&&!this.panelOpen&&this.openPanel()}_floatLabel(e=!1){this._formField&&"auto"===this._formField.floatLabel&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){return Ri(this._zone.onStable.pipe(Pt(1)),this.autocomplete.options.changes.pipe(qt(()=>this._positionStrategy.reapplyLastPosition()),hC(0))).pipe(gn(()=>(this._zone.run(()=>{const o=this.panelOpen;this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),o!==this.panelOpen&&(this.panelOpen?(this._captureValueOnAttach(),this._emitOpened()):this.autocomplete.closed.emit())}),this.panelClosingActions)),Pt(1)).subscribe(o=>this._setValueAndClose(o))}_emitOpened(){this.autocomplete.opened.emit()}_captureValueOnAttach(){this._valueOnAttach=this._element.nativeElement.value}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_assignOptionValue(e){const i=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(e):e;this._updateNativeInputValue(i??"")}_updateNativeInputValue(e){this._formField?this._formField._control.value=e:this._element.nativeElement.value=e,this._previousValue=e}_setValueAndClose(e){const i=this.autocomplete,o=e?e.source:this._pendingAutoselectedOption;o?(this._clearPreviousSelectedOption(o),this._assignOptionValue(o.value),this._onChange(o.value),i._emitSelectEvent(o),this._element.nativeElement.focus()):i.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),i._animationDone?i._animationDone.pipe(Pt(1)).subscribe(()=>this._onChange(null)):this._onChange(null)),this.closePanel()}_clearPreviousSelectedOption(e,i){this.autocomplete?.options?.forEach(o=>{o!==e&&o.selected&&o.deselect(i)})}_attachOverlay(){let e=this._overlayRef;e?(this._positionStrategy.setOrigin(this._getConnectedElement()),e.updateSize({width:this._getPanelWidth()})):(this._portal=new ya(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),e=this._overlay.create(this._getOverlayConfig()),this._overlayRef=e,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&e&&e.updateSize({width:this._getPanelWidth()})})),e&&!e.hasAttached()&&(e.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=!0,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this._applyModalPanelOwnership(),this._captureValueOnAttach(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened()}_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){const e=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=e.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=e.outsidePointerEvents().subscribe())}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=null}_getOverlayConfig(){return new Bl({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,panelClass:this._defaults?.overlayPanelClass})}_getOverlayPosition(){const e=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(e),this._positionStrategy=e,e}_setStrategyPositions(e){const i=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],o=this._aboveClass,r=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:o},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:o}];let a;a="above"===this.position?r:"below"===this.position?i:[...i,...r],e.withPositions(a)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const e=this.autocomplete;if(e.autoActiveFirstOption){let i=-1;for(let o=0;o .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=this.autocomplete.id;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",this.autocomplete.id),this._trackedModal=null)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Qn),_(vi),_(We),_(Lt),_(gR),_(fn,8),_(th,9),_(dt,8),_(va),_(fR,8))};static#t=this.\u0275dir=Q({type:t,inputs:{autocomplete:[ge.None,"matAutocomplete","autocomplete"],position:[ge.None,"matAutocompletePosition","position"],connectedTo:[ge.None,"matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:[ge.None,"autocomplete","autocompleteAttribute"],autocompleteDisabled:[ge.None,"matAutocompleteDisabled","autocompleteDisabled"]},features:[fi]})}return t})(),_R=(()=>{class t extends Xee{constructor(){super(...arguments),this._aboveClass="mat-mdc-autocomplete-panel-above"}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-mdc-autocomplete-trigger"],hostVars:7,hostBindings:function(i,o){1&i&&A("focusin",function(){return o._handleFocus()})("blur",function(){return o._onTouched()})("input",function(a){return o._handleInput(a)})("keydown",function(a){return o._handleKeydown(a)})("click",function(){return o._handleClick()}),2&i&&Je("autocomplete",o.autocompleteAttribute)("role",o.autocompleteDisabled?null:"combobox")("aria-autocomplete",o.autocompleteDisabled?null:"list")("aria-activedescendant",o.panelOpen&&o.activeOption?o.activeOption.id:null)("aria-expanded",o.autocompleteDisabled?null:o.panelOpen.toString())("aria-controls",o.autocompleteDisabled||!o.panelOpen||null==o.autocomplete?null:o.autocomplete.id)("aria-haspopup",o.autocompleteDisabled?null:"listbox")},exportAs:["matAutocompleteTrigger"],features:[Ye([Zee]),ve]})}return t})(),bR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[Qee],imports:[dc,sf,Mt,Vn,ms,sf,Mt]})}return t})();function Jee(t,n){if(1&t&&(d(0,"mat-option",19),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),De(" ",e," ")}}function ete(t,n){if(1&t){const e=_e();d(0,"mat-form-field",16)(1,"mat-select",17),A("selectionChange",function(o){return ie(e),ne(C(2)._changePageSize(o.value))}),y(2,Jee,2,2,"mat-option",18),l()()}if(2&t){const e=C(2);f("appearance",e._formFieldAppearance)("color",e.color),m(),f("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),m(),f("ngForOf",e._displayedPageSizeOptions)}}function tte(t,n){if(1&t&&(d(0,"div",20),h(1),l()),2&t){const e=C(2);m(),Pe(e.pageSize)}}function ite(t,n){if(1&t&&(d(0,"div",12)(1,"div",13),h(2),l(),y(3,ete,3,8,"mat-form-field",14)(4,tte,2,1,"div",15),l()),2&t){const e=C();m(),vv("id",e._pageSizeLabelId),m(),De(" ",e._intl.itemsPerPageLabel," "),m(),f("ngIf",e._displayedPageSizeOptions.length>1),m(),f("ngIf",e._displayedPageSizeOptions.length<=1)}}function nte(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().firstPage())}),ei(),d(1,"svg",7),D(2,"path",22),l()()}if(2&t){const e=C();f("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Je("aria-label",e._intl.firstPageLabel)}}function ote(t,n){if(1&t){const e=_e();ei(),mr(),d(0,"button",23),A("click",function(){return ie(e),ne(C().lastPage())}),ei(),d(1,"svg",7),D(2,"path",24),l()()}if(2&t){const e=C();f("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Je("aria-label",e._intl.lastPageLabel)}}let sg=(()=>{class t{constructor(){this.changes=new qe,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(e,i,o)=>{if(0==o||0==i)return`0 of ${o}`;const r=e*i;return`${r+1} \u2013 ${r<(o=Math.max(o,0))?Math.min(r+i,o):r+i} of ${o}`}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ate={provide:sg,deps:[[new za,new Vc,sg]],useFactory:function rte(t){return t||new sg}},cte=new se("MAT_PAGINATOR_DEFAULT_OPTIONS"),lte=Vr(gq(class{}));let dte=(()=>{class t extends lte{get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(yi(e),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(e){this._length=yi(e),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(yi(e),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>yi(i)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(e){this._hidePageSize=$e(e)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(e){this._showFirstLastButtons=$e(e)}constructor(e,i,o){if(super(),this._intl=e,this._changeDetectorRef=i,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.selectConfig={},this.page=new Ne,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),o){const{pageSize:r,pageSizeOptions:a,hidePageSize:s,showFirstLastButtons:c}=o;null!=r&&(this._pageSize=r),null!=a&&(this._pageSizeOptions=a),null!=s&&(this._hidePageSize=s),null!=c&&(this._showFirstLastButtons=c)}}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",selectConfig:"selectConfig"},outputs:{page:"page"},features:[ve]})}return t})(),ute=0,WC=(()=>{class t extends dte{constructor(e,i,o){super(e,i,o),this._pageSizeLabelId="mat-paginator-page-size-label-"+ute++,this._formFieldAppearance=o?.formFieldAppearance||"outline"}static#e=this.\u0275fac=function(i){return new(i||t)(_(sg),_(Lt),_(cte,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[ve],decls:14,vars:14,consts:[[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],["class","mat-mdc-paginator-page-size",4,"ngIf"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-page-size-label",3,"id"],["class","mat-mdc-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-mdc-paginator-page-size-value",4,"ngIf"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],["hideSingleSelectionIndicator","",3,"value","disabled","aria-labelledby","panelClass","disableOptionCentering","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-mdc-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,ite,5,4,"div",2),d(3,"div",3)(4,"div",4),h(5),l(),y(6,nte,3,5,"button",5),d(7,"button",6),A("click",function(){return o.previousPage()}),ei(),d(8,"svg",7),D(9,"path",8),l()(),mr(),d(10,"button",9),A("click",function(){return o.nextPage()}),ei(),d(11,"svg",7),D(12,"path",10),l()(),y(13,ote,3,5,"button",11),l()()()),2&i&&(m(2),f("ngIf",!o.hidePageSize),m(3),De(" ",o._intl.getRangeLabel(o.pageIndex,o.pageSize,o.length)," "),m(),f("ngIf",o.showFirstLastButtons),m(),f("matTooltip",o._intl.previousPageLabel)("matTooltipDisabled",o._previousButtonsDisabled())("matTooltipPosition","above")("disabled",o._previousButtonsDisabled()),Je("aria-label",o._intl.previousPageLabel),m(3),f("matTooltip",o._intl.nextPageLabel)("matTooltipDisabled",o._nextButtonsDisabled())("matTooltipPosition","above")("disabled",o._nextButtonsDisabled()),Je("aria-label",o._intl.nextPageLabel),m(3),f("ngIf",o.showFirstLastButtons))},dependencies:[rn,It,ba,Di,Xn,Tn,vn],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),vR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ate],imports:[Vn,lf,uC,$C]})}return t})();const hte=[FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR];let mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[hte,FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR]})}return t})();const pte=["input"],fte=["*"];let yR=0;class CR{constructor(n,e){this.source=n,this.value=e}}const gte={provide:uo,useExisting:Qt(()=>cg),multi:!0},wR=new se("MatRadioGroup"),_te=new se("mat-radio-default-options",{providedIn:"root",factory:function bte(){return{color:"accent"}}});let vte=(()=>{class t{get name(){return this._name}set name(e){this._name=e,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition="before"===e?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._markRadiosForCheck()}get required(){return this._required}set required(e){this._required=$e(e),this._markRadiosForCheck()}constructor(e){this._changeDetector=e,this._value=null,this._name="mat-radio-group-"+yR++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ne}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(e=>e===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(e=>{e.name=this.name,e._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new CR(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(e=>e._markForCheck())}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}})}return t})();class yte{constructor(n){this._elementRef=n}}const Cte=ns(os(yte));let wte=(()=>{class t extends Cte{get checked(){return this._checked}set checked(e){const i=$e(e);this._checked!==i&&(this._checked=i,i&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!i&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),i&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(e){this._setDisabled($e(e))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=$e(e)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(e){this._color=e}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetector=o,this._focusMonitor=r,this._radioDispatcher=a,this._providerOverride=c,this._uniqueId="mat-radio-"+ ++yR,this.id=this._uniqueId,this.change=new Ne,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=e,this._noopAnimations="NoopAnimations"===s,u&&(this.tabIndex=yi(u,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new CR(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(e){e.stopPropagation()}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_updateTabIndex(){const e=this.radioGroup;let i;if(i=e&&e.selected&&!this.disabled?e.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const o=this._inputElement?.nativeElement;o&&(o.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(pte,5),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first)}},inputs:{id:"id",name:"name",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[ve]})}return t})(),cg=(()=>{class t extends vte{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-radio-group"]],contentQueries:function(i,o,r){if(1&i&>(r,lg,5),2&i){let a;Oe(a=Ae())&&(o._radios=a)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],exportAs:["matRadioGroup"],features:[Ye([gte,{provide:wR,useExisting:t}]),ve]})}return t})(),lg=(()=>{class t extends wte{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u)}static#e=this.\u0275fac=function(i){return new(i||t)(_(wR,8),_(Be),_(Lt),_(zo),_(N0),_(ui,8),_(_te,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,o){1&i&&A("focus",function(){return o._inputElement.nativeElement.focus()}),2&i&&(Je("id",o.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),et("mat-primary","primary"===o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("mat-mdc-radio-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[ve],ngContentSelectors:fte,decls:13,vars:17,consts:[[1,"mdc-form-field"],["formField",""],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"id","checked","disabled","required","change"],["input",""],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0,1)(2,"div",2)(3,"div",3),A("click",function(a){return o._onTouchTargetClick(a)}),l(),d(4,"input",4,5),A("change",function(a){return o._onInputInteraction(a)}),l(),d(6,"div",6),D(7,"div",7)(8,"div",8),l(),d(9,"div",9),D(10,"div",10),l()(),d(11,"label",11),Ze(12),l()()),2&i){const r=Ft(1);et("mdc-form-field--align-end","before"==o.labelPosition),m(2),et("mdc-radio--disabled",o.disabled),m(2),f("id",o.inputId)("checked",o.checked)("disabled",o.disabled)("required",o.required),Je("name",o.name)("value",o.value)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby),m(5),f("matRippleTrigger",r)("matRippleDisabled",o._isRippleDisabled())("matRippleCentered",!0),m(2),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),xte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,as,Mt]})}return t})();class Dte{constructor(n,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),o=i.style;o.position="fixed",o.top=o.opacity="0",o.left="-999em",i.setAttribute("aria-hidden","true"),i.value=n,i.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(i)}copy(){const n=this._textarea;let e=!1;try{if(n){const i=this._document.activeElement;n.select(),n.setSelectionRange(0,n.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const n=this._textarea;n&&(n.remove(),this._textarea=void 0)}}let Ste=(()=>{class t{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),o=i.copy();return i.destroy(),o}beginCopy(e){return new Dte(e,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const kte=new se("CDK_COPY_TO_CLIPBOARD_CONFIG");let KC=(()=>{class t{constructor(e,i,o){this._clipboard=e,this._ngZone=i,this.text="",this.attempts=1,this.copied=new Ne,this._pending=new Set,o&&null!=o.attempts&&(this.attempts=o.attempts)}copy(e=this.attempts){if(e>1){let i=e;const o=this._clipboard.beginCopy(this.text);this._pending.add(o);const r=()=>{const a=o.copy();a||! --i||this._destroyed?(this._currentTimeout=null,this._pending.delete(o),o.destroy(),this.copied.emit(a)):this._currentTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(r,1))};r()}else this.copied.emit(this._clipboard.copy(this.text))}ngOnDestroy(){this._currentTimeout&&clearTimeout(this._currentTimeout),this._pending.forEach(e=>e.destroy()),this._pending.clear(),this._destroyed=!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ste),_(We),_(kte,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCopyToClipboard",""]],hostBindings:function(i,o){1&i&&A("click",function(){return o.copy()})},inputs:{text:[ge.None,"cdkCopyToClipboard","text"],attempts:[ge.None,"cdkCopyToClipboardAttempts","attempts"]},outputs:{copied:"cdkCopyToClipboardCopied"}})}return t})(),Mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const dg=L(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function ug(t){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function xR(t=Tte){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Tte(){return new dg}function hc(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,Pt(1),e?ug(n):xR(()=>new dg))}function ZC(t){return t<=0?()=>jo:$i((n,e)=>{let i=[];n.subscribe(Fi(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}const Bt="primary",uh=Symbol("RouteTitle");class Ate{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function ql(t){return new Ate(t)}function Pte(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function SR(t){return t.length>0?t[t.length-1]:null}function vs(t){return Pl(t)?t:pu(t)?Xi(Promise.resolve(t)):Ke(t)}const Nte={exact:function TR(t,n,e){if(!mc(t.segments,n.segments)||!hg(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!TR(t.children[i],n.children[i],e))return!1;return!0},subset:IR},kR={exact:function Fte(t,n){return Hr(t,n)},subset:function Lte(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>DR(t[e],n[e]))},ignored:()=>!0};function MR(t,n,e){return Nte[e.paths](t.root,n.root,e.matrixParams)&&kR[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function IR(t,n,e){return ER(t,n,n.segments,e)}function ER(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!mc(o,e)||n.hasChildren()||!hg(o,e,i))}if(t.segments.length===e.length){if(!mc(t.segments,e)||!hg(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!IR(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(mc(t.segments,o)&&hg(t.segments,o,i)&&t.children[Bt])&&ER(t.children[Bt],n,r,i)}}function hg(t,n,e){return n.every((i,o)=>kR[e](t[o].parameters,i.parameters))}class Wl{constructor(n=new Si([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return jte.serialize(this)}}class Si{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return mg(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=ql(this.parameters),this._parameterMap}toString(){return PR(this)}}function mc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Kl=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new QC,providedIn:"root"})}return t})();class QC{parse(n){const e=new Qte(n);return new Wl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${mh(n.root,!0)}`,i=function Ute(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${pg(e)}=${pg(o)}`).join("&"):`${pg(e)}=${pg(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function zte(t){return encodeURI(t)}(n.fragment)}`:""}`}}const jte=new QC;function mg(t){return t.segments.map(n=>PR(n)).join("/")}function mh(t,n){if(!t.hasChildren())return mg(t);if(n){const e=t.children[Bt]?mh(t.children[Bt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Bt&&i.push(`${o}:${mh(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function Vte(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Bt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Bt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Bt?[mh(t.children[Bt],!1)]:[`${o}:${mh(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Bt]?`${mg(t)}/${e[0]}`:`${mg(t)}/(${e.join("//")})`}}function OR(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function pg(t){return OR(t).replace(/%3B/gi,";")}function XC(t){return OR(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fg(t){return decodeURIComponent(t)}function AR(t){return fg(t.replace(/\+/g,"%20"))}function PR(t){return`${XC(t.path)}${function Hte(t){return Object.entries(t).map(([n,e])=>`;${XC(n)}=${XC(e)}`).join("")}(t.parameters)}`}const $te=/^[^\/()?;#]+/;function JC(t){const n=t.match($te);return n?n[0]:""}const Gte=/^[^\/()?;=#]+/,Wte=/^[^=?&#]+/,Zte=/^[^&#]+/;class Qte{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Si([],{}):new Si([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Bt]=new Si(n,e)),i}parseSegment(){const n=JC(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new ue(4009,!1);return this.capture(n),new hh(fg(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function qte(t){const n=t.match(Gte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=JC(this.remaining);o&&(i=o,this.capture(i))}n[fg(e)]=fg(i)}parseQueryParam(n){const e=function Kte(t){const n=t.match(Wte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function Yte(t){const n=t.match(Zte);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=AR(e),r=AR(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=JC(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new ue(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Bt);const a=this.parseChildren();e[r]=1===Object.keys(a).length?a[Bt]:new Si([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new ue(4011,!1)}}function RR(t){return t.segments.length>0?new Si([],{[Bt]:t}):t}function NR(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=NR(o);if(i===Bt&&0===r.segments.length&&r.hasChildren())for(const[a,s]of Object.entries(r.children))n[a]=s;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Xte(t){if(1===t.numberOfChildren&&t.children[Bt]){const n=t.children[Bt];return new Si(t.segments.concat(n.segments),n.children)}return t}(new Si(t.segments,n))}function Zl(t){return t instanceof Wl}function FR(t){let n;const o=RR(function e(r){const a={};for(const c of r.children){const u=e(c);a[c.outlet]=u}const s=new Si(r.url,a);return r===t&&(n=s),s}(t.root));return n??o}function LR(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return ew(o,o,o,e,i);const r=function eie(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new VR(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,a)=>{if("object"==typeof r&&null!=r){if(r.outlets){const s={};return Object.entries(r.outlets).forEach(([c,u])=>{s[c]="string"==typeof u?u.split("/"):u}),[...o,{outlets:s}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===a?(r.split("/").forEach((s,c)=>{0==c&&"."===s||(0==c&&""===s?e=!0:".."===s?n++:""!=s&&o.push(s))}),o):[...o,r]},[]);return new VR(e,n,i)}(n);if(r.toRoot())return ew(o,o,new Si([],{}),e,i);const a=function tie(t,n,e){if(t.isAbsolute)return new _g(n,!0,0);if(!e)return new _g(n,!1,NaN);if(null===e.parent)return new _g(e,!0,0);const i=gg(t.commands[0])?0:1;return function iie(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new ue(4005,!1);o=i.segments.length}return new _g(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),s=a.processChildren?fh(a.segmentGroup,a.index,r.commands):jR(a.segmentGroup,a.index,r.commands);return ew(o,a.segmentGroup,s,e,i)}function gg(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function ph(t){return"object"==typeof t&&null!=t&&t.outlets}function ew(t,n,e,i,o){let a,r={};i&&Object.entries(i).forEach(([c,u])=>{r[c]=Array.isArray(u)?u.map(p=>`${p}`):`${u}`}),a=t===n?e:BR(t,n,e);const s=RR(NR(a));return new Wl(s,r,o)}function BR(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:BR(r,n,e)}),new Si(t.segments,i)}class VR{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&gg(i[0]))throw new ue(4003,!1);const o=i.find(ph);if(o&&o!==SR(i))throw new ue(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class _g{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function jR(t,n,e){if(t??=new Si([],{}),0===t.segments.length&&t.hasChildren())return fh(t,n,e);const i=function oie(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const a=t.segments[o],s=e[i];if(ph(s))break;const c=`${s}`,u=i0&&void 0===c)break;if(c&&u&&"object"==typeof u&&void 0===u.outlets){if(!HR(c,u,a))return r;i+=2}else{if(!HR(c,{},a))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Bt)&&t.children[Bt]&&1===t.numberOfChildren&&0===t.children[Bt].segments.length){const r=fh(t.children[Bt],n,e);return new Si(t.segments,r.children)}return Object.entries(i).forEach(([r,a])=>{"string"==typeof a&&(a=[a]),null!==a&&(o[r]=jR(t.children[r],n,a))}),Object.entries(t.children).forEach(([r,a])=>{void 0===i[r]&&(o[r]=a)}),new Si(t.segments,o)}}function tw(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=tw(new Si([],{}),0,i))}),n}function zR(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function HR(t,n,e){return t==e.path&&Hr(n,e.parameters)}const gh="imperative";var Xt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Xt||{});class Ur{constructor(n,e){this.id=n,this.url=e}}class bg extends Ur{constructor(n,e,i="imperative",o=null){super(n,e),this.type=Xt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Oa extends Ur{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=Xt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var tr=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(tr||{}),vg=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(vg||{});class Yl extends Ur{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ql extends Ur{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationSkipped}}class yg extends Ur{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=Xt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class UR extends Ur{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class aie extends Ur{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sie extends Ur{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=Xt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class cie extends Ur{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class lie extends Ur{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class die{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class uie{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class hie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pie{constructor(n){this.snapshot=n,this.type=Xt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class fie{constructor(n){this.snapshot=n,this.type=Xt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $R{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=Xt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class iw{}class nw{constructor(n){this.url=n}}class gie{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new _h,this.attachRef=null}}let _h=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new gie,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class GR{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=ow(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=ow(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=rw(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return rw(n,this._root).map(e=>e.value)}}function ow(t,n){if(t===n.value)return n;for(const e of n.children){const i=ow(t,e);if(i)return i}return null}function rw(t,n){if(t===n.value)return[n];for(const e of n.children){const i=rw(t,e);if(i.length)return i.unshift(n),i}return[]}class Dr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Xl(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class qR extends GR{constructor(n,e){super(n),this.snapshot=e,cw(this,n)}toString(){return this.snapshot.toString()}}function WR(t){const n=function _ie(t){const r=new sw([],{},{},"",{},Bt,t,null,{});return new KR("",new Dr(r,[]))}(t),e=new mt([new hh("",{})]),i=new mt({}),o=new mt({}),r=new mt({}),a=new mt(""),s=new Jl(e,i,r,a,o,Bt,t,n.root);return s.snapshot=n.root,new qR(new Dr(s,[]),n)}class Jl{constructor(n,e,i,o,r,a,s,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=a,this.component=s,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(nt(u=>u[uh]))??Ke(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(nt(n=>ql(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(nt(n=>ql(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function aw(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&YR(o)&&(i.resolve[uh]=o.title),i}class sw{get title(){return this.data?.[uh]}constructor(n,e,i,o,r,a,s,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=a,this.component=s,this.routeConfig=c,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=ql(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class KR extends GR{constructor(n,e){super(e),this.url=n,cw(this,e)}toString(){return ZR(this._root)}}function cw(t,n){n.value._routerState=t,n.children.forEach(e=>cw(t,e))}function ZR(t){const n=t.children.length>0?` { ${t.children.map(ZR).join(", ")} } `:"";return`${t.value}${n}`}function lw(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Hr(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Hr(n.params,e.params)||t.paramsSubject.next(e.params),function Rte(t,n){if(t.length!==n.length)return!1;for(let e=0;eHr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||dw(t.parent,n.parent))}function YR(t){return"string"==typeof t.title||null===t.title}let Cg=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Bt,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=xe(_h),this.location=xe(vi),this.changeDetector=xe(Lt),this.environmentInjector=xe(Ao),this.inputBinder=xe(wg,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new ue(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new ue(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new ue(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new ue(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,c=new bie(e,s,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:c,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[fi]})}return t})();class bie{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Jl?this.route:n===_h?this.childContexts:this.parent.get(n,e)}}const wg=new se("");let QR=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Xs([i.queryParams,i.params,i.data]).pipe(gn(([r,a,s],c)=>(s={...r,...a,...s},0===c?Ke(s):Promise.resolve(s)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function i7(t){const n=Ht(t);if(!n)return null;const e=new Yd(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(a)for(const{templateName:s}of a.inputs)e.activatedComponentRef.setInput(s,r[s]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function bh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function yie(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return bh(t,i,o);return bh(t,i)})}(t,n,e);return new Dr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const a=r.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(s=>bh(t,s)),a}}const i=function Cie(t){return new Jl(new mt(t.url),new mt(t.params),new mt(t.queryParams),new mt(t.fragment),new mt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>bh(t,r));return new Dr(i,o)}}const XR="ngNavigationCancelingError";function JR(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Zl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=eN(!1,tr.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function eN(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[XR]=!0,e.cancellationCode=n,e}function tN(t){return!!t&&t[XR]}let iN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],standalone:!0,features:[AM],decls:1,vars:0,template:function(i,o){1&i&&D(0,"router-outlet")},dependencies:[Cg],encapsulation:2})}return t})();function uw(t){const n=t.children&&t.children.map(uw),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Bt&&(e.component=iN),e}function $r(t){return t.outlet||Bt}function vh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Iie{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),lw(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{const a=r.value.outlet;this.deactivateRoutes(r,o[a],i),delete o[a]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);if(i&&i.outlet){const a=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:s})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new fie(r.value.snapshot))}),n.children.length&&this.forwardEvent(new mie(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(lw(o),o===r)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const s=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(s.contexts),a.attachRef=s.componentRef,a.route=s.route.value,a.outlet&&a.outlet.attach(s.componentRef,s.route.value),lw(s.route.value),this.activateChildRoutes(n,null,a.children)}else{const s=vh(o.snapshot);a.attachRef=null,a.route=o,a.injector=s,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class nN{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class xg{constructor(n,e){this.component=n,this.route=e}}function Eie(t,n,e){const i=t._root;return yh(i,n?n._root:null,e,[i.value])}function ed(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function WF(t){return null!==Vh(t)}(t)?n.get(t):t:i}function yh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Xl(n);return t.children.forEach(a=>{(function Aie(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,a=n?n.value:null,s=e?e.getContext(t.value.outlet):null;if(a&&r.routeConfig===a.routeConfig){const c=function Pie(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!mc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!mc(t.url,n.url)||!Hr(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!dw(t,n)||!Hr(t.queryParams,n.queryParams);default:return!dw(t,n)}}(a,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new nN(i)):(r.data=a.data,r._resolvedData=a._resolvedData),yh(t,n,r.component?s?s.children:null:e,i,o),c&&s&&s.outlet&&s.outlet.isActivated&&o.canDeactivateChecks.push(new xg(s.outlet.component,a))}else a&&Ch(n,s,o),o.canActivateChecks.push(new nN(i)),yh(t,null,r.component?s?s.children:null:e,i,o)})(a,r[a.value.outlet],e,i.concat([a.value]),o),delete r[a.value.outlet]}),Object.entries(r).forEach(([a,s])=>Ch(s,e.getContext(a),o)),o}function Ch(t,n,e){const i=Xl(t),o=t.value;Object.entries(i).forEach(([r,a])=>{Ch(a,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new xg(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function wh(t){return"function"==typeof t}function oN(t){return t instanceof dg||"EmptyError"===t?.name}const Dg=Symbol("INITIAL_VALUE");function td(){return gn(t=>Xs(t.map(n=>n.pipe(Pt(1),an(Dg)))).pipe(nt(n=>{for(const e of n)if(!0!==e){if(e===Dg)return Dg;if(!1===e||e instanceof Wl)return e}return!0}),kt(n=>n!==Dg),Pt(1)))}function rN(t){return function WN(...t){return Tw(t)}(qt(n=>{if(Zl(n))throw JR(0,n)}),nt(n=>!0===n))}class hw{constructor(n){this.segmentGroup=n||null}}class mw extends Error{constructor(n){super(),this.urlTree=n}}function id(t){return ju(new hw(t))}class Xie{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ke(i);if(o.numberOfChildren>1||!o.children[Bt])return ju(new ue(4e3,!1));o=o.children[Bt]}}applyRedirectCommands(n,e,i){const o=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if(e.startsWith("/"))throw new mw(o);return o}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new Wl(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&r.startsWith(":")){const s=r.substring(1);i[o]=e[s]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([s,c])=>{a[s]=this.createSegmentGroup(n,c,i,o)}),new Si(r,a)}createSegments(n,e,i,o){return e.map(r=>r.path.startsWith(":")?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new ue(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const pw={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Jie(t,n,e,i,o){const r=fw(t,n,e);return r.matched?(i=function xie(t,n){return t.providers&&!t._injector&&(t._injector=Qb(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function Zie(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?Ke(o.map(a=>{const s=ed(a,t);return vs(function Vie(t){return t&&wh(t.canMatch)}(s)?s.canMatch(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN()):Ke(!0)}(i,n,e).pipe(nt(a=>!0===a?r:{...pw}))):Ke(r)}function fw(t,n,e){if("**"===n.path)return function ene(t){return{matched:!0,parameters:t.length>0?SR(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...pw}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Pte)(e,t,n);if(!o)return{...pw};const r={};Object.entries(o.posParams??{}).forEach(([s,c])=>{r[s]=c.path});const a=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function aN(t,n,e,i){return e.length>0&&function nne(t,n,e){return e.some(i=>Sg(t,n,i)&&$r(i)!==Bt)}(t,e,i)?{segmentGroup:new Si(n,ine(i,new Si(e,t.children))),slicedSegments:[]}:0===e.length&&function one(t,n,e){return e.some(i=>Sg(t,n,i))}(t,e,i)?{segmentGroup:new Si(t.segments,tne(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Si(t.segments,t.children),slicedSegments:e}}function tne(t,n,e,i){const o={};for(const r of e)if(Sg(t,n,r)&&!i[$r(r)]){const a=new Si([],{});o[$r(r)]=a}return{...i,...o}}function ine(t,n){const e={};e[Bt]=n;for(const i of t)if(""===i.path&&$r(i)!==Bt){const o=new Si([],{});e[$r(i)]=o}return e}function Sg(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class sne{}class dne{constructor(n,e,i,o,r,a,s){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=a,this.urlSerializer=s,this.applyRedirects=new Xie(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new ue(4002,`'${n.segmentGroup}'`)}recognize(){const n=aN(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(nt(e=>{const i=new sw([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Bt,this.rootComponentType,null,{}),o=new Dr(i,e),r=new KR("",o),a=function Jte(t,n,e=null,i=null){return LR(FR(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(r._root,null),{state:r,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Bt).pipe(Li(i=>{if(i instanceof mw)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof hw?this.noMatchError(i):i}))}inheritParamsAndData(n,e){const i=n.value,o=aw(i,e,this.paramsInheritanceStrategy);i.params=Object.freeze(o.params),i.data=Object.freeze(o.data),n.children.forEach(r=>this.inheritParamsAndData(r,i))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0).pipe(nt(r=>r instanceof Dr?[r]:[]))}processChildren(n,e,i){const o=[];for(const r of Object.keys(i.children))"primary"===r?o.unshift(r):o.push(r);return Xi(o).pipe(Ol(r=>{const a=i.children[r],s=function Mie(t,n){const e=t.filter(i=>$r(i)===n);return e.push(...t.filter(i=>$r(i)!==n)),e}(e,r);return this.processSegmentGroup(n,s,a,r)}),function Ete(t,n){return $i(function Ite(t,n,e,i,o){return(r,a)=>{let s=e,c=n,u=0;r.subscribe(Fi(a,p=>{const g=u++;c=s?t(c,p,g):(s=!0,p),i&&a.next(c)},o&&(()=>{s&&a.next(c),a.complete()})))}}(t,n,arguments.length>=2,!0))}((r,a)=>(r.push(...a),r)),ug(null),function Ote(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,ZC(1),e?ug(n):xR(()=>new dg))}(),Pn(r=>{if(null===r)return id(i);const a=sN(r);return function une(t){t.sort((n,e)=>n.value.outlet===Bt?-1:e.value.outlet===Bt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),Ke(a)}))}processSegment(n,e,i,o,r,a){return Xi(e).pipe(Ol(s=>this.processSegmentAgainstRoute(s._injector??n,e,s,i,o,r,a).pipe(Li(c=>{if(c instanceof hw)return Ke(null);throw c}))),hc(s=>!!s),Li(s=>{if(oN(s))return function ane(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?Ke(new sne):id(i);throw s}))}processSegmentAgainstRoute(n,e,i,o,r,a,s){return function rne(t,n,e,i){return!!($r(t)===i||i!==Bt&&Sg(n,e,t))&&fw(n,t,e).matched}(i,o,r,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,a):id(o):id(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,a){const{matched:s,consumedSegments:c,positionalParamSegments:u,remainingSegments:p}=fw(e,o,r);if(!s)return id(e);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const g=this.applyRedirects.applyRedirectCommands(c,o.redirectTo,u);return this.applyRedirects.lineralizeSegments(o,g).pipe(Pn(b=>this.processSegment(n,i,e,b.concat(p),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,r){const a=Jie(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(gn(s=>s.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(gn(({routes:c})=>{const u=i._loadedInjector??n,{consumedSegments:p,remainingSegments:g,parameters:b}=s,w=new sw(p,b,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function mne(t){return t.data||{}}(i),$r(i),i.component??i._loadedComponent??null,i,function pne(t){return t.resolve||{}}(i)),{segmentGroup:k,slicedSegments:T}=aN(e,p,g,c);if(0===T.length&&k.hasChildren())return this.processChildren(u,c,k).pipe(nt(re=>null===re?null:new Dr(w,re)));if(0===c.length&&0===T.length)return Ke(new Dr(w,[]));const z=$r(i)===r;return this.processSegment(u,c,k,T,z?Bt:r,!0).pipe(nt(re=>new Dr(w,re instanceof Dr?[re]:[])))})):id(e)))}getChildConfig(n,e,i){return e.children?Ke({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?Ke({routes:e._loadedRoutes,injector:e._loadedInjector}):function Kie(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?Ke(!0):Ke(o.map(a=>{const s=ed(a,t);return vs(function Nie(t){return t&&wh(t.canLoad)}(s)?s.canLoad(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN())}(n,e,i).pipe(Pn(o=>o?this.configLoader.loadChildren(n,e).pipe(qt(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function Qie(t){return ju(eN(!1,tr.GuardRejected))}())):Ke({routes:[],injector:n})}}function hne(t){const n=t.value.routeConfig;return n&&""===n.path}function sN(t){const n=[],e=new Set;for(const i of t){if(!hne(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=sN(i.children);n.push(new Dr(i.value,o))}return n.filter(i=>!e.has(i))}function cN(t){const n=t.children.map(e=>cN(e)).flat();return[t,...n]}function gw(t){return gn(n=>{const e=t(n);return e?Xi(e).pipe(nt(()=>n)):Ke(n)})}let lN=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Bt);return i}getResolvedTitleForRoute(e){return e.data[uh]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(yne),providedIn:"root"})}return t})(),yne=(()=>{class t extends lN{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(yH))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nd=new se("",{providedIn:"root",factory:()=>({})}),od=new se("");let _w=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=xe(wT)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ke(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=vs(e.loadComponent()).pipe(nt(dN),qt(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),ec(()=>{this.componentLoaders.delete(e)})),o=new R0(i,()=>new qe).pipe(P0());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ke({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function Cne(t,n,e,i){return vs(t.loadChildren()).pipe(nt(dN),Pn(o=>o instanceof RS||Array.isArray(o)?Ke(o):Xi(n.compileModuleAsync(o))),nt(o=>{i&&i(t);let r,a,s=!1;return Array.isArray(o)?(a=o,!0):(r=o.create(e).injector,a=r.get(od,[],{optional:!0,self:!0}).flat()),{routes:a.map(uw),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(ec(()=>{this.childrenLoaders.delete(i)})),a=new R0(r,()=>new qe).pipe(P0());return this.childrenLoaders.set(i,a),a}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function dN(t){return function wne(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let bw=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(xne),providedIn:"root"})}return t})(),xne=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uN=new se(""),hN=new se("");function Dne(t,n,e){const i=t.get(hN),o=t.get(dt);return t.get(We).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let r;const a=new Promise(u=>{r=u}),s=o.startViewTransition(()=>(r(),function Sne(t){return new Promise(n=>{JD(n,{injector:t})})}(t))),{onViewTransitionCreated:c}=i;return c&&Ha(t,()=>c({transition:s,from:n,to:e})),a})}let kg=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new qe,this.transitionAbortSubject=new qe,this.configLoader=xe(_w),this.environmentInjector=xe(Ao),this.urlSerializer=xe(Kl),this.rootContexts=xe(_h),this.location=xe(Ws),this.inputBindingEnabled=null!==xe(wg,{optional:!0}),this.titleStrategy=xe(lN),this.options=xe(nd,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=xe(bw),this.createViewTransition=xe(uN,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>Ke(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new uie(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new die(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new mt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:gh,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(kt(r=>0!==r.id),nt(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),gn(r=>{this.currentTransition=r;let a=!1,s=!1;return Ke(r).pipe(qt(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gn(c=>{const u=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!u&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.rawUrl),g,vg.IgnoredSameUrlNavigation)),c.resolve(null),jo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return Ke(c).pipe(gn(g=>{const b=this.transitions?.getValue();return this.events.next(new bg(g.id,this.urlSerializer.serialize(g.extractedUrl),g.source,g.restoredState)),b!==this.transitions?.getValue()?jo:Promise.resolve(g)}),function fne(t,n,e,i,o,r){return Pn(a=>function cne(t,n,e,i,o,r,a="emptyOnly"){return new dne(t,n,e,i,o,a,r).recognize()}(t,n,e,i,a.extractedUrl,o,r).pipe(nt(({state:s,tree:c})=>({...a,targetSnapshot:s,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),qt(g=>{r.targetSnapshot=g.targetSnapshot,r.urlAfterRedirects=g.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:g.urlAfterRedirects};const b=new UR(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(b)}));if(u&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:g,extractedUrl:b,source:w,restoredState:k,extras:T}=c,z=new bg(g,this.urlSerializer.serialize(b),w,k);this.events.next(z);const re=WR(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:re,urlAfterRedirects:b,extras:{...T,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=b,Ke(r)}{const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.extractedUrl),g,vg.IgnoredByUrlHandlingStrategy)),c.resolve(null),jo}}),qt(c=>{const u=new aie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),nt(c=>(this.currentTransition=r={...c,guards:Eie(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function jie(t,n){return Pn(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:a}}=e;return 0===a.length&&0===r.length?Ke({...e,guardsResult:!0}):function zie(t,n,e,i){return Xi(t).pipe(Pn(o=>function Wie(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?Ke(r.map(s=>{const c=vh(n)??o,u=ed(s,c);return vs(function Bie(t){return t&&wh(t.canDeactivate)}(u)?u.canDeactivate(t,n,e,i):Ha(c,()=>u(t,n,e,i))).pipe(hc())})).pipe(td()):Ke(!0)}(o.component,o.route,e,n,i)),hc(o=>!0!==o,!0))}(a,i,o,t).pipe(Pn(s=>s&&function Rie(t){return"boolean"==typeof t}(s)?function Hie(t,n,e,i){return Xi(n).pipe(Ol(o=>Nu(function $ie(t,n){return null!==t&&n&&n(new hie(t)),Ke(!0)}(o.route.parent,i),function Uie(t,n){return null!==t&&n&&n(new pie(t)),Ke(!0)}(o.route,i),function qie(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(a=>function Oie(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>Vl(()=>Ke(a.guards.map(c=>{const u=vh(a.node)??e,p=ed(c,u);return vs(function Lie(t){return t&&wh(t.canActivateChild)}(p)?p.canActivateChild(i,t):Ha(u,()=>p(i,t))).pipe(hc())})).pipe(td())));return Ke(r).pipe(td())}(t,o.path,e),function Gie(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return Ke(!0);const o=i.map(r=>Vl(()=>{const a=vh(n)??e,s=ed(r,a);return vs(function Fie(t){return t&&wh(t.canActivate)}(s)?s.canActivate(n,t):Ha(a,()=>s(n,t))).pipe(hc())}));return Ke(o).pipe(td())}(t,o.route,e))),hc(o=>!0!==o,!0))}(i,r,t,n):Ke(s)),nt(s=>({...e,guardsResult:s})))})}(this.environmentInjector,c=>this.events.next(c)),qt(c=>{if(r.guardsResult=c.guardsResult,Zl(c.guardsResult))throw JR(0,c.guardsResult);const u=new sie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),kt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",tr.GuardRejected),!1)),gw(c=>{if(c.guards.canActivateChecks.length)return Ke(c).pipe(qt(u=>{const p=new cie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}),gn(u=>{let p=!1;return Ke(u).pipe(function gne(t,n){return Pn(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ke(e);const r=new Set(o.map(c=>c.route)),a=new Set;for(const c of r)if(!a.has(c))for(const u of cN(c))a.add(u);let s=0;return Xi(a).pipe(Ol(c=>r.has(c)?function _ne(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!YR(o)&&(r[uh]=o.title),function bne(t,n,e,i){const o=YC(t);if(0===o.length)return Ke({});const r={};return Xi(o).pipe(Pn(a=>function vne(t,n,e,i){const o=vh(n)??i,r=ed(t,o);return vs(r.resolve?r.resolve(n,e):Ha(o,()=>r(n,e)))}(t[a],n,e,i).pipe(hc(),qt(s=>{r[a]=s}))),ZC(1),Bf(r),Li(a=>oN(a)?jo:ju(a)))}(r,t,n,i).pipe(nt(a=>(t._resolvedData=a,t.data=aw(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=aw(c,c.parent,t).resolve,Ke(void 0))),qt(()=>s++),ZC(1),Pn(c=>s===a.size?Ke(e):jo))})}(this.paramsInheritanceStrategy,this.environmentInjector),qt({next:()=>p=!0,complete:()=>{p||this.cancelNavigationTransition(u,"",tr.NoDataFromResolver)}}))}),qt(u=>{const p=new lie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}))}),gw(c=>{const u=p=>{const g=[];p.routeConfig?.loadComponent&&!p.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(p.routeConfig).pipe(qt(b=>{p.component=b}),nt(()=>{})));for(const b of p.children)g.push(...u(b));return g};return Xs(u(c.targetSnapshot.root)).pipe(ug(null),Pt(1))}),gw(()=>this.afterPreactivation()),gn(()=>{const{currentSnapshot:c,targetSnapshot:u}=r,p=this.createViewTransition?.(this.environmentInjector,c.root,u.root);return p?Xi(p).pipe(nt(()=>r)):Ke(r)}),nt(c=>{const u=function vie(t,n,e){const i=bh(t,n._root,e?e._root:void 0);return new qR(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:u},this.currentNavigation.targetRouterState=u,r}),qt(()=>{this.events.next(new iw)}),((t,n,e,i)=>nt(o=>(new Iie(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),Pt(1),qt({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Oa(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),ot(this.transitionAbortSubject.pipe(qt(c=>{throw c}))),ec(()=>{!a&&!s&&this.cancelNavigationTransition(r,"",tr.SupersededByNewNavigation),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Li(c=>{if(s=!0,tN(c))this.events.next(new Yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function wie(t){return tN(t)&&Zl(t.url)}(c)?this.events.next(new nw(c.url)):r.resolve(!1);else{this.events.next(new yg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0));try{r.resolve(e.errorHandler(c))}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return jo}))}))}cancelNavigationTransition(e,i,o){const r=new Yl(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kne(t){return t!==gh}let Mne=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(Ine),providedIn:"root"})}return t})();class Tne{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let Ine=(()=>{class t extends Tne{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>xe(Ene),providedIn:"root"})}return t})(),Ene=(()=>{class t extends mN{constructor(){super(...arguments),this.location=xe(Ws),this.urlSerializer=xe(Kl),this.options=xe(nd,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=xe(bw),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new Wl,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=WR(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof bg)this.stateMemento=this.createStateMemento();else if(e instanceof Ql)this.rawUrlTree=i.initialUrl;else if(e instanceof UR){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof iw?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof Yl&&(e.code===tr.GuardRejected||e.code===tr.NoDataFromResolver)?this.restoreHistory(i):e instanceof yg?this.restoreHistory(i,!0):e instanceof Oa&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var xh=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(xh||{});function pN(t,n){t.events.pipe(kt(e=>e instanceof Oa||e instanceof Yl||e instanceof yg||e instanceof Ql),nt(e=>e instanceof Oa||e instanceof Ql?xh.COMPLETE:e instanceof Yl&&(e.code===tr.Redirect||e.code===tr.SupersededByNewNavigation)?xh.REDIRECTING:xh.FAILED),kt(e=>e!==xh.REDIRECTING),Pt(1)).subscribe(()=>{n()})}function One(t){throw t}const Ane={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Pne={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Rn=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=xe(uT),this.stateManager=xe(mN),this.options=xe(nd,{optional:!0})||{},this.pendingTasks=xe(Vs),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=xe(kg),this.urlSerializer=xe(Kl),this.location=xe(Ws),this.urlHandlingStrategy=xe(bw),this._events=new qe,this.errorHandler=this.options.errorHandler||One,this.navigated=!1,this.routeReuseStrategy=xe(Mne),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=xe(od,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!xe(wg,{optional:!0}),this.eventsSubscription=new de,this.isNgZoneEnabled=xe(We)instanceof We&&We.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof Yl&&i.code!==tr.Redirect&&i.code!==tr.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Oa)this.navigated=!0;else if(i instanceof nw){const a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),s={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||kne(o.source)};this.scheduleNavigation(a,gh,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Nne(t){return!(t instanceof iw||t instanceof nw)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),gh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const s=this.parseUrl(e);this.scheduleNavigation(s,i,a,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(uw),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:a,queryParamsHandling:s,preserveFragment:c}=i,u=c?this.currentUrlTree.fragment:a;let g,p=null;switch(s){case"merge":p={...this.currentUrlTree.queryParams,...r};break;case"preserve":p=this.currentUrlTree.queryParams;break;default:p=r||null}null!==p&&(p=this.removeEmptyProps(p));try{g=FR(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),g=this.currentUrlTree.root}return LR(g,e,p,u??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Zl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,gh,null,i)}navigate(e,i={skipLocationChange:!1}){return function Rne(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,a){if(this.disposed)return Promise.resolve(!1);let s,c,u;a?(s=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,b)=>{s=g,c=b});const p=this.pendingTasks.add();return pN(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(p))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:s,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Gr=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=a,this.locationStrategy=s,this.href=null,this.commands=null,this.onChanges=new qe,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(u=>{u instanceof Oa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,a){const s=this.urlTree;return!!(null===s||this.isAnchorElement&&(0!==e||i||o||r||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(s,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function I1(t,n,e){return function jL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?T1:qo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(Jl),oo("tabindex"),_(ca),_(Be),_(qs))};static#t=this.\u0275dir=Q({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,o){1&i&&A("click",function(a){return o.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),2&i&&Je("target",o.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[ge.HasDecoratorInputTransform,"preserveFragment","preserveFragment",Cl],skipLocationChange:[ge.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",Cl],replaceUrl:[ge.HasDecoratorInputTransform,"replaceUrl","replaceUrl",Cl],routerLink:"routerLink"},standalone:!0,features:[PS,fi]})}return t})();class fN{}let Bne=(()=>{class t{constructor(e,i,o,r,a){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(kt(e=>e instanceof Oa),Ol(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Qb(r.providers,e,`Route: ${r.path}`));const a=r._injector??e,s=r._loadedInjector??a;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(a,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(s,r.children??r._loadedRoutes))}return Xi(o).pipe(Ml())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ke(null);const r=o.pipe(Pn(a=>null===a?Ke(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?Xi([r,this.loader.loadComponent(i)]).pipe(Ml()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Rn),X(wT),X(Ao),X(fN),X(_w))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const vw=new se("");let gN=(()=>{class t{constructor(e,i,o,r,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof bg?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Oa?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ql&&e.code===vg.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof $R&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new $R(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){Ar()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function qr(t,n){return{\u0275kind:t,\u0275providers:n}}function bN(){const t=xe(ji);return n=>{const e=t.get(Za);if(n!==e.components[0])return;const i=t.get(Rn),o=t.get(vN);1===t.get(yw)&&i.initialNavigation(),t.get(yN,null,$t.Optional)?.setUpPreloading(),t.get(vw,null,$t.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const vN=new se("",{factory:()=>new qe}),yw=new se("",{providedIn:"root",factory:()=>1}),yN=new se("");function Hne(t){return qr(0,[{provide:yN,useExisting:Bne},{provide:fN,useExisting:t}])}function $ne(t){return qr(9,[{provide:uN,useValue:Dne},{provide:hN,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const CN=new se("ROUTER_FORROOT_GUARD"),Gne=[Ws,{provide:Kl,useClass:QC},Rn,_h,{provide:Jl,useFactory:function _N(t){return t.routerState.root},deps:[Rn]},_w,[]];let wN=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[Gne,[],{provide:od,multi:!0,useValue:e},{provide:CN,useFactory:Zne,deps:[[Rn,new za,new Vc]]},{provide:nd,useValue:i||{}},i?.useHash?{provide:qs,useClass:s7}:{provide:qs,useClass:r2},{provide:vw,useFactory:()=>{const t=xe(C9),n=xe(We),e=xe(nd),i=xe(kg),o=xe(Kl);return e.scrollOffset&&t.setOffset(e.scrollOffset),new gN(o,i,t,n,e)}},i?.preloadingStrategy?Hne(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Yne(i):[],i?.bindToComponentInputs?qr(8,[QR,{provide:wg,useExisting:QR}]).\u0275providers:[],i?.enableViewTransitions?$ne().\u0275providers:[],[{provide:xN,useFactory:bN},{provide:Bv,multi:!0,useExisting:xN}]]}}static forChild(e){return{ngModule:t,providers:[{provide:od,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(CN,8))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();function Zne(t){return"guarded"}function Yne(t){return["disabled"===t.initialNavigation?qr(3,[{provide:Fv,multi:!0,useFactory:()=>{const n=xe(Rn);return()=>{n.setUpLocationChangeListener()}}},{provide:yw,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?qr(2,[{provide:yw,useValue:0},{provide:Fv,multi:!0,deps:[ji],useFactory:n=>{const e=n.get(r7,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(Rn),r=n.get(vN);pN(o,()=>{i(!0)}),n.get(kg).afterPreactivation=()=>(i(!0),r.closed?Ke(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const xN=new se("");var Jn=function(t){return t.DirectConnect="directConnect",t.DumpFile="dumpFile",t.SessionFile="sessionFile",t.ResumeSession="resumeSession",t}(Jn||{}),Wi=function(t){return t.Type="inputType",t.Config="config",t.SourceDbName="sourceDbName",t}(Wi||{}),Wr=function(t){return t.MySQL="MySQL",t.Postgres="Postgres",t.SQLServer="SQL Server",t.Oracle="Oracle",t}(Wr||{}),jt=function(t){return t.DbName="databaseName",t.Tables="tables",t.Table="tableName",t.Indexes="indexes",t.Index="indexName",t.Sequences="sequences",t.Sequence="sequenceName",t}(jt||{}),Kr=function(t){return t.schemaOnly="Schema",t.dataOnly="Data",t.schemaAndData="Schema And Data",t}(Kr||{}),ys=function(t){return t.Table="table",t.Index="index",t.Sequence="sequence",t}(ys||{}),Hn=function(t){return t.bulkMigration="bulk",t.lowDowntimeMigration="lowdt",t}(Hn||{}),he=function(t){return t.MigrationMode="migrationMode",t.MigrationType="migrationType",t.IsTargetDetailSet="isTargetDetailSet",t.IsSourceConnectionProfileSet="isSourceConnectionProfileSet",t.IsSourceDetailsSet="isSourceDetailsSet",t.IsTargetConnectionProfileSet="isTargetConnectionProfileSet",t.IsMigrationDetailSet="isMigrationDetailSet",t.IsMigrationInProgress="isMigrationInProgress",t.HasDataMigrationStarted="hasDataMigrationStarted",t.HasSchemaMigrationStarted="hasSchemaMigrationStarted",t.SchemaProgressMessage="schemaProgressMessage",t.DataProgressMessage="dataProgressMessage",t.DataMigrationProgress="dataMigrationProgress",t.SchemaMigrationProgress="schemaMigrationProgress",t.HasForeignKeyUpdateStarted="hasForeignKeyUpdateStarted",t.ForeignKeyProgressMessage="foreignKeyProgressMessage",t.ForeignKeyUpdateProgress="foreignKeyUpdateProgress",t.GeneratingResources="generatingResources",t.NumberOfShards="numberOfShards",t.NumberOfInstances="numberOfInstances",t.isForeignKeySkipped="isForeignKeySkipped",t.IsGcsMetadataPathSet="isGcsMetadataPathSet",t}(he||{}),yt=function(t){return t.TargetDB="targetDb",t.Dialect="dialect",t.SourceConnProfile="sourceConnProfile",t.TargetConnProfile="targetConnProfile",t.ReplicationSlot="replicationSlot",t.Publication="publication",t.GcsMetadataName="gcsName",t.GcsMetadataRootPath="gcsRootPath",t}(yt||{});var rd=function(t){return t[t.SchemaMigrationComplete=1]="SchemaMigrationComplete",t[t.SchemaCreationInProgress=2]="SchemaCreationInProgress",t[t.DataMigrationComplete=3]="DataMigrationComplete",t[t.DataWriteInProgress=4]="DataWriteInProgress",t[t.ForeignKeyUpdateInProgress=5]="ForeignKeyUpdateInProgress",t[t.ForeignKeyUpdateComplete=6]="ForeignKeyUpdateComplete",t}(rd||{});const DN=[{value:"google_standard_sql",displayName:"Google Standard SQL Dialect"},{value:"postgresql",displayName:"PostgreSQL Dialect"}],In={StorageMaxLength:0x8000000000000000,StringMaxLength:2621440,ByteMaxLength:10485760,DataTypes:["STRING","BYTES","VARCHAR"]},SN_GoogleStandardSQL=["BOOL","BYTES","DATE","FLOAT64","INT64","STRING","TIMESTAMP","NUMERIC","JSON"],SN_PostgreSQL=["BOOL","BYTEA","DATE","FLOAT8","INT8","VARCHAR","TIMESTAMPTZ","NUMERIC","JSONB"];var Zr=function(t){return t.DirectConnectForm="directConnectForm",t.IsConnectionSuccessful="isConnectionSuccessful",t}(Zr||{});const kN=["MySQL"],MN={width:"50%",minWidth:"40%",maxWidth:"70%"},Jne={width:"100%",minWidth:"50%",maxWidth:"75%"},eoe={width:"30vw",minWidth:"400px",maxWidth:"500px"};function ad(t){return"mysql"==t||"mysqldump"==t?Wr.MySQL:"postgres"===t||"pgdump"===t||"pg_dump"===t?Wr.Postgres:"oracle"===t?Wr.Oracle:"sqlserver"===t?Wr.SQLServer:t}function TN(t){var n=document.createElement("a");let e=JSON.stringify(t).replace(/9223372036854776000/g,"9223372036854775807");n.href="data:text/json;charset=utf-8,"+encodeURIComponent(e),n.download=`${t.SessionName}_${t.DatabaseType}_${t.DatabaseName}.json`,n.click()}function IN(t){const n={};return Object.keys(t).forEach(e=>{n[e]=function toe(t){return t.reduce((n,e)=>{const i=e.GenerationType;return n[i]||(n[i]=[]),n[i].push(e),n},{})}(t[e])}),n}function EN(t,n){return e=>{const i=e,o=i.get(t),r=i.get(n);return o&&r&&(o.value&&!r.value||!o.value&&r.value)?{linkedError:"Both Skip Range Min and Max are required"}:null}}let En=(()=>{class t{constructor(e){this.http=e,this.url=window.location.origin}connectTodb(e,i){const{dbEngine:o,isSharded:r,hostName:a,port:s,dbName:c,userName:u,password:p}=e;return this.http.post(`${this.url}/connect`,{Driver:o,IsSharded:r,Host:a,Port:s,Database:c,User:u,Password:p,Dialect:i},{observe:"response"})}getLastSessionDetails(){return this.http.get(`${this.url}/GetLatestSessionDetails`)}getSchemaConversionFromDirectConnect(){return this.http.get(`${this.url}/convert/infoschema`)}getSchemaConversionFromDump(e){return this.http.post(`${this.url}/convert/dump`,e)}setSourceDBDetailsForDump(e){return this.http.post(`${this.url}/SetSourceDBDetailsForDump`,e)}setSourceDBDetailsForDirectConnect(e){const{dbEngine:i,hostName:o,port:r,dbName:a,userName:s,password:c}=e;return this.http.post(`${this.url}/SetSourceDBDetailsForDirectConnect`,{Driver:i,Host:o,Port:r,Database:a,User:s,Password:c})}setShardsSourceDBDetailsForBulk(e){const{dbConfigs:i,isRestoredSession:o}=e;let r=[];return i.forEach(a=>{r.push({Driver:a.dbEngine,Host:a.hostName,Port:a.port,Database:a.dbName,User:a.userName,Password:a.password,DataShardId:a.shardId})}),this.http.post(`${this.url}/SetShardsSourceDBDetailsForBulk`,{DbConfigs:r,IsRestoredSession:o})}setShardsSourceDBDetailsForDataflow(e){return this.http.post(`${this.url}/SetShardsSourceDBDetailsForDataflow`,{MigrationProfile:e})}setDatastreamDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDatastreamDetailsForShardedMigrations`,e)}setGcsDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetGcsDetailsForShardedMigrations`,e)}setDataflowDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDataflowDetailsForShardedMigrations`,e)}getSourceProfile(){return this.http.get(`${this.url}/GetSourceProfileConfig`)}getSchemaConversionFromSessionFile(e){return this.http.post(`${this.url}/convert/session`,e)}getDStructuredReport(){return this.http.get(`${this.url}/downloadStructuredReport`)}getDTextReport(){return this.http.get(`${this.url}/downloadTextReport`)}getDSpannerDDL(){return this.http.get(`${this.url}/downloadDDL`)}getIssueDescription(){return this.http.get(`${this.url}/issueDescription`)}getConversionRate(){return this.http.get(`${this.url}/conversion`)}getConnectionProfiles(e){return this.http.get(`${this.url}/GetConnectionProfiles?source=${e}`)}getGeneratedResources(){return this.http.get(`${this.url}/GetGeneratedResources`)}getStaticIps(){return this.http.get(`${this.url}/GetStaticIps`)}createConnectionProfile(e){return this.http.post(`${this.url}/CreateConnectionProfile`,e)}verifyJsonConfiguration(e){return this.http.post(`${this.url}/VerifyJsonConfiguration`,{MigrationProfile:e})}getSummary(){return this.http.get(`${this.url}/summary`)}getDdl(){return this.http.get(`${this.url}/ddl`)}getSequenceDdl(){return this.http.get(`${this.url}/seqDdl`)}getTypeMap(){return this.http.get(`${this.url}/typemap`)}getAutoGenMap(){return this.http.get(`${this.url}/autoGenMap`)}getSequenceKind(){return this.http.get(`${this.url}/getSequenceKind`)}getSpannerDefaultTypeMap(){return this.http.get(`${this.url}/spannerDefaultTypeMap`)}reviewTableUpdate(e,i){return this.http.post(`${this.url}/typemap/reviewTableSchema?table=${e}`,i)}updateTable(e,i){return this.http.post(`${this.url}/typemap/table?table=${e}`,i)}removeInterleave(e){return this.http.post(`${this.url}/removeParent?tableId=${e}`,{})}restoreTables(e){return this.http.post(`${this.url}/restore/tables`,e)}restoreTable(e){return this.http.post(`${this.url}/restore/table?table=${e}`,{})}dropTable(e){return this.http.post(`${this.url}/drop/table?table=${e}`,{})}dropTables(e){return this.http.post(`${this.url}/drop/tables`,e)}updatePk(e){return this.http.post(`${this.url}/primaryKey`,e)}updateFk(e,i){return this.http.post(`${this.url}/update/fks?table=${e}`,i)}addColumn(e,i){return this.http.post(`${this.url}/AddColumn?table=${e}`,i)}addSequence(e){return this.http.post(`${this.url}/AddSequence`,e)}removeFk(e,i){return this.http.post(`${this.url}/drop/fk?table=${e}`,{Id:i})}getTableWithErrors(){return this.http.get(`${this.url}/GetTableWithErrors`)}getSessions(){return this.http.get(`${this.url}/GetSessions`)}getConvForSession(e){return this.http.get(`${this.url}/GetSession/${e}`,{responseType:"blob"})}resumeSession(e){return this.http.post(`${this.url}/ResumeSession/${e}`,{})}saveSession(e){return this.http.post(`${this.url}/SaveRemoteSession`,e)}getSpannerConfig(){return this.http.get(`${this.url}/GetConfig`)}setSpannerConfig(e){return this.http.post(`${this.url}/SetSpannerConfig`,e)}getIsOffline(){return this.http.get(`${this.url}/IsOffline`)}updateIndex(e,i){return this.http.post(`${this.url}/update/indexes?table=${e}`,i)}updateSequence(e){return this.http.post(`${this.url}/UpdateSequence`,e)}dropIndex(e,i){return this.http.post(`${this.url}/drop/secondaryindex?table=${e}`,{Id:i})}dropSequence(e){return this.http.post(`${this.url}/drop/sequence?sequence=${e}`,{})}restoreIndex(e,i){return this.http.post(`${this.url}/restore/secondaryIndex?tableId=${e}&indexId=${i}`,{})}getInterleaveStatus(e){return this.http.get(`${this.url}/setparent?table=${e}&update=false`)}setInterleave(e){return this.http.get(`${this.url}/setparent?table=${e}&update=true`)}getSourceDestinationSummary(){return this.http.get(`${this.url}/GetSourceDestinationSummary`)}migrate(e){return this.http.post(`${this.url}/Migrate`,e)}getProgress(){return this.http.get(`${this.url}/GetProgress`)}uploadFile(e){return this.http.post(`${this.url}/uploadFile`,e)}cleanUpStreamingJobs(){return this.http.post(`${this.url}/CleanUpStreamingJobs`,{})}applyRule(e){return this.http.post(`${this.url}/applyrule`,e)}dropRule(e){return this.http.post(`${this.url}/dropRule?id=${e}`,{})}getStandardTypeToPGSQLTypemap(){return this.http.get(`${this.url}/typemap/GetStandardTypeToPGSQLTypemap`)}getPGSQLToStandardTypeTypemap(){return this.http.get(`${this.url}/typemap/GetPGSQLToStandardTypeTypemap`)}checkBackendHealth(){return this.http.get(`${this.url}/ping`)}static#e=this.\u0275fac=function(i){return new(i||t)(X(pf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ir=(()=>{class t{constructor(e){this.snackBar=e}openSnackBar(e,i,o){o||(o=10),this.snackBar.open(e,i,{duration:1e3*o})}openSnackBarWithoutTimeout(e,i){this.snackBar.open(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(FJ))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nr=(()=>{class t{constructor(){this.spannerConfigSub=new mt(!1),this.datebaseLoaderSub=new mt({type:"",databaseName:""}),this.viewAssesmentSub=new mt({srcDbType:"",connectionDetail:"",conversionRates:{good:0,ok:0,bad:0}}),this.tabToSpannerSub=new mt(!1),this.cancelDbLoadSub=new mt(!1),this.spannerConfig=this.spannerConfigSub.asObservable(),this.databaseLoader=this.datebaseLoaderSub.asObservable(),this.viewAssesment=this.viewAssesmentSub.asObservable(),this.tabToSpanner=this.tabToSpannerSub.asObservable(),this.cancelDbLoad=this.cancelDbLoadSub.asObservable()}openSpannerConfig(){this.spannerConfigSub.next(!0)}openDatabaseLoader(e,i){this.datebaseLoaderSub.next({type:e,databaseName:i})}closeDatabaseLoader(){this.datebaseLoaderSub.next({type:"",databaseName:""})}setViewAssesmentData(e){this.viewAssesmentSub.next(e)}setTabToSpanner(){this.tabToSpannerSub.next(!0)}cancelDbLoading(){this.cancelDbLoadSub.next(!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cw=(()=>{class t{constructor(){this.reviewTableChangesSub=new mt({Changes:[],DDL:""}),this.tableUpdateDetailSub=new mt({tableName:"",tableId:"",updateDetail:{UpdateCols:{}}}),this.reviewTableChanges=this.reviewTableChangesSub.asObservable(),this.tableUpdateDetail=this.tableUpdateDetailSub.asObservable()}setTableReviewChanges(e){this.reviewTableChangesSub.next(e)}setTableUpdateDetail(e){this.tableUpdateDetailSub.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pc=(()=>{class t{constructor(e){this.fetch=e,this.standardTypeToPGSQLTypeMapSub=new mt(new Map),this.pgSQLToStandardTypeTypeMapSub=new mt(new Map),this.standardTypeToPGSQLTypeMap=this.standardTypeToPGSQLTypeMapSub.asObservable(),this.pgSQLToStandardTypeTypeMap=this.pgSQLToStandardTypeTypeMapSub.asObservable(),this.srcDbName=localStorage.getItem(Wi.SourceDbName)}getStandardTypeToPGSQLTypemap(){return this.fetch.getStandardTypeToPGSQLTypemap().subscribe({next:e=>{this.standardTypeToPGSQLTypeMapSub.next(new Map(Object.entries(e)))}})}getPGSQLToStandardTypeTypemap(){return this.fetch.getPGSQLToStandardTypeTypemap().subscribe({next:e=>{this.pgSQLToStandardTypeTypeMapSub.next(new Map(Object.entries(e)))}})}createTreeNode(e,i,o="",r=""){e.DatabaseType&&(this.srcDbName=ad(e.DatabaseType));let a=Object.keys(e.SpSchema).filter(w=>e.SpSchema[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s=Object.keys(e.SpSequences).filter(w=>e.SpSequences[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),c=Object.keys(e.SrcSchema).filter(w=>-1==a.indexOf(w)&&e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_").includes(o.toLocaleLowerCase())),u=this.getDeletedIndexes(e),p={name:`Tables (${a.length})`,type:jt.Tables,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:a.map(w=>{let k=e.SpSchema[w];return{name:k.Name,status:i[w],type:jt.Table,parent:""!=k.ParentId?e.SpSchema[k.ParentId]?.Name:"",pos:-1,isSpannerNode:!0,id:w,parentId:k.ParentId,children:[{name:`Indexes (${k.Indexes?k.Indexes.length:0})`,status:"",type:jt.Indexes,parent:e.SpSchema[w].Name,pos:-1,isSpannerNode:!0,id:"",parentId:w,children:k.Indexes?k.Indexes.map((T,z)=>({name:T.Name,type:jt.Index,parent:e.SpSchema[w].Name,pos:z,isSpannerNode:!0,id:T.Id,parentId:w})):[]}]}})};c.forEach(w=>{p.children?.push({name:e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_"),status:"DARK",type:jt.Table,pos:-1,isSpannerNode:!0,children:[],isDeleted:!0,id:w,parent:"",parentId:""})}),p.children?.forEach((w,k)=>{u[w.id]&&u[w.id].forEach(T=>{p.children[k].children[0].children?.push({name:T.Name.replace(/[^A-Za-z0-9_]/g,"_"),type:jt.Index,parent:e.SpSchema[w.name]?.Name,pos:k,isSpannerNode:!0,isDeleted:!0,id:T.Id,parentId:w.id})})});let g={name:`Sequences (${s.length})`,type:jt.Sequences,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:s.map(w=>({name:e.SpSequences[w].Name,status:"",type:jt.Sequence,parent:"",pos:-1,isSpannerNode:!0,id:w,parentId:"",children:[]}))};this.sortNodeChildren(p,r),this.sortNodeChildren(g,r);let b=[p];return kN.includes(this.srcDbName)&&b.push(g),[{name:e.DatabaseName,children:b,type:jt.DbName,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:""}]}sortNodeChildren(e,i){"asc"===i||""===i?e.children?.sort((o,r)=>o.name>r.name?1:r.name>o.name?-1:0):"desc"===i&&e.children?.sort((o,r)=>r.name>o.name?1:o.name>r.name?-1:0)}createTreeNodeForSource(e,i,o="",r=""){let a=Object.keys(e.SrcSchema).filter(c=>e.SrcSchema[c].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s={name:`Tables (${a.length})`,type:jt.Tables,pos:-1,isSpannerNode:!1,id:"",parent:"",parentId:"",children:a.map(c=>{let u=e.SrcSchema[c];return{name:u.Name,status:i[c]?i[c]:"NONE",type:jt.Table,parent:"",pos:-1,isSpannerNode:!1,id:c,parentId:"",children:[{name:`Indexes (${u.Indexes?.length||"0"})`,status:"",type:jt.Indexes,parent:"",pos:-1,isSpannerNode:!1,id:"",parentId:"",children:u.Indexes?u.Indexes.map((p,g)=>({name:p.Name,type:jt.Index,parent:e.SrcSchema[c].Name,isSpannerNode:!1,pos:g,id:p.Id,parentId:c})):[]}]}})};return"asc"===r||""===r?s.children?.sort((c,u)=>c.name>u.name?1:u.name>c.name?-1:0):"desc"===r&&s.children?.sort((c,u)=>u.name>c.name?1:c.name>u.name?-1:0),[{name:e.DatabaseName,children:[s],type:jt.DbName,isSpannerNode:!1,parent:"",pos:-1,id:"",parentId:""}]}getColumnMapping(e,i){let u,o=this.getSpannerTableNameFromId(e,i),r=i.SrcSchema[e].ColIds,a=i.SpSchema[e]?i.SpSchema[e].ColIds:null,s=i.SrcSchema[e].PrimaryKeys,c=a?i.SpSchema[e].PrimaryKeys:null;this.standardTypeToPGSQLTypeMap.subscribe(b=>{u=b});const p=In.StorageMaxLength,g=i.SrcSchema[e].ColIds.map((b,w)=>{let k;o&&i.SpSchema[e].PrimaryKeys.forEach(re=>{re.ColId==b&&(k=re.Order)});let T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";return{spOrder:T?w+1:"",srcOrder:w+1,spColName:T?T.Name:"",spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:i.SrcSchema[e].ColDefs[b].Name,srcDataType:i.SrcSchema[e].ColDefs[b].Type.Name,spIsPk:!(!T||!o)&&-1!==i.SpSchema[e].PrimaryKeys?.map(re=>re.ColId).indexOf(b),srcIsPk:!!s&&-1!==s.map(re=>re.ColId).indexOf(b),spIsNotNull:!(!T||!o)&&T.NotNull,srcIsNotNull:i.SrcSchema[e].ColDefs[b].NotNull,srcId:b,spId:T?b:"",spColMaxLength:0!=T?.T.Len?T?.T.Len!=p?T?.T.Len:"MAX":"",srcColMaxLength:null!=i.SrcSchema[e].ColDefs[b].Type.Mods?i.SrcSchema[e].ColDefs[b].Type.Mods[0]:"",spAutoGen:null!=T?.AutoGen?T?.AutoGen:{Name:"",GenerationType:""},srcAutoGen:i.SrcSchema[e].ColDefs[b].AutoGen?i.SrcSchema[e].ColDefs[b].AutoGen:{Name:"",GenerationType:""}}});return a&&a.forEach((b,w)=>{if(r.indexOf(b)<0){let k=i.SpSchema[e].ColDefs[b],T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";g.push({spOrder:w+1,srcOrder:"",spColName:k.Name,spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:"",srcDataType:"",spIsPk:!!c&&-1!==c.map(re=>re.ColId).indexOf(b),srcIsPk:!1,spIsNotNull:k.NotNull,srcIsNotNull:!1,srcId:"",spId:b,srcColMaxLength:"",spColMaxLength:T?.T.Len,spAutoGen:k.AutoGen,srcAutoGen:{Name:"",GenerationType:""}})}}),g}getPkMapping(e){let i=e.filter(o=>o.spIsPk||o.srcIsPk);return JSON.parse(JSON.stringify(i))}getFkMapping(e,i){let o=i.SrcSchema[e]?.ForeignKeys;return o?o.map(r=>{let a=this.getSpannerFkFromId(i,e,r.Id),s=a?a.ColIds.map(w=>i.SpSchema[e].ColDefs[w].Name):[],c=a?a.ColIds:[],u=r.ColIds.map(w=>i.SrcSchema[e].ColDefs[w].Name),p=a?a.ReferColumnIds.map(w=>i.SpSchema[r.ReferTableId].ColDefs[w].Name):[],g=a?a.ReferColumnIds:[],b=r.ReferColumnIds.map(w=>i.SrcSchema[r.ReferTableId].ColDefs[w].Name);return{srcFkId:r.Id,spFkId:a?.Id,spName:a?a.Name:"",srcName:r.Name,spColumns:s,srcColumns:u,spReferTable:a?i.SpSchema[a.ReferTableId].Name:"",srcReferTable:i.SrcSchema[r.ReferTableId].Name,spReferColumns:p,srcReferColumns:b,spColIds:c,spReferColumnIds:g,spReferTableId:a?a.ReferTableId:""}}):[]}getIndexMapping(e,i,o){let r=this.getSourceIndexFromId(i,e,o),a=this.getSpannerIndexFromId(i,e,o),s=r?r.Keys.map(p=>p.ColId):[],c=a?a.Keys.map(p=>p.ColId):[],u=r?r.Keys.map(p=>{let g=this.getSpannerIndexKeyFromColId(i,e,o,p.ColId);return{srcColId:p.ColId,spColId:g?g.ColId:void 0,srcColName:i.SrcSchema[e].ColDefs[p.ColId].Name,srcOrder:p.Order,srcDesc:p.Desc,spColName:g?i.SpSchema[e].ColDefs[g.ColId].Name:"",spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0}}):[];return c.forEach(p=>{if(-1==s.indexOf(p)){let g=this.getSpannerIndexKeyFromColId(i,e,o,p);u.push({srcColName:"",srcOrder:"",srcColId:void 0,srcDesc:void 0,spColName:i.SpSchema[e].ColDefs[p].Name,spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0,spColId:g?g.ColId:void 0})}}),u}getSequenceMapping(e,i){let a={};if(null!=this.getSpannerSequenceNameFromId(e,i)){let s=i.SpSequences[e];a.spSeqName=s.Name,a.spSequenceKind=s.SequenceKind,a.spSkipRangeMax=s.SkipRangeMax,a.spSkipRangeMin=s.SkipRangeMin,a.spStartWithCounter=s.StartWithCounter}return a}getSpannerFkFromId(e,i,o){let r=null;return e.SpSchema[i]?.ForeignKeys?.forEach(a=>{a.Id==o&&(r=a)}),r}getSourceIndexFromId(e,i,o){let r=null;return e.SrcSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerIndexFromId(e,i,o){let r=null;return e.SpSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerSequenceNameFromId(e,i){let o=null;return Object.keys(i.SpSequences).forEach(r=>{i.SpSequences[r].Id===e&&(o=i.SpSequences[r].Name)}),o}getSpannerIndexKeyFromColId(e,i,o,r){let a=null,s=e.SpSchema[i]?.Indexes?e.SpSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSourceIndexKeyFromColId(e,i,o,r){let a=null,s=e.SrcSchema[i]?.Indexes?e.SrcSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSpannerColDefFromId(e,i,o){let r=null;return Object.keys(o.SpSchema[e].ColDefs).forEach(a=>{o.SpSchema[e].ColDefs[a].Id==i&&(r=o.SpSchema[e].ColDefs[a])}),r}getSourceTableNameFromId(e,i){let o="";return Object.keys(i.SrcSchema).forEach(r=>{i.SrcSchema[r].Id===e&&(o=i.SrcSchema[r].Name)}),o}getSpannerTableNameFromId(e,i){let o=null;return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Id===e&&(o=i.SpSchema[r].Name)}),o}getTableIdFromSpName(e,i){let o="";return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Name===e&&(o=i.SpSchema[r].Id)}),o}getColIdFromSpannerColName(e,i,o){let r="";return Object.keys(o.SpSchema[i].ColDefs).forEach(a=>{o.SpSchema[i].ColDefs[a].Name===e&&(r=o.SpSchema[i].ColDefs[a].Id)}),r}getDeletedIndexes(e){let i={};return Object.keys(e.SpSchema).forEach(o=>{let r=e.SpSchema[o],a=e.SrcSchema[o],s=r&&r.Indexes?r.Indexes.map(u=>u.Id):[],c=a&&a.Indexes?a.Indexes?.filter(u=>!s.includes(u.Id)):null;r&&a&&c&&c.length>0&&(i[o]=c)}),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(En))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Hi=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snackbar=i,this.clickEvent=o,this.tableUpdatePubSub=r,this.conversion=a,this.convSubject=new mt({}),this.conversionRateSub=new mt({}),this.typeMapSub=new mt({}),this.defaultTypeMapSub=new mt({}),this.autoGenMapSub=new mt({}),this.summarySub=new mt(new Map),this.ddlSub=new mt({}),this.seqDdlSub=new mt({}),this.tableInterleaveStatusSub=new mt({}),this.sessionsSub=new mt({}),this.configSub=new mt({}),this.currentSessionSub=new mt({}),this.isOfflineSub=new mt(!1),this.ruleMapSub=new mt([]),this.treeUpdatedSub=new qe,this.rule=this.ruleMapSub.asObservable(),this.conv=this.convSubject.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.conversionRate=this.conversionRateSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.typeMap=this.typeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.defaultTypeMap=this.defaultTypeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.autoGenMap=this.autoGenMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.treeUpdate=this.treeUpdatedSub.asObservable(),this.summary=this.summarySub.asObservable(),this.ddl=this.ddlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.seqDdl=this.seqDdlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.tableInterleaveStatus=this.tableInterleaveStatusSub.asObservable(),this.sessions=this.sessionsSub.asObservable(),this.config=this.configSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.isOffline=this.isOfflineSub.asObservable(),this.currentSession=this.currentSessionSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.getLastSessionDetails(),this.getConfig(),this.updateIsOffline()}resetStore(){this.convSubject.next({}),this.conversionRateSub.next({}),this.typeMapSub.next({}),this.defaultTypeMapSub.next({}),this.autoGenMapSub.next({}),this.summarySub.next(new Map),this.ddlSub.next({}),this.tableInterleaveStatusSub.next({})}getDdl(){this.fetch.getDdl().subscribe(e=>{this.ddlSub.next(e)})}getSequenceDdl(){this.fetch.getSequenceDdl().subscribe(e=>{this.seqDdlSub.next(e)})}getAutoGenMap(){this.fetch.getAutoGenMap().subscribe(e=>{this.autoGenMapSub.next(e)})}notifyTreeUpdate(){this.treeUpdatedSub.next()}getSchemaConversionFromDb(){this.fetch.getSchemaConversionFromDirectConnect().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(e.error,"Close")}})}getAllSessions(){this.fetch.getSessions().subscribe({next:e=>{this.sessionsSub.next(e)},error:e=>{this.snackbar.openSnackBar("Unable to fetch sessions.","Close")}})}getLastSessionDetails(){this.fetch.getLastSessionDetails().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.snackbar.openSnackBar(e.error,"Close")}})}getSchemaConversionFromDump(e){return this.fetch.getSchemaConversionFromDump(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(i.error,"Close")}})}getSchemaConversionFromSession(e){return this.fetch.getSchemaConversionFromSessionFile(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}getSchemaConversionFromResumeSession(e){this.fetch.resumeSession(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}getConversionRate(){this.fetch.getConversionRate().subscribe(e=>{this.conversionRateSub.next(e)})}getRateTypemapAndSummary(){return x0({rates:this.fetch.getConversionRate(),typeMap:this.fetch.getTypeMap(),defaultTypeMap:this.fetch.getSpannerDefaultTypeMap(),summary:this.fetch.getSummary(),ddl:this.fetch.getDdl(),seqDdl:this.fetch.getSequenceDdl(),autoGenMap:this.fetch.getAutoGenMap()}).pipe(Li(e=>Ke(e))).subscribe(({rates:e,typeMap:i,defaultTypeMap:o,summary:r,ddl:a,seqDdl:s,autoGenMap:c})=>{this.conversionRateSub.next(e),this.typeMapSub.next(i),this.defaultTypeMapSub.next(o),this.summarySub.next(new Map(Object.entries(r))),this.ddlSub.next(a),this.seqDdlSub.next(s),this.autoGenMapSub.next(c)})}getSummary(){return this.fetch.getSummary().subscribe({next:e=>{this.summarySub.next(new Map(Object.entries(e)))}})}reviewTableUpdate(e,i){return this.fetch.reviewTableUpdate(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>{if(o.error)return o.error;{let r;return this.conversion.standardTypeToPGSQLTypeMap.subscribe(a=>{r=a}),this.conv.subscribe(a=>{o.Changes.forEach(s=>{s.InterleaveColumnChanges.forEach(c=>{if("postgresql"===a.SpDialect){let u=r.get(c.Type),p=r.get(c.UpdateType);c.Type=void 0===u?c.Type:u,c.UpdateType=void 0===p?c.UpdateType:p}In.DataTypes.indexOf(c.Type.toString())>-1&&(c.Type+=this.updateColumnSize(c.Size)),In.DataTypes.indexOf(c.UpdateType.toString())>-1&&(c.UpdateType+=this.updateColumnSize(c.UpdateSize))})})}),this.tableUpdatePubSub.setTableReviewChanges(o),""}}))}updateColumnSize(e){return e===In.StorageMaxLength?"(MAX)":"("+e+")"}updateTable(e,i){return this.fetch.updateTable(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}removeInterleave(e){return this.fetch.removeInterleave(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>(this.getDdl(),i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),""))))}restoreTables(e){return this.fetch.restoreTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables restored successfully","Close",5),"")))}restoreTable(e){return this.fetch.restoreTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table restored successfully","Close",5),"")))}dropTable(e){return this.fetch.dropTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table skipped successfully","Close",5),"")))}dropTables(e){return this.fetch.dropTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables skipped successfully","Close",5),"")))}updatePk(e){return this.fetch.updatePk(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getDdl(),"")))}updateFkNames(e,i){return this.fetch.updateFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}dropFk(e,i){return this.fetch.removeFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}getConfig(){this.fetch.getSpannerConfig().subscribe(e=>{this.configSub.next(e)})}updateConfig(e){this.configSub.next(e)}updateIsOffline(){this.fetch.getIsOffline().subscribe(e=>{this.isOfflineSub.next(e)})}addColumn(e,i){this.fetch.addColumn(e,i).subscribe({next:o=>{this.convSubject.next(o),this.getDdl(),this.snackbar.openSnackBar("Added new column.","Close",5)},error:o=>{this.snackbar.openSnackBar(o.error,"Close")}})}addSequence(e){this.fetch.addSequence(e).subscribe({next:i=>{this.convSubject.next(i),this.getSequenceDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Added new sequence.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}applyRule(e){this.fetch.applyRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Added new rule.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}updateIndex(e,i){return this.fetch.updateIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}updateSequence(e){return this.fetch.updateSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getSequenceDdl(),this.notifyTreeUpdate(),"")))}dropIndex(e,i){return this.fetch.dropIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.getDdl(),this.ruleMapSub.next(o?.Rules),this.snackbar.openSnackBar("Index skipped successfully","Close",5),"")))}dropSequence(e){return this.fetch.dropSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.getDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Sequence Deleted successfully","Close",5),"")))}restoreIndex(e,i){return this.fetch.restoreIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.snackbar.openSnackBar("Index restored successfully","Close",5),"")))}getInterleaveConversionForATable(e){this.fetch.getInterleaveStatus(e).subscribe(i=>{this.tableInterleaveStatusSub.next(i)})}setInterleave(e){this.fetch.setInterleave(e).subscribe(i=>{this.convSubject.next(i.sessionState),this.getDdl(),i.sessionState&&this.convSubject.next(i.sessionState)})}uploadFile(e){return this.fetch.uploadFile(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar("File upload failed","Close"),i.error):(this.snackbar.openSnackBar("File uploaded successfully","Close",5),"")))}dropRule(e){return this.fetch.dropRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Rule deleted successfully","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(ir),X(nr),X(Cw),X(pc))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mg=(()=>{class t{constructor(){this.isLoadingSub=new mt(!1),this.isLoading=this.isLoadingSub.asObservable()}startLoader(){this.isLoadingSub.next(!0)}stopLoader(){this.isLoadingSub.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ioe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function noe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function ooe(t,n){1&t&&(d(0,"b"),h(1,"Note: For sharded migrations, please enter below the details of the shard you want Spanner migration tool to read the schema from. The complete connection configuration of all the shards will be taken in later, during data migration."),l())}function roe(t,n){if(1&t&&(d(0,"div",19)(1,"div",20)(2,"mat-form-field",21)(3,"mat-label"),h(4,"Sharded Migration"),l(),d(5,"mat-select",22),y(6,noe,2,2,"mat-option",6),l()(),d(7,"mat-icon",23),h(8,"info"),l(),d(9,"mat-chip",24),h(10," Preview "),l()(),D(11,"br"),y(12,ooe,2,0,"b",25),l()),2&t){const e=C();m(6),f("ngForOf",e.shardedResponseList),m(3),f("removable",!1),m(3),f("ngIf",e.connectForm.value.isSharded)}}function aoe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function soe(t,n){1&t&&(d(0,"mat-icon",26),h(1," check_circle "),l())}let coe=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.fetch=i,this.data=o,this.loader=r,this.snackbarService=a,this.clickEvent=s,this.connectForm=new ti({dbEngine:new q("",[ee.required]),isSharded:new q(!1),hostName:new q("",[ee.required]),port:new q("",[ee.required,ee.pattern("^[0-9]+$")]),userName:new q("",[ee.required]),password:new q(""),dbName:new q("",[ee.required]),dialect:new q("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.isTestConnectionSuccessful=!1,this.connectRequest=null,this.getSchemaRequest=null,this.shardedResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=DN}ngOnInit(){null!=localStorage.getItem(Zr.DirectConnectForm)&&this.connectForm.setValue(JSON.parse(localStorage.getItem(Zr.DirectConnectForm))),null!=localStorage.getItem(Zr.IsConnectionSuccessful)&&(this.isTestConnectionSuccessful="true"===localStorage.getItem(Zr.IsConnectionSuccessful)),this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.connectRequest&&(this.connectRequest.unsubscribe(),this.getSchemaRequest&&this.getSchemaRequest.unsubscribe())}})}testConn(){this.clickEvent.openDatabaseLoader("test-connection",this.connectForm.value.dbName);const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.snackbarService.openSnackBar("SUCCESS! Spanner migration tool was able to successfully ping source database","Close",3),localStorage.setItem(Zr.IsConnectionSuccessful,"true"),this.clickEvent.closeDatabaseLoader()},error:g=>{this.isTestConnectionSuccessful=!1,this.snackbarService.openSnackBar(g.error,"Close"),localStorage.setItem(Zr.IsConnectionSuccessful,"false"),this.clickEvent.closeDatabaseLoader()}})}connectToDb(){this.clickEvent.openDatabaseLoader("direct",this.connectForm.value.dbName),window.scroll(0,0),this.data.resetStore(),localStorage.clear();const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.getSchemaRequest=this.data.getSchemaConversionFromDb(),this.data.conv.subscribe(g=>{localStorage.setItem(Wi.Config,JSON.stringify({dbEngine:e,hostName:o,port:r,userName:a,password:s,dbName:c})),localStorage.setItem(Wi.Type,Jn.DirectConnect),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),localStorage.removeItem(Zr.DirectConnectForm),this.router.navigate(["/workspace"])})},error:g=>{this.snackbarService.openSnackBar(g.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}refreshDbSpecifcConnectionOptions(){this.connectForm.value.isSharded=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(En),_(Hi),_(Mg),_(ir),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-direct-connection"]],decls:54,vars:8,consts:[["id","direct-connection-component",1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup"],[1,"primary-header"],["appearance","outline",1,"full-width"],["formControlName","dbEngine","id","dbengine-input",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["class","shardingConfig",4,"ngIf"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName","id","hostname-input"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port","id","port-input"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName","id","username-input"],["matInput","","name","password","type","password","formControlName","password","id","password-input"],["matInput","","name","dbname","type","text","formControlName","dbName","id","dbname-input"],["matSelect","","name","dialect","formControlName","dialect","appearance","outline","id","spanner-dialect-input"],["class","success","matTooltip","Source Connection Successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","id","test-connect-btn","type","submit","color","accent",3,"disabled","click"],["mat-raised-button","","id","connect-btn","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","",3,"routerLink"],[3,"value"],[1,"shardingConfig"],[1,"flex-container"],["appearance","outline",1,"flex-item"],["formControlName","isSharded"],["matTooltip","Configure multiple source database instances (shards) and consolidate them by migrating to a single Cloud Spanner instance to take advantage of Spanner's horizontal scalability and consistency semantics.",1,"flex-item","configure"],[1,"flex-item","rounded-chip",3,"removable"],[4,"ngIf"],["matTooltip","Source Connection Successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h3",3),h(4,"Connect to Source Database"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),A("selectionChange",function(){return o.refreshDbSpecifcConnectionOptions()}),y(9,ioe,2,2,"mat-option",6),l()(),y(10,roe,13,3,"div",7),D(11,"br"),d(12,"h3",3),h(13,"Connection Detail"),l(),d(14,"mat-form-field",4)(15,"mat-label"),h(16,"Hostname"),l(),D(17,"input",8),l(),d(18,"mat-form-field",4)(19,"mat-label"),h(20,"Port"),l(),D(21,"input",9),d(22,"mat-error"),h(23," Only numbers are allowed. "),l()(),D(24,"br"),d(25,"mat-form-field",4)(26,"mat-label"),h(27,"User name"),l(),D(28,"input",10),l(),d(29,"mat-form-field",4)(30,"mat-label"),h(31,"Password"),l(),D(32,"input",11),l(),D(33,"br"),d(34,"mat-form-field",4)(35,"mat-label"),h(36,"Database Name"),l(),D(37,"input",12),l(),D(38,"br"),d(39,"h3",3),h(40,"Spanner Dialect"),l(),d(41,"mat-form-field",4)(42,"mat-label"),h(43,"Spanner dialect"),l(),d(44,"mat-select",13),y(45,aoe,2,2,"mat-option",6),l()(),D(46,"br"),y(47,soe,2,0,"mat-icon",14),d(48,"button",15),A("click",function(){return o.testConn()}),h(49," Test Connection "),l(),d(50,"button",16),A("click",function(){return o.connectToDb()}),h(51," Connect "),l(),d(52,"button",17),h(53,"Cancel"),l()()()()),2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(),f("ngIf","mysql"===o.connectForm.value.dbEngine),m(35),f("ngForOf",o.dialect),m(2),f("ngIf",o.isTestConnectionSuccessful),m(),f("disabled",!o.connectForm.valid),m(2),f("disabled",!o.connectForm.valid||!o.isTestConnectionSuccessful),m(2),f("routerLink","/"))},dependencies:[rn,It,Gr,Yt,Mi,Di,xi,iC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,uc,vn],styles:[".connect-load-database-container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:0}.configure[_ngcontent-%COMP%]{color:#1967d2}.flex-container[_ngcontent-%COMP%]{display:flex;align-items:center}.flex-item[_ngcontent-%COMP%]{margin-right:8px;align-self:baseline}.rounded-chip[_ngcontent-%COMP%]{background-color:#fff!important;color:#0f33ab!important;border-radius:16px;padding:6px 12px;border:1px solid black;cursor:not-allowed;pointer-events:none}"]})}return t})();function loe(t,n){if(1&t){const e=_e();d(0,"button",7),A("click",function(){return ie(e),ne(C().onConfirm())}),h(1," Continue "),l()}}let Uo=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,void 0===i.title&&(i.title="Update can not be saved")}ngOnInit(){}onConfirm(){this.dialogRef.close(!0)}onDismiss(){this.dialogRef.close(!1)}getIconFromMessageType(){switch(this.data.type){case"warning":return"warning";case"error":return"error";case"success":return"check_circle";default:return"message"}}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-infodialog"]],decls:9,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],["mat-dialog-content",""],[1,"dialog-message",3,"innerHtml"],["mat-dialog-actions","",1,"dialog-action"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","color","primary",3,"click",4,"ngIf"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h1",1),h(2),l(),d(3,"div",2),D(4,"p",3),l(),d(5,"div",4)(6,"button",5),h(7,"CANCEL"),l(),y(8,loe,2,0,"button",6),l()()),2&i&&(m(2),Pe(o.data.title),m(2),f("innerHtml",o.data.message,M1),m(4),f("ngIf","error"!=o.data.type))},dependencies:[It,Yt,zn,tee,So,ko]})}return t})();function ON(t=0,n=Pu){return t<0&&(t=0),Pf(t,t,n)}let doe=(()=>{class t{constructor(e,i){this.fetch=e,this.dialog=i,this.healthCheckSubscription=new de,this.unHealthyCheckCount=0,this.MAX_UNHEALTHY_CHECK_ATTEMPTS=5}startHealthCheck(){this.healthCheckSubscription=ON(5e3).subscribe(()=>{this.checkBackendHealth()})}stopHealthCheck(){this.healthCheckSubscription&&this.healthCheckSubscription.unsubscribe()}checkBackendHealth(){this.checkHealth().subscribe(e=>{e?this.unHealthyCheckCount=0:(this.unHealthyCheckCount==this.MAX_UNHEALTHY_CHECK_ATTEMPTS&&this.openHealthDialog(),this.unHealthyCheckCount++)})}openHealthDialog(){let e=this.dialog.open(Uo,{width:"500px",data:{message:"Please check terminal logs for more details. In case of a crash please file a github issue with all the details.",type:"error",title:"Spanner migration tool unresponsive"}});this.stopHealthCheck(),e.afterClosed().subscribe(()=>{this.startHealthCheck()})}checkHealth(){return Xi(this.fetch.checkBackendHealth()).pipe(nt(()=>!0),Li(()=>Ke(!1)))}ngOnDestroy(){this.stopHealthCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(zr))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function uoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function hoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function moe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",24)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.sessionName,o)||(r.filterColumnsValue.sessionName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"sessionName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.sessionName)}}function poe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Session Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("sessionName"))}),y(5,uoe,2,0,"mat-icon",22)(6,hoe,2,0,"mat-icon",22),l()(),y(7,moe,4,1,"mat-form-field",23),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.sessionName),m(),f("ngIf",!e.displayFilter.sessionName),m(),f("ngIf",e.displayFilter.sessionName)}}function foe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.SessionName)}}function goe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function _oe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function boe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.editorName,o)||(r.filterColumnsValue.editorName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"editorName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.editorName)}}function voe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Editor"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("editorName"))}),y(5,goe,2,0,"mat-icon",22)(6,_oe,2,0,"mat-icon",22),l()(),y(7,boe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.editorName),m(),f("ngIf",!e.displayFilter.editorName),m(),f("ngIf",e.displayFilter.editorName)}}function yoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.EditorName)}}function Coe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function woe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function xoe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseType,o)||(r.filterColumnsValue.databaseType=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseType"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseType)}}function Doe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Type"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseType"))}),y(5,Coe,2,0,"mat-icon",22)(6,woe,2,0,"mat-icon",22),l()(),y(7,xoe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseType),m(),f("ngIf",!e.displayFilter.databaseType),m(),f("ngIf",e.displayFilter.databaseType)}}function Soe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseType)}}function koe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Moe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Toe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseName,o)||(r.filterColumnsValue.databaseName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseName)}}function Ioe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseName"))}),y(5,koe,2,0,"mat-icon",22)(6,Moe,2,0,"mat-icon",22),l()(),y(7,Toe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseName),m(),f("ngIf",!e.displayFilter.databaseName),m(),f("ngIf",e.displayFilter.databaseName)}}function Eoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseName)}}function Ooe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Aoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Poe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.dialect,o)||(r.filterColumnsValue.dialect=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"dialect"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.dialect)}}function Roe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Spanner Dialect"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("dialect"))}),y(5,Ooe,2,0,"mat-icon",22)(6,Aoe,2,0,"mat-icon",22),l()(),y(7,Poe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.dialect),m(),f("ngIf",!e.displayFilter.dialect),m(),f("ngIf",e.displayFilter.dialect)}}function Noe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Dialect)}}function Foe(t,n){1&t&&(d(0,"th",19),h(1,"Notes"),l())}function Loe(t,n){if(1&t){const e=_e();d(0,"button",34),A("click",function(){ie(e);const o=C(2).index,r=C(2);return ne(r.notesToggle[o]=!r.notesToggle[o])}),h(1," ... "),l()}}function Boe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e)}}function Voe(t,n){if(1&t&&(d(0,"div"),y(1,Boe,2,1,"p",35),l()),2&t){const e=C(2).$implicit;m(),f("ngForOf",e.Notes)}}function joe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),Pe(null==e.Notes||null==e.Notes[0]?null:e.Notes[0].substring(0,20))}}function zoe(t,n){if(1&t&&(d(0,"div",30),y(1,Loe,2,0,"button",31)(2,Voe,2,1,"div",32)(3,joe,2,1,"ng-template",null,33,_r),l()),2&t){const e=Ft(4),i=C(),o=i.$implicit,r=i.index,a=C(2);m(),f("ngIf",(null==o.Notes?null:o.Notes.length)>1||(null==o.Notes[0]?null:o.Notes[0].length)>20),m(),f("ngIf",a.notesToggle[r])("ngIfElse",e)}}function Hoe(t,n){if(1&t&&(d(0,"td",26),y(1,zoe,5,3,"div",29),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.Notes)}}function Uoe(t,n){1&t&&(d(0,"th",19),h(1,"Created At"),l())}function $oe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit,i=C(2);m(),Pe(i.convertDateTime(e.CreateTimestamp))}}function Goe(t,n){1&t&&D(0,"th",19)}function qoe(t,n){if(1&t){const e=_e();d(0,"td",26)(1,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).resumeFromSessionFile(r.VersionId))}),h(2," Resume "),l(),d(3,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).downloadSessionFile(r.VersionId,r.SessionName,r.DatabaseType,r.DatabaseName))}),h(4," Download "),l()()}}function Woe(t,n){1&t&&D(0,"tr",37)}function Koe(t,n){1&t&&D(0,"tr",38)}function Zoe(t,n){if(1&t&&(d(0,"div",5)(1,"table",6),pe(2,7),y(3,poe,8,3,"th",8)(4,foe,2,1,"td",9),fe(),pe(5,10),y(6,voe,8,3,"th",8)(7,yoe,2,1,"td",9),fe(),pe(8,11),y(9,Doe,8,3,"th",8)(10,Soe,2,1,"td",9),fe(),pe(11,12),y(12,Ioe,8,3,"th",8)(13,Eoe,2,1,"td",9),fe(),pe(14,13),y(15,Roe,8,3,"th",8)(16,Noe,2,1,"td",9),fe(),pe(17,14),y(18,Foe,2,0,"th",8)(19,Hoe,2,1,"td",9),fe(),pe(20,15),y(21,Uoe,2,0,"th",8)(22,$oe,2,1,"td",9),fe(),pe(23,16),y(24,Goe,1,0,"th",8)(25,qoe,5,0,"td",9),fe(),y(26,Woe,1,0,"tr",17)(27,Koe,1,0,"tr",18),l()()),2&t){const e=C();m(),f("dataSource",e.filteredDataSource),m(25),f("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",!0),m(),f("matRowDefColumns",e.displayedColumns)}}function Yoe(t,n){if(1&t){const e=_e();d(0,"div",39),ei(),d(1,"svg",40),D(2,"rect",41)(3,"path",42),l(),mr(),d(4,"button",43),A("click",function(){return ie(e),ne(C().openSpannerConfigDialog())}),h(5," Configure Spanner Details "),l(),d(6,"span"),h(7,"Do not have any previous session to display. "),d(8,"u"),h(9," OR "),l(),D(10,"br"),h(11," Invalid Spanner configuration. "),l()()}}let Qoe=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.router=o,this.clickEvent=r,this.displayedColumns=["SessionName","EditorName","DatabaseType","DatabaseName","Dialect","Notes","CreateTimestamp","Action"],this.notesToggle=[],this.dataSource=[],this.filteredDataSource=[],this.filterColumnsValue={sessionName:"",editorName:"",databaseType:"",databaseName:"",dialect:""},this.displayFilter={sessionName:!1,editorName:!1,databaseType:!1,databaseName:!1,dialect:!1}}ngOnInit(){this.data.getAllSessions(),this.data.sessions.subscribe({next:e=>{null!=e?(this.filteredDataSource=e,this.dataSource=e):(this.filteredDataSource=[],this.dataSource=[])}})}toggleFilterDisplay(e){this.displayFilter[e]=!this.displayFilter[e]}updateFilterValue(e,i){e.stopPropagation(),this.filterColumnsValue[i]=e.target.value,this.applyFilter()}applyFilter(){this.filteredDataSource=this.dataSource.filter(e=>!!e.SessionName.toLowerCase().includes(this.filterColumnsValue.sessionName.toLowerCase())).filter(e=>!!e.EditorName.toLowerCase().includes(this.filterColumnsValue.editorName.toLowerCase())).filter(e=>!!e.DatabaseType.toLowerCase().includes(this.filterColumnsValue.databaseType.toLowerCase())).filter(e=>!!e.DatabaseName.toLowerCase().includes(this.filterColumnsValue.databaseName.toLowerCase())).filter(e=>!!e.Dialect.toLowerCase().includes(this.filterColumnsValue.dialect.toLowerCase()))}downloadSessionFile(e,i,o,r){this.fetch.getConvForSession(e).subscribe(a=>{var s=document.createElement("a");s.href=URL.createObjectURL(a),s.download=`${i}_${o}_${r}.json`,s.click()})}resumeFromSessionFile(e){this.data.resetStore(),this.data.getSchemaConversionFromResumeSession(e),this.data.conv.subscribe(i=>{localStorage.setItem(Wi.Config,e),localStorage.setItem(Wi.Type,Jn.ResumeSession),this.router.navigate(["/workspace"])})}openSpannerConfigDialog(){this.clickEvent.openSpannerConfig()}convertDateTime(e){return(e=(e=new Date(e).toString()).substring(e.indexOf(" ")+1)).substring(0,e.indexOf("("))}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(Rn),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-session-listing"]],decls:8,vars:2,consts:[[1,"sessions-wrapper"],[1,"primary-header"],[1,"summary"],["class","session-container mat-elevation-z3",4,"ngIf"],["class","mat-elevation-z3 warning-container",4,"ngIf"],[1,"session-container","mat-elevation-z3"],["mat-table","",3,"dataSource"],["matColumnDef","SessionName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","EditorName"],["matColumnDef","DatabaseType"],["matColumnDef","DatabaseName"],["matColumnDef","Dialect"],["matColumnDef","Notes"],["matColumnDef","CreateTimestamp"],["matColumnDef","Action"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[1,"table-header-container"],["mat-icon-button","",3,"click"],[4,"ngIf"],["appearance","outline","class","full-width",4,"ngIf"],["appearance","outline",1,"full-width"],["matInput","","autocomplete","off",3,"ngModel","ngModelChange","keyup"],["mat-cell",""],["appearance","outline",4,"ngIf"],["appearance","outline"],["class","notes-wrapper",4,"ngIf"],[1,"notes-wrapper"],["class","notes-toggle-button",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["short",""],[1,"notes-toggle-button",3,"click"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],["mat-header-row",""],["mat-row",""],[1,"mat-elevation-z3","warning-container"],["width","49","height","48","viewBox","0 0 49 48","fill","none","xmlns","http://www.w3.org/2000/svg"],["x","0.907227","width","48","height","48","rx","4","fill","#E6ECFA"],["fill-rule","evenodd","clip-rule","evenodd","d","M17.9072 15C16.8027 15 15.9072 15.8954 15.9072 17V31C15.9072 32.1046 16.8027 33 17.9072 33H31.9072C33.0118 33 33.9072 32.1046 33.9072 31V17C33.9072 15.8954 33.0118 15 31.9072 15H17.9072ZM20.9072 18H18.9072V20H20.9072V18ZM21.9072 18H23.9072V20H21.9072V18ZM20.9072 23H18.9072V25H20.9072V23ZM21.9072 23H23.9072V25H21.9072V23ZM20.9072 28H18.9072V30H20.9072V28ZM21.9072 28H23.9072V30H21.9072V28ZM30.9072 18H24.9072V20H30.9072V18ZM24.9072 23H30.9072V25H24.9072V23ZM30.9072 28H24.9072V30H30.9072V28Z","fill","#3367D6"],["mat-button","","color","primary",1,"spanner-config-button",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Session history"),l(),d(3,"div",2),h(4," Choose a session to resume an existing migration session, or download the session file. "),l(),D(5,"br"),y(6,Zoe,28,4,"div",3)(7,Yoe,12,0,"div",4),l()),2&i&&(m(6),f("ngIf",o.dataSource.length>0),m(),f("ngIf",0===o.dataSource.length))},dependencies:[rn,It,Yt,ba,Mi,Di,xi,qi,Ci,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,Nl],styles:[".session-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.session-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .table-header-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.sessions-wrapper[_ngcontent-%COMP%]{margin-top:20px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:57vh;text-align:center}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-bottom:10px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] .spanner-config-button[_ngcontent-%COMP%]{text-decoration:underline}.mat-mdc-column-Notes[_ngcontent-%COMP%]{max-width:200px;padding-right:10px}.notes-toggle-button[_ngcontent-%COMP%]{float:right;margin-right:32px;background-color:#f5f5f5;border:none;border-radius:2px;padding:0 5px 5px}.notes-toggle-button[_ngcontent-%COMP%]:hover{background-color:#ebe7e7;cursor:pointer}.notes-wrapper[_ngcontent-%COMP%]{margin-top:10px}.mat-mdc-column-SessionName[_ngcontent-%COMP%], .mat-mdc-column-EditorName[_ngcontent-%COMP%], .mat-mdc-column-DatabaseType[_ngcontent-%COMP%], .mat-mdc-column-DatabaseName[_ngcontent-%COMP%], .mat-mdc-column-Dialect[_ngcontent-%COMP%]{width:13vw;min-width:150px}.mat-mdc-column-Action[_ngcontent-%COMP%], .mat-mdc-column-Notes[_ngcontent-%COMP%], .mat-mdc-column-CreateTimestamp[_ngcontent-%COMP%]{width:15vw;min-width:150px}.mat-mdc-form-field[_ngcontent-%COMP%]{width:80%}"]})}return t})(),Xoe=(()=>{class t{constructor(e,i,o){this.dialog=e,this.router=i,this.healthCheckService=o}ngOnInit(){this.healthCheckService.startHealthCheck(),null!=localStorage.getItem(he.IsMigrationInProgress)&&"true"===localStorage.getItem(he.IsMigrationInProgress)&&(this.dialog.open(Uo,{data:{title:"Redirecting to prepare migration page",message:"Another migration already in progress",type:"error"},maxWidth:"500px"}),this.router.navigate(["/prepare-migration"]))}static#e=this.\u0275fac=function(i){return new(i||t)(_(zr),_(Rn),_(doe))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-home"]],decls:21,vars:4,consts:[[1,"container"],[1,"primary-header"],[1,"summary","global-font-color","body-font-size"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool#readme","target","_blank"],[1,"btn-source-select"],["mat-raised-button","","color","primary","id","connect-to-database-btn",1,"split-button-left",3,"routerLink"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"routerLink"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Get started with Spanner migration tool"),l(),d(3,"div",2),h(4," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation and migration, using data from an existing PostgreSQL, MySQL, SQL Server, Oracle or DynamoDB database. "),d(5,"a",3),h(6,"Learn More"),l(),h(7,". "),l(),d(8,"div",4)(9,"button",5),h(10," Connect to database "),l(),d(11,"button",6)(12,"mat-icon",7),h(13,"expand_more"),l()(),d(14,"mat-menu",8,9)(16,"button",10),h(17,"Load database dump"),l(),d(18,"button",10),h(19,"Load session file"),l()()(),D(20,"app-session-listing"),l()),2&i){const r=Ft(15);m(9),f("routerLink","/source/direct-connection"),m(2),f("matMenuTriggerFor",r),m(5),f("routerLink","/source/load-dump"),m(2),f("routerLink","/source/load-session")}},dependencies:[Gr,Yt,Mi,jl,wa,zl,Qoe],styles:[".container[_ngcontent-%COMP%]{padding:7px 27px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{width:500px;font-weight:lighter}.container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 5px}.container[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-color:#fff;margin-bottom:20px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{margin:20px 0;padding-bottom:5px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}"]})}return t})(),eo=(()=>{class t{constructor(){this.sidenavOpenSub=new mt(!1),this.sidenavComponentSub=new mt(""),this.sidenavRuleTypeSub=new mt(""),this.sidenavAddIndexTableSub=new mt(""),this.setSidenavDatabaseNameSub=new mt(""),this.ruleDataSub=new mt({}),this.displayRuleFlagSub=new mt(!1),this.setMiddleColumn=new mt(!1),this.isSidenav=this.sidenavOpenSub.asObservable(),this.sidenavComponent=this.sidenavComponentSub.asObservable(),this.sidenavRuleType=this.sidenavRuleTypeSub.asObservable(),this.sidenavAddIndexTable=this.sidenavAddIndexTableSub.asObservable(),this.sidenavDatabaseName=this.setSidenavDatabaseNameSub.asObservable(),this.ruleData=this.ruleDataSub.asObservable(),this.displayRuleFlag=this.displayRuleFlagSub.asObservable(),this.setMiddleColumnComponent=this.setMiddleColumn.asObservable()}openSidenav(){this.sidenavOpenSub.next(!0)}closeSidenav(){this.sidenavOpenSub.next(!1)}setSidenavComponent(e){this.sidenavComponentSub.next(e)}setSidenavRuleType(e){this.sidenavRuleTypeSub.next(e)}setSidenavAddIndexTable(e){this.sidenavAddIndexTableSub.next(e)}setSidenavDatabaseName(e){this.setSidenavDatabaseNameSub.next(e)}setRuleData(e){this.ruleDataSub.next(e)}setDisplayRuleFlag(e){this.displayRuleFlagSub.next(e)}setMiddleColComponent(e){this.setMiddleColumn.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),AN=(()=>{class t{constructor(e){this.sidenav=e}ngOnInit(){}closeInstructionSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-instruction"]],decls:150,vars:0,consts:[[1,"instructions-div"],[1,"instruction-header-div"],["mat-icon-button","",3,"click"],["src","../../../assets/icons/google-spanner-logo.png",1,"instructions-icon"],[1,"textCenter"],[1,"instructions-main-heading"],[1,"instructions-sub-heading"],[1,"instructions-command"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool",1,"instructionsLink"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"button",2),A("click",function(){return o.closeInstructionSidenav()}),d(3,"mat-icon"),h(4,"close"),l()()(),D(5,"img",3),d(6,"h1",4),h(7,"Spanner migration tool User Manual"),l(),D(8,"br")(9,"br"),d(10,"h3",5),h(11,"1 \xa0 \xa0 \xa0Introduction"),l(),d(12,"p"),h(13," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation, using data from an existing PostgreSQL or MySQL database. The tool ingests schema and data from either a pg_dump/mysqldump file or directly from the source database, automatically builds a Spanner schema, and creates a new Spanner database populated with data from the source database. "),D(14,"br")(15,"br")(16,"br"),h(17," Spanner migration tool is designed to simplify Spanner evaluation, and in particular to bootstrap the process by getting moderate-size PostgreSQL/MySQL datasets into Spanner (up to a few tens of GB). Many features of PostgreSQL/MySQL, especially those that don't map directly to Spanner features, are ignored, e.g. (non-primary) indexes, functions, and sequences. Types such as integers, floats, char/text, bools, timestamps, and (some) array types, map fairly directly to Spanner, but many other types do not and instead are mapped to Spanner's STRING(MAX). "),l(),D(18,"br"),d(19,"h4",6),h(20,"1.1 \xa0 \xa0 \xa0Spanner migration tool UI"),l(),d(21,"p"),h(22," Spanner migration tool UI is designed to focus on generating spanner schema from either a pg_dump/mysqldump file or directly from the source database and providing edit functionality to the spanner schema and thereby creating a new spanner database populated with new data. UI gives the provision to edit column name, edit data type, edit constraints, drop foreign key and drop secondary index of spanner schema. "),l(),D(23,"br"),d(24,"h3",5),h(25,"2 \xa0 \xa0 \xa0Key Features of UI"),l(),d(26,"ul")(27,"li"),h(28,"Connecting to a new database"),l(),d(29,"li"),h(30,"Load dump file"),l(),d(31,"li"),h(32,"Load session file"),l(),d(33,"li"),h(34,"Storing session for each conversion"),l(),d(35,"li"),h(36,"Edit data type globally for each table in schema"),l(),d(37,"li"),h(38,"Edit data type, column name, constraint for a particular table"),l(),d(39,"li"),h(40,"Edit foreign key and secondary index name"),l(),d(41,"li"),h(42,"Drop a column from a table"),l(),d(43,"li"),h(44,"Drop foreign key from a table"),l(),d(45,"li"),h(46,"Drop secondary index from a table"),l(),d(47,"li"),h(48,"Convert foreign key into interleave table"),l(),d(49,"li"),h(50,"Search a table"),l(),d(51,"li"),h(52,"Download schema, report and session files"),l()(),D(53,"br"),d(54,"h3",5),h(55,"3 \xa0 \xa0 \xa0UI Setup"),l(),d(56,"ul")(57,"li"),h(58,"Install go in local"),l(),d(59,"li"),h(60," Clone Spanner migration tool project and run following command in the terminal: "),D(61,"br"),d(62,"span",7),h(63,"go run main.go --web"),l()(),d(64,"li"),h(65,"Open "),d(66,"span",7),h(67,"http://localhost:8080"),l(),h(68,"in browser"),l()(),D(69,"br"),d(70,"h3",5),h(71," 4 \xa0 \xa0 \xa0Different modes to select source database "),l(),d(72,"h4",6),h(73,"4.1 \xa0 \xa0 \xa0Connect to Database"),l(),d(74,"ul")(75,"li"),h(76,"Enter database details in connect to database dialog box"),l(),d(77,"li"),h(78," Input Fields: database type, database host, database port, database user, database name, database password "),l()(),d(79,"h4",6),h(80,"4.2 \xa0 \xa0 \xa0Load Database Dump"),l(),d(81,"ul")(82,"li"),h(83,"Enter dump file path in load database dialog box"),l(),d(84,"li"),h(85,"Input Fields: database type, file path"),l()(),d(86,"h4",6),h(87,"4.3 \xa0 \xa0 \xa0Import Schema File"),l(),d(88,"ul")(89,"li"),h(90,"Enter session file path in load session dialog box"),l(),d(91,"li"),h(92,"Input Fields: database type, session file path"),l()(),d(93,"h3",5),h(94,"5 \xa0 \xa0 \xa0Session Table"),l(),d(95,"ul")(96,"li"),h(97,"Session table is used to store the previous sessions of schema conversion"),l()(),d(98,"h3",5),h(99,"6 \xa0 \xa0 \xa0Edit Global Data Type"),l(),d(100,"ul")(101,"li"),h(102,"Click on edit global data type button on the screen"),l(),d(103,"li"),h(104,"Select required spanner data type from the dropdown available for each source data type"),l(),d(105,"li"),h(106,"Click on next button after making all the changes"),l()(),d(107,"h3",5),h(108," 7 \xa0 \xa0 \xa0Edit Spanner Schema for a particular table "),l(),d(109,"ul")(110,"li"),h(111,"Expand any table"),l(),d(112,"li"),h(113,"Click on edit spanner schema button"),l(),d(114,"li"),h(115,"Edit column name/ data type/ constraint of spanner schema"),l(),d(116,"li"),h(117,"Edit name of secondary index or foreign key"),l(),d(118,"li"),h(119,"Select to convert foreign key to interleave or use as is (if option is available)"),l(),d(120,"li"),h(121,"Drop a column by unselecting any checkbox"),l(),d(122,"li"),h(123," Drop a foreign key or secondary index by expanding foreign keys or secondary indexes tab inside table "),l(),d(124,"li"),h(125,"Click on save changes button to save the changes"),l(),d(126,"li"),h(127," If current table is involved in foreign key/secondary indexes relationship with other table then user will be prompt to delete foreign key or secondary indexes and then proceed with save changes "),l()(),d(128,"p"),h(129,"- Warning before deleting secondary index from a table"),l(),d(130,"p"),h(131,"- Error on saving changes"),l(),d(132,"p"),h(133,"- Changes saved successfully after resolving all errors"),l(),d(134,"h3",5),h(135,"8 \xa0 \xa0 \xa0Download Session File"),l(),d(136,"ul")(137,"li"),h(138,"Save all the changes done in spanner schema table wise or globally"),l(),d(139,"li"),h(140,"Click on download session file button on the top right corner"),l(),d(141,"li"),h(142,"Save the generated session file with all the changes in local machine"),l()(),d(143,"h3",5),h(144,"9 \xa0 \xa0 \xa0How to use Session File"),l(),d(145,"p"),h(146," Please refer below link to get more information on how to use session file with Spanner migration tool "),l(),d(147,"a",8),h(148,"Refer this to use Session File"),l(),D(149,"br"),l())},dependencies:[ba,Mi],styles:[".instructions-div[_ngcontent-%COMP%]{padding:5px 20px 20px}.instructions-div[_ngcontent-%COMP%] .instruction-header-div[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.instructions-icon[_ngcontent-%COMP%]{height:200px;display:block;margin-left:auto;margin-right:auto}.textCenter[_ngcontent-%COMP%]{text-align:center}.instructions-main-heading[_ngcontent-%COMP%]{font-size:1.25rem;color:#4285f4;font-weight:700}.instructions-sub-heading[_ngcontent-%COMP%]{font-size:1rem;color:#4285f4;font-weight:700}.instructions-command[_ngcontent-%COMP%]{background-color:#8080806b;border-radius:5px;padding:0 5px}.instructions-img-width[_ngcontent-%COMP%]{width:800px}.instructionsLink[_ngcontent-%COMP%]{color:#4285f4;text-decoration:underline}"]})}return t})();const Joe=["determinateSpinner"];function ere(t,n){if(1&t&&(ei(),d(0,"svg",11),D(1,"circle",12),l()),2&t){const e=C();Je("viewBox",e._viewBox()),m(),Sn("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Je("r",e._circleRadius())}}const tre=is(class{constructor(t){this._elementRef=t}},"primary"),ire=new se("mat-progress-spinner-default-options",{providedIn:"root",factory:function nre(){return{diameter:PN}}}),PN=100;let sd=(()=>{class t extends tre{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=PN,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,yi(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=yi(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=yi(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ui,8),_(ire))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&vt(Joe,5),2&i){let r;Oe(r=Ae())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(i,o){2&i&&(Je("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Sn("width",o.diameter,"px")("height",o.diameter,"px")("--mdc-circular-progress-size",o.diameter+"px")("--mdc-circular-progress-active-indicator-width",o.diameter+"px"),et("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[ve],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,o){if(1&i&&(y(0,ere,2,8,"ng-template",null,0,_r),d(2,"div",1,2),ei(),d(4,"svg",3),D(5,"circle",4),l()(),mr(),d(6,"div",5)(7,"div",6)(8,"div",7),ro(9,8),l(),d(10,"div",9),ro(11,8),l(),d(12,"div",10),ro(13,8),l()()()),2&i){const r=Ft(1);m(4),Je("viewBox",o._viewBox()),m(),Sn("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Je("r",o._circleRadius()),m(4),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r)}},dependencies:[kp],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}return t})(),rre=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt]})}return t})();function are(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function sre(t,n){1&t&&D(0,"mat-spinner",18),2&t&&f("diameter",25)}function cre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"check_circle"),l())}function lre(t,n){1&t&&(d(0,"mat-icon",20),h(1,"cancel"),l())}function dre(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}let ure=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new q("mysqldump",[ee.required]),filePath:new q("",[ee.required]),dialect:new q("",[ee.required])}),this.dbEngineList=[{value:"mysqldump",displayName:"MySQL"},{value:"pg_dump",displayName:"PostgreSQL"}],this.dialect=DN,this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromDump(){this.clickEvent.openDatabaseLoader("dump",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i,dialect:o}=this.connectForm.value,s={Config:{Driver:e,Path:i},SpannerDetails:{Dialect:o}};this.getSchemaRequest=this.data.getSchemaConversionFromDump(s),this.data.conv.subscribe(c=>{localStorage.setItem(Wi.Config,JSON.stringify(s)),localStorage.setItem(Wi.Type,Jn.DumpFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-dump"]],decls:36,vars:8,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["matSelect","","name","dialect","formControlName","dialect","appearance","outline"],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromDump()}),d(3,"h3",3),h(4,"Load from database dump"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,are,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Dump File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,sre,1,1,"mat-spinner",8)(17,cre,2,0,"mat-icon",9)(18,lre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"h3",3),h(25,"Spanner Dialect"),l(),d(26,"mat-form-field",4)(27,"mat-label"),h(28,"Select a spanner dialect"),l(),d(29,"mat-select",14),y(30,dre,2,2,"mat-option",6),l()(),D(31,"br"),d(32,"button",15),h(33," Convert "),l(),d(34,"button",16),h(35,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(12),f("ngForOf",o.dialect),m(2),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,Gr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function hre(t,n){if(1&t&&(d(0,"mat-option",16),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function mre(t,n){1&t&&D(0,"mat-spinner",17),2&t&&f("diameter",25)}function pre(t,n){1&t&&(d(0,"mat-icon",18),h(1,"check_circle"),l())}function fre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"cancel"),l())}let gre=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new q("mysql",[ee.required]),filePath:new q("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromSessionFile(){this.clickEvent.openDatabaseLoader("session",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i}=this.connectForm.value,o={driver:e,filePath:i};this.getSchemaRequest=this.data.getSchemaConversionFromSession(o),this.data.conv.subscribe(r=>{localStorage.setItem(Wi.Config,JSON.stringify(o)),localStorage.setItem(Wi.Type,Jn.SessionFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-session"]],decls:28,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromSessionFile()}),d(3,"h3",3),h(4,"Load from session"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,hre,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Session File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,mre,1,1,"mat-spinner",8)(17,pre,2,0,"mat-icon",9)(18,fre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"button",14),h(25," Convert "),l(),d(26,"button",15),h(27,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(6),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,Gr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function _re(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),De("Reading schema for ",e.databaseName," database. Please wait...")}}function bre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool will read the information schema at source and automatically map it to Cloud Spanner"),l())}function vre(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),De("Testing connection to ",e.databaseName," database...")}}function yre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool is attempting to ping the source database, it will retry a couple of times before timing out."),l())}function Cre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the dump file..."),l())}function wre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the session file..."),l())}let xre=(()=>{class t{constructor(e,i){this.router=e,this.clickEvent=i,this.loaderType="",this.databaseName="",this.timeElapsed=0,this.timeElapsedInterval=setInterval(()=>{this.timeElapsed+=1},1e3)}ngOnInit(){this.timeElapsed=0}ngOnDestroy(){clearInterval(this.timeElapsedInterval)}cancelDbLoad(){this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/"])}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-database-loader"]],inputs:{loaderType:"loaderType",databaseName:"databaseName"},decls:12,vars:7,consts:[[1,"container","content-height"],["src","../../../assets/gifs/database-loader.gif","alt","database-loader-gif",1,"loader-gif"],[4,"ngIf"],["mat-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"img",1),y(2,_re,2,1,"h3",2)(3,bre,2,0,"h4",2)(4,vre,2,1,"h3",2)(5,yre,2,0,"h4",2)(6,Cre,2,0,"h3",2)(7,wre,2,0,"h3",2),d(8,"h5"),h(9),l(),d(10,"button",3),A("click",function(){return o.cancelDbLoad()}),h(11,"Cancel"),l()()),2&i&&(m(2),f("ngIf","direct"===o.loaderType),m(),f("ngIf","direct"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","dump"===o.loaderType),m(),f("ngIf","session"===o.loaderType),m(2),De("",o.timeElapsed," seconds have elapsed"))},dependencies:[It,Yt],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .loader-gif[_ngcontent-%COMP%]{width:10rem;height:10rem}"]})}return t})();function Dre(t,n){1&t&&(d(0,"div"),D(1,"router-outlet"),l())}function Sre(t,n){if(1&t&&(d(0,"div"),D(1,"app-database-loader",1),l()),2&t){const e=C();m(),f("loaderType",e.loaderType)("databaseName",e.databaseName)}}let kre=(()=>{class t{constructor(e){this.clickevent=e,this.isDatabaseLoading=!1,this.loaderType="",this.databaseName=""}ngOnInit(){this.clickevent.databaseLoader.subscribe(e=>{this.loaderType=e.type,this.databaseName=e.databaseName,this.isDatabaseLoading=""!==this.loaderType})}static#e=this.\u0275fac=function(i){return new(i||t)(_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-selection"]],decls:2,vars:2,consts:[[4,"ngIf"],[3,"loaderType","databaseName"]],template:function(i,o){1&i&&y(0,Dre,2,0,"div",0)(1,Sre,2,2,"div",0),2&i&&(f("ngIf",!o.isDatabaseLoading),m(),f("ngIf",o.isDatabaseLoading))},dependencies:[It,Cg,xre],styles:[".mat-card-class[_ngcontent-%COMP%]{padding:0 20px}"]})}return t})();var RN=Re(304);function Mre(t,n){if(1&t){const e=_e();d(0,"mat-chip-row",16),A("removed",function(){const r=ie(e).$implicit;return ne(C().removeFilter(r))}),h(1),d(2,"button",17)(3,"mat-icon"),h(4,"cancel"),l()()()}if(2&t){const e=n.$implicit;m(),De(" ",e," ")}}function Tre(t,n){if(1&t){const e=_e();d(0,"mat-option",18),A("click",function(){const r=ie(e).$implicit;return ne(C().addFilter(r))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e),m(),De(" ",e," ")}}function Ire(t,n){1&t&&(d(0,"mat-icon",31),h(1," error "),l())}function Ere(t,n){1&t&&(d(0,"mat-icon",32),h(1," warning "),l())}function Ore(t,n){1&t&&(d(0,"mat-icon",33),h(1," wb_incandescent "),l())}function Are(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function Pre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as read"),l()()}}function Rre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as unread"),l()()}}function Nre(t,n){if(1&t&&(d(0,"section",21)(1,"div",2)(2,"div",3),y(3,Ire,2,0,"mat-icon",22)(4,Ere,2,0,"mat-icon",23)(5,Ore,2,0,"mat-icon",24)(6,Are,2,0,"mat-icon",25),l(),d(7,"div",26),h(8),l(),d(9,"div",6)(10,"mat-icon",27),h(11,"more_vert"),l(),d(12,"mat-menu",28,29),y(14,Pre,3,0,"button",30)(15,Rre,3,0,"button",30),l()()()()),2&t){const e=n.$implicit,i=Ft(13);m(3),f("ngIf","error"==e.type),m(),f("ngIf","warning"==e.type),m(),f("ngIf","suggestion"==e.type),m(),f("ngIf","note"==e.type),m(2),Pe(e.content),m(2),f("matMenuTriggerFor",i),m(4),f("ngIf",!e.isRead),m(),f("ngIf",e.isRead)}}function Fre(t,n){if(1&t&&(d(0,"div",19),y(1,Nre,16,8,"section",20),l()),2&t){const e=C();m(),f("ngForOf",e.filteredSummaryRows)}}function Lre(t,n){1&t&&(d(0,"div",36)(1,"div",37),ei(),d(2,"svg",38),D(3,"path",39),l()(),mr(),d(4,"div",40),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l()())}let Bre=(()=>{class t{constructor(e,i){this.data=e,this.clickEvent=i,this.changeIssuesLabel=new Ne,this.summaryRows=[],this.summary=new Map,this.filteredSummaryRows=[],this.separatorKeysCodes=[],this.summaryCount=0,this.totalNoteCount=0,this.totalWarningCount=0,this.totalSuggestionCount=0,this.totalErrorCount=0,this.filterInput=new q,this.options=["read","unread","warning","suggestion","note","error"],this.obsFilteredOptions=new li,this.searchFilters=["unread","warning","note","suggestion","error"],this.currentObject=null}ngOnInit(){this.data.summary.subscribe({next:e=>{if(this.summary=e,this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.initialiseSummaryCollectionForAllTables(this.summary),this.summaryCount=this.totalNoteCount+this.totalErrorCount+this.totalSuggestionCount+this.totalWarningCount,this.changeIssuesLabel.emit(this.summaryCount)}}),this.registerAutoCompleteChange()}initialiseSummaryCollectionForAllTables(e){this.summaryRows=[],this.totalErrorCount=0,this.totalNoteCount=0,this.totalSuggestionCount=0,this.totalWarningCount=0;for(const i of e.values())this.initiateSummaryCollection(i);this.applyFilters()}ngOnChanges(e){if(this.currentObject=e?.currentObject?.currentValue||this.currentObject,this.summaryRows=[],this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.summaryCount=0,this.changeIssuesLabel.emit(0)}initiateSummaryCollection(e){this.totalErrorCount+=e.ErrorsCount,this.totalNoteCount+=e.NotesCount,this.totalWarningCount+=e.WarningsCount,this.totalSuggestionCount+=e.SuggestionsCount,e.Errors.forEach(i=>{this.summaryRows.push({type:"error",content:i.description,isRead:!1})}),e.Warnings.forEach(i=>{this.summaryRows.push({type:"warning",content:i.description,isRead:!1})}),e.Suggestions.forEach(i=>{this.summaryRows.push({type:"suggestion",content:i.description,isRead:!1})}),e.Notes.forEach(i=>{this.summaryRows.push({type:"note",content:i.description,isRead:!1})})}applyFilters(){let e=[],i=[];this.searchFilters.includes("read")&&i.push(o=>o.isRead),this.searchFilters.includes("unread")&&i.push(o=>!o.isRead),this.searchFilters.includes("warning")&&e.push(o=>"warning"==o.type),this.searchFilters.includes("note")&&e.push(o=>"note"==o.type),this.searchFilters.includes("suggestion")&&e.push(o=>"suggestion"==o.type),this.searchFilters.includes("error")&&e.push(o=>"error"==o.type),this.filteredSummaryRows=this.summaryRows.filter(o=>(!i.length||i.some(r=>r(o)))&&(!e.length||e.some(r=>r(o))))}addFilter(e){e&&!this.searchFilters.includes(e)&&this.searchFilters.push(e),this.applyFilters(),this.registerAutoCompleteChange()}removeFilter(e){const i=this.searchFilters.indexOf(e);i>=0&&this.searchFilters.splice(i,1),this.applyFilters()}toggleRead(e){e.isRead=!e.isRead,this.applyFilters()}registerAutoCompleteChange(){this.obsFilteredOptions=this.filterInput.valueChanges.pipe(an(""),nt(e=>this.autoCompleteOnChangeFilter(e)))}autoCompleteOnChangeFilter(e){return this.options.filter(i=>i.toLowerCase().includes(e))}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-summary"]],inputs:{currentObject:"currentObject"},outputs:{changeIssuesLabel:"changeIssuesLabel"},features:[fi],decls:29,vars:11,consts:[[1,"container"],[1,"filter"],[1,"columns"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],[1,"chip-list"],["chipGrid",""],["class","primary",3,"removed",4,"ngFor","ngForOf"],["placeholder","New Filter...",3,"formControl","matChipInputFor","matChipInputSeparatorKeyCodes","matChipInputAddOnBlur","matAutocomplete"],["auto","matAutocomplete"],[3,"value","click",4,"ngFor","ngForOf"],[1,"header"],["class","content",4,"ngIf"],["class","no-issue-container",4,"ngIf"],[1,"primary",3,"removed"],["matChipRemove",""],[3,"value","click"],[1,"content"],["class","summary-row",4,"ngFor","ngForOf"],[1,"summary-row"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above","class","danger",4,"ngIf"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above","class","warning",4,"ngIf"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above","class","suggestion",4,"ngIf"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above","class","success",4,"ngIf"],[1,"middle"],[3,"matMenuTriggerFor"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click",4,"ngIf"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above",1,"success"],["mat-menu-item","",3,"click"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div")(2,"div",1)(3,"div",2)(4,"div",3)(5,"span",4),h(6,"filter_list"),l(),d(7,"span",5),h(8,"Filter"),l()(),d(9,"div",6)(10,"mat-form-field",7)(11,"mat-chip-grid",null,8),y(13,Mre,5,1,"mat-chip-row",9),l(),D(14,"input",10),d(15,"mat-autocomplete",null,11),y(17,Tre,2,2,"mat-option",12),lu(18,"async"),l()()()()(),d(19,"div",13)(20,"div",2)(21,"div",3)(22,"span"),h(23," Status "),l()(),d(24,"div",6)(25,"span"),h(26," Summary "),l()()()(),y(27,Fre,2,1,"div",14)(28,Lre,8,0,"div",15),l()()),2&i){const r=Ft(12),a=Ft(16);m(13),f("ngForOf",o.searchFilters),m(),f("formControl",o.filterInput)("matChipInputFor",r)("matChipInputSeparatorKeyCodes",o.separatorKeysCodes)("matChipInputAddOnBlur",!1)("matAutocomplete",a),m(3),f("ngForOf",du(18,9,o.obsFilteredOptions)),m(10),f("ngIf",0!==o.summaryCount),m(),f("ngIf",0===o.summaryCount)}},dependencies:[rn,It,Mi,Di,Tn,Ci,_i,Fl,jl,wa,zl,MP,TP,DP,IC,vn,Kee,_R,x2],styles:[".container[_ngcontent-%COMP%]{height:calc(100vh - 271px);position:relative;overflow-y:auto;background-color:#fff}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%]{width:100%;position:absolute;top:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}h3[_ngcontent-%COMP%]{margin-bottom:0;padding-left:15px}.filter[_ngcontent-%COMP%]{display:flex;flex:1;min-height:65px;padding:0 15px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{order:1;position:relative;padding-top:20px;width:100px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{position:absolute;font-size:20px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-text[_ngcontent-%COMP%]{position:absolute;margin-left:30px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{order:2;width:100%}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;min-height:22px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-chip-input[_ngcontent-%COMP%]{height:24px;flex:0}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;opacity:.4}.filter[_ngcontent-%COMP%] .mat-mdc-form-field-underline{display:none}.filter[_ngcontent-%COMP%] .mat-mdc-chip[_ngcontent-%COMP%]{min-height:24px;font-weight:lighter}.header[_ngcontent-%COMP%]{display:flex;flex:1;padding:5px 0;background-color:#f5f5f5;text-align:center}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%]{display:flex;flex:1;padding:10px 0;border-bottom:1px solid #ccc}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1;text-align:center;padding-top:5px}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:30px;order:3;cursor:pointer}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:18px}.chip-list[_ngcontent-%COMP%]{width:100%}.mat-mdc-standard-chip[_ngcontent-%COMP%]{--mdc-chip-label-text-color: #fff}"]})}return t})();function Vre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),De("Skip ",e.eligibleTables.length," table(s)?")}}function jre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),De("Restore ",e.eligibleTables.length," table(s) and all associated indexes?")}}function zre(t,n){1&t&&(d(0,"span",9),h(1," Confirm skip by typing the following below: "),d(2,"b"),h(3,"SKIP"),l(),D(4,"br"),l())}function Hre(t,n){1&t&&(d(0,"span",9),h(1," Confirm restoration by typing the following below: "),d(2,"b"),h(3,"RESTORE"),l(),D(4,"br"),l())}function Ure(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already skipped tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be skipped since they are already skipped."),m(4),De(" ",e.ineligibleTables," ")}}function $re(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already active tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be restored since they are already active."),m(4),De(" ",e.ineligibleTables," ")}}let NN=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.eligibleTables=[],this.ineligibleTables=[];let o="";"SKIP"==this.data.operation?(o="SKIP",this.data.tables.forEach(r=>{r.isDeleted?this.ineligibleTables.push(r.TableName):this.eligibleTables.push(r.TableName)})):(o="RESTORE",this.data.tables.forEach(r=>{r.isDeleted?this.eligibleTables.push(r.TableName):this.ineligibleTables.push(r.TableName)})),this.confirmationInput=new q("",[ee.required,ee.pattern(o)]),i.disableClose=!0}confirm(){this.dialogRef.close(this.data.operation)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-bulk-drop-restore-table-dialog"]],decls:19,vars:8,consts:[["mat-dialog-content",""],[4,"ngIf"],[1,"form-container"],["class","form-custom-label",4,"ngIf"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"form-custom-label"]],template:function(i,o){1&i&&(d(0,"div",0),y(1,Vre,2,1,"h2",1)(2,jre,2,1,"h2",1),d(3,"mat-dialog-content")(4,"div",2)(5,"form"),y(6,zre,5,0,"span",3)(7,Hre,5,0,"span",3),d(8,"mat-form-field",4)(9,"mat-label"),h(10,"Confirm"),l(),D(11,"input",5),l(),y(12,Ure,8,3,"div",1)(13,$re,8,3,"div",1),l()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.confirm()}),h(18," Confirm "),l()()()),2&i&&(m(),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("formControl",o.confirmationInput),m(),f("ngIf","SKIP"==o.data.operation&&0!=o.ineligibleTables.length),m(),f("ngIf","RESTORE"==o.data.operation&&0!=o.ineligibleTables.length),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Gre(t,n){if(1&t&&(d(0,"mat-option",13),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}let FN=(()=>{class t{constructor(e,i,o,r){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.selectedSequenceKind="",this.sequenceKinds=[],this.addNewSequenceForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],sequenceKind:["",ee.required],skipRangeMin:["",ee.pattern("^[0-9]+$")],skipRangeMax:["",ee.pattern("^[0-9]+$")],startWithCounter:["",ee.pattern("^[0-9]+$")]},{validator:EN("skipRangeMin","skipRangeMax")}),this.fetchSerice.getSequenceKind().subscribe(a=>{this.sequenceKinds=a})}ngOnInit(){}addNewSequence(){let e=this.addNewSequenceForm.value;this.dataService.addSequence({Name:e.name,SequenceKind:this.selectedSequenceKind,SkipRangeMin:e.skipRangeMin,SkipRangeMax:e.skipRangeMax,StartWithCounter:e.startWithCounter}),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(En),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-sequence"]],decls:35,vars:4,consts:[["mat-dialog-content",""],[1,"add-new-sequence-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Sequence Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","sequenceKind","required","true",1,"input-field",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","Skip Range Min","type","text","formControlName","skipRangeMin"],["matInput","","placeholder","Skip Range Max","type","text","formControlName","skipRangeMax"],["matInput","","placeholder","Start With Counter","type","text","formControlName","startWithCounter"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Sequence Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Sequence Type"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedSequenceKind,a)||(o.selectedSequenceKind=a),a}),y(13,Gre,2,2,"mat-option",6),l()(),D(14,"br"),d(15,"mat-form-field",2)(16,"mat-label"),h(17,"Skip Range Minimum"),l(),D(18,"input",7),l(),D(19,"br"),d(20,"mat-form-field",2)(21,"mat-label"),h(22,"Skip Range Maximum"),l(),D(23,"input",8),l(),D(24,"br"),d(25,"mat-form-field",2)(26,"mat-label"),h(27,"Start With Counter"),l(),D(28,"input",9),l(),D(29,"br"),l(),d(30,"div",10)(31,"button",11),h(32,"CANCEL"),l(),d(33,"button",12),A("click",function(){return o.addNewSequence()}),h(34," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewSequenceForm),m(11),dn("ngModel",o.selectedSequenceKind),m(),f("ngForOf",o.sequenceKinds),m(20),f("disabled",!o.addNewSequenceForm.valid))},dependencies:[rn,Yt,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko]})}return t})();const LN=t=>({"blue-font-color":t});function qre(t,n){if(1&t&&(d(0,"span",25),h(1),l()),2&t){const e=C();f("ngClass",hi(2,LN,"source"===e.selectedTab)),m(),De(" ",e.srcDbName.toUpperCase()," ")}}function Wre(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function Kre(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function Zre(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function Yre(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function Qre(t,n){if(1&t&&(d(0,"td",27),y(1,Kre,2,0,"svg",28)(2,Zre,2,0,"mat-icon",29)(3,Yre,2,0,"mat-icon",30),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status)}}function Xre(t,n){1&t&&(d(0,"mat-icon",38),h(1,"arrow_upward"),l())}function Jre(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function eae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function tae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().srcTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,Xre,2,0,"mat-icon",36)(5,Jre,2,0,"mat-icon",37)(6,eae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.srcSortOrder),m(),f("ngIf","asc"===e.srcSortOrder),m(),f("ngIf","desc"===e.srcSortOrder)}}function iae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function nae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function oae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function rae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function aae(t,n){if(1&t&&(d(0,"span",56)(1,"mat-icon",57),h(2,"more_vert"),l(),d(3,"mat-menu",null,58)(5,"button",59)(6,"span"),h(7,"Add Index"),l()()()()),2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function sae(t,n){if(1&t){const e=_e();d(0,"td",40)(1,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().srcTreeControl.toggle(r))}),y(2,iae,2,0,"svg",42)(3,nae,2,0,"ng-template",null,43,_r),l(),d(5,"span",44),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(6,"span"),y(7,oae,2,0,"svg",45)(8,rae,2,0,"svg",46),d(9,"span"),h(10),l()(),y(11,aae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(4),o=C();m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.srcTreeControl.isExpanded(e))("ngIfElse",i),m(5),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)&&e.isSpannerNode)}}function cae(t,n){1&t&&D(0,"tr",60)}const BN=t=>({"selected-row":t});function lae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}function dae(t,n){if(1&t&&(d(0,"span",25),h(1," SPANNER DRAFT "),l()),2&t){const e=C();f("ngClass",hi(1,LN,"spanner"===e.selectedTab))}}function uae(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function hae(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function mae(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function pae(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function fae(t,n){1&t&&(d(0,"mat-icon",63),h(1," delete "),l())}function gae(t,n){if(1&t&&(d(0,"td",27),y(1,hae,2,0,"svg",28)(2,mae,2,0,"mat-icon",29)(3,pae,2,0,"mat-icon",30)(4,fae,2,0,"mat-icon",62),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status),m(),f("ngIf","DARK"===e.status||1==e.isDeleted)}}function _ae(t,n){1&t&&(d(0,"mat-icon",65),h(1,"arrow_upward"),l())}function bae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function vae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function yae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().spannerTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,_ae,2,0,"mat-icon",64)(5,bae,2,0,"mat-icon",37)(6,vae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.spannerSortOrder),m(),f("ngIf","asc"===e.spannerSortOrder),m(),f("ngIf","desc"===e.spannerSortOrder)}}function Cae(t,n){if(1&t){const e=_e();d(0,"mat-checkbox",70),A("change",function(){ie(e);const o=C().$implicit;return ne(C().selectionToggle(o))}),l()}if(2&t){const e=C().$implicit;f("checked",C().checklistSelection.isSelected(e))}}function wae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function xae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function Dae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function Sae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function kae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",71),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){ie(e);const o=C().$implicit;return ne(C().openAddIndexForm(o.parent))}),d(6,"span"),h(7,"Add Index"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Mae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",74),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){return ie(e),ne(C(2).openAddSequenceForm())}),d(6,"span"),h(7,"Add Sequence"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Tae=()=>({sidebar_link:!0}),Iae=t=>({"gray-out":t});function Eae(t,n){if(1&t){const e=_e();d(0,"td",66),y(1,Cae,1,1,"mat-checkbox",67),d(2,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().treeControl.toggle(r))}),y(3,wae,2,0,"svg",42)(4,xae,2,0,"ng-template",null,43,_r),l(),d(6,"span",68),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(7,"span"),y(8,Dae,2,0,"svg",45)(9,Sae,2,0,"svg",46),d(10,"span",69),h(11),l()(),y(12,kae,8,1,"span",47)(13,Mae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(5),o=C();f("ngClass",No(14,Tae)),m(),f("ngIf",o.isTableLikeNode(e)),m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.treeControl.isExpanded(e))("ngIfElse",i),m(3),f("ngClass",hi(15,Iae,e.isDeleted)),m(2),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)),m(),f("ngIf",o.isSequenceNode(e.type))}}function Oae(t,n){1&t&&D(0,"tr",60)}function Aae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}const ww=t=>[t];let Pae=(()=>{class t{constructor(e,i,o,r,a){this.conversion=e,this.dialog=i,this.data=o,this.sidenav=r,this.clickEvent=a,this.isLeftColumnCollapse=!1,this.currentSelectedObject=null,this.srcSortOrder="",this.spannerSortOrder="",this.srcSearchText="",this.spannerSearchText="",this.selectedTab="spanner",this.selectedDatabase=new Ne,this.selectObject=new Ne,this.updateSpannerTable=new Ne,this.updateSrcTable=new Ne,this.leftCollaspe=new Ne,this.updateSidebar=new Ne,this.spannerTree=[],this.srcTree=[],this.srcDbName="",this.selectedIndex=1,this.transformer=(s,c)=>({expandable:!!s.children&&s.children.length>0,name:s.name,status:s.status,type:s.type,parent:s.parent,parentId:s.parentId,pos:s.pos,isSpannerNode:s.isSpannerNode,level:c,isDeleted:!!s.isDeleted,id:s.id}),this.treeControl=new EP(s=>s.level,s=>s.expandable),this.srcTreeControl=new EP(s=>s.level,s=>s.expandable),this.treeFlattener=new LX(this.transformer,s=>s.level,s=>s.expandable,s=>s.children),this.dataSource=new AP(this.treeControl,this.treeFlattener),this.srcDataSource=new AP(this.srcTreeControl,this.treeFlattener),this.checklistSelection=new qu(!0,[]),this.displayedColumns=["status","name"]}ngOnInit(){this.clickEvent.tabToSpanner.subscribe({next:e=>{this.setSpannerTab()}})}ngOnChanges(e){let i=e?.spannerTree?.currentValue,o=e?.srcTree?.currentValue;o&&(this.srcDataSource.data=o,this.srcTreeControl.expand(this.srcTreeControl.dataNodes[0]),this.srcTreeControl.expand(this.srcTreeControl.dataNodes[1])),i&&(this.dataSource.data=i,this.treeControl.expand(this.treeControl.dataNodes[0]),this.treeControl.expand(this.treeControl.dataNodes[1]))}filterSpannerTable(){this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}filterSrcTable(){this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}srcTableSort(){this.srcSortOrder=""===this.srcSortOrder?"asc":"asc"===this.srcSortOrder?"desc":"",this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}spannerTableSort(){this.spannerSortOrder=""===this.spannerSortOrder?"asc":"asc"===this.spannerSortOrder?"desc":"",this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}objectSelected(e){this.currentSelectedObject=e,(e.type===jt.Index||e.type===jt.Table||e.type===jt.Sequence)&&this.selectObject.emit(e)}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse,this.leftCollaspe.emit()}isTableNode(e){return new RegExp("^tables").test(e)}isIndexNode(e){return new RegExp("^indexes").test(e)}isSequenceNode(e){return new RegExp("^sequences").test(e)}isIndexLikeNode(e){return e.type==jt.Index||e.type==jt.Indexes}isTableLikeNode(e){return e.type==jt.Table||e.type==jt.Tables}isSequenceLikeNode(e){return e.type==jt.Sequence||e.type==jt.Sequences}openAddIndexForm(e){this.sidenav.setSidenavAddIndexTable(e),this.sidenav.setSidenavRuleType("addIndex"),this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("rule"),this.sidenav.setRuleData([]),this.sidenav.setDisplayRuleFlag(!1)}openAddSequenceForm(){this.dialog.open(FN,MN)}shouldHighlight(e){return e.name===this.currentSelectedObject?.name&&(e.type===jt.Table||e.type===jt.Index)}onTabChanged(){"spanner"==this.selectedTab?(this.selectedTab="source",this.selectedIndex=0):(this.selectedTab="spanner",this.selectedIndex=1),this.selectedDatabase.emit(this.selectedTab),this.currentSelectedObject=null,this.selectObject.emit(void 0)}setSpannerTab(){this.selectedIndex=1}checkDropSelection(){return 0!=this.countSelectionByCategory().eligibleForDrop}checkRestoreSelection(){return 0!=this.countSelectionByCategory().eligibleForRestore}countSelectionByCategory(){let i=0,o=0;return this.checklistSelection.selected.forEach(r=>{r.isDeleted?o+=1:i+=1}),{eligibleForDrop:i,eligibleForRestore:o}}dropSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",maxHeight:"90vh",data:{tables:i,operation:"SKIP"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"SKIP"==a&&(this.data.dropTables(r).pipe(Pt(1)).subscribe(s=>{""===s&&(this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.checklistSelection.clear())})}restoreSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{tables:i,operation:"RESTORE"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"RESTORE"==a&&(this.data.restoreTables(r).pipe(Pt(1)).subscribe(s=>{this.data.getConversionRate(),this.data.getDdl()}),this.checklistSelection.clear())})}selectionToggle(e){this.checklistSelection.toggle(e);const i=this.treeControl.getDescendants(e);this.checklistSelection.isSelected(e)?this.checklistSelection.select(...i):this.checklistSelection.deselect(...i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(pc),_(zr),_(Hi),_(eo),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-object-explorer"]],inputs:{spannerTree:"spannerTree",srcTree:"srcTree",srcDbName:"srcDbName"},outputs:{selectedDatabase:"selectedDatabase",selectObject:"selectObject",updateSpannerTable:"updateSpannerTable",updateSrcTable:"updateSrcTable",leftCollaspe:"leftCollaspe",updateSidebar:"updateSidebar"},features:[fi],decls:59,vars:20,consts:[[1,"container"],[3,"ngClass","selectedIndex","selectedTabChange"],["mat-tab-label",""],[1,"filter-wrapper"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],["placeholder","Filter by table name",3,"ngModel","ngModelChange"],[1,"explorer-table"],["mat-table","",3,"dataSource"],["matColumnDef","status"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","name"],["mat-header-cell","","class","mat-header-cell-name cursor-pointer",3,"click",4,"matHeaderCellDef"],["mat-cell","","class","sidebar_link",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"ngClass",4,"matRowDef","matRowDefColumns"],["clas","delete-selected-btn"],["mat-button","","color","primary",1,"icon","drop",3,"disabled","click"],["clas","restore-selected-btn"],["mat-table","","id","schema-object-list",3,"dataSource"],["mat-cell","",3,"ngClass",4,"matCellDef"],["id","left-column-toggle-button",3,"click"],[3,"ngClass"],["mat-header-cell",""],["mat-cell",""],["class","icon success","matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",4,"ngIf"],["class","work","matTooltip","Requires minimal conversion changes","matTooltipPosition","above",4,"ngIf"],["class","work_history","matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",4,"ngIf"],["matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",1,"icon","success"],["d","m10.4 17.6-2-4.4-4.4-2 4.4-2 2-4.4 2 4.4 4.4 2-4.4 2Zm6.4 1.6-1-2.2-2.2-1 2.2-1 1-2.2 1 2.2 2.2 1-2.2 1Z"],["matTooltip","Requires minimal conversion changes","matTooltipPosition","above",1,"work"],["matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",1,"work_history"],["mat-header-cell","",1,"mat-header-cell-name","cursor-pointer",3,"click"],["class","src-unsorted-icon sort-icon",4,"ngIf"],["class","sort-icon",4,"ngIf"],[1,"src-unsorted-icon","sort-icon"],[1,"sort-icon"],["mat-cell","",1,"sidebar_link"],["mat-icon-button","",3,"click"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf","ngIfElse"],["collaps",""],[1,"sidebar_link",3,"click"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["class","actions",4,"ngIf"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M12 0L0 0L6 6L12 0Z","fill","black","fill-opacity","0.54"],["width","6","height","12","viewBox","0 0 6 12","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M-5.24537e-07 2.62268e-07L0 12L6 6L-5.24537e-07 2.62268e-07Z","fill","black","fill-opacity","0.54"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M0 0V18H18V0H0ZM16 2V6H2V2H16ZM7.33 11V8H10.66V11H7.33ZM10.67 13V16H7.34V13H10.67ZM5.33 11H2V8H5.33V11ZM12.67 8H16V11H12.67V8ZM2 13H5.33V16H2V13ZM12.67 16V13H16V16H12.67Z","fill","black","fill-opacity","0.54"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.005 14C11.555 14 12 13.554 12 13.002V5L10 3V12H2V14H11.005ZM0 0.996C0 0.446 0.438 0 1.003 0H7L9 2.004V10.004C9 10.554 8.554 11 8.002 11H0.998C0.867035 11.0003 0.737304 10.9747 0.616233 10.9248C0.495162 10.8748 0.385128 10.8015 0.292428 10.709C0.199729 10.6165 0.126186 10.5066 0.0760069 10.3856C0.0258282 10.2646 -2.64036e-07 10.135 0 10.004V0.996ZM6 1L5 5.5H2L6 1ZM3 10L4 5.5H7L3 10Z","fill","black","fill-opacity","0.54"],[1,"actions"],[3,"matMenuTriggerFor"],["menu","matMenu"],["mat-menu-item",""],["mat-header-row",""],["mat-row","",3,"ngClass"],["class","icon dark","matTooltip","Deleted","matTooltipPosition","above",4,"ngIf"],["matTooltip","Deleted","matTooltipPosition","above",1,"icon","dark"],["class","spanner-unsorted-icon sort-icon",4,"ngIf"],[1,"spanner-unsorted-icon","sort-icon"],["mat-cell","",3,"ngClass"],["class","checklist-node",3,"checked","change",4,"ngIf"],[1,"sidebar_link",3,"ngClass","click"],[1,"object-name"],[1,"checklist-node",3,"checked","change"],[1,"add-index-icon",3,"matMenuTriggerFor"],["xPosition","before"],["mat-menu-item","",3,"click"],[1,"add-sequence-icon",3,"matMenuTriggerFor"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-tab-group",1),A("selectedTabChange",function(){return o.onTabChanged()}),d(2,"mat-tab"),y(3,qre,2,4,"ng-template",2),d(4,"div",3)(5,"div",4)(6,"span",5),h(7,"filter_list"),l(),d(8,"span",6),h(9,"Filter"),l()(),d(10,"div",7)(11,"input",8),un("ngModelChange",function(a){return kn(o.srcSearchText,a)||(o.srcSearchText=a),a}),A("ngModelChange",function(){return o.filterSrcTable()}),l()()(),d(12,"div",9)(13,"table",10),pe(14,11),y(15,Wre,2,0,"th",12)(16,Qre,4,3,"td",13),fe(),pe(17,14),y(18,tae,7,3,"th",15)(19,sae,12,10,"td",16),fe(),y(20,cae,1,0,"tr",17)(21,lae,1,3,"tr",18),l()()(),d(22,"mat-tab"),y(23,dae,2,3,"ng-template",2),d(24,"div",3)(25,"div",4)(26,"span",5),h(27,"filter_list"),l(),d(28,"span",6),h(29,"Filter"),l()(),d(30,"div",7)(31,"input",8),un("ngModelChange",function(a){return kn(o.spannerSearchText,a)||(o.spannerSearchText=a),a}),A("ngModelChange",function(){return o.filterSpannerTable()}),l()(),d(32,"div",19)(33,"button",20),A("click",function(){return o.dropSelected()}),d(34,"mat-icon"),h(35,"delete"),l(),d(36,"span"),h(37,"SKIP"),l()()(),d(38,"div",21)(39,"button",20),A("click",function(){return o.restoreSelected()}),d(40,"mat-icon"),h(41,"undo"),l(),d(42,"span"),h(43,"RESTORE"),l()()()(),d(44,"div",9)(45,"table",22),pe(46,11),y(47,uae,2,0,"th",12)(48,gae,5,4,"td",13),fe(),pe(49,14),y(50,yae,7,3,"th",15)(51,Eae,14,17,"td",23),fe(),y(52,Oae,1,0,"tr",17)(53,Aae,1,3,"tr",18),l()()()(),d(54,"button",24),A("click",function(){return o.leftColumnToggle()}),d(55,"mat-icon",25),h(56,"first_page"),l(),d(57,"mat-icon",25),h(58,"last_page"),l()()()),2&i&&(m(),f("ngClass",hi(14,ww,o.isLeftColumnCollapse?"hidden":"display"))("selectedIndex",o.selectedIndex),m(10),dn("ngModel",o.srcSearchText),m(2),f("dataSource",o.srcDataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(10),dn("ngModel",o.spannerSearchText),m(2),f("disabled",!o.checkDropSelection()),m(6),f("disabled",!o.checkRestoreSelection()),m(6),f("dataSource",o.dataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(2),f("ngClass",hi(16,ww,o.isLeftColumnCollapse?"hidden":"display")),m(2),f("ngClass",hi(18,ww,o.isLeftColumnCollapse?"display":"hidden")))},dependencies:[vr,It,Yt,ba,Mi,Ci,_i,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,FC,eg,BC,vn,og,Nl],styles:[".container[_ngcontent-%COMP%]{position:relative;background-color:#fff}.container[_ngcontent-%COMP%] .filter-wrapper[_ngcontent-%COMP%]{padding:0 10px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]{height:35px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .src-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .src-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%]{font-size:1.1rem;vertical-align:middle}.selected-row[_ngcontent-%COMP%]{background-color:#61b3ff4a}.explorer-table[_ngcontent-%COMP%]{height:calc(100vh - 320px);width:100%;overflow:auto}.mdc-data-table__cell[_ngcontent-%COMP%], .mdc-data-table__header-cell[_ngcontent-%COMP%]{padding:0 0 0 16px}.mat-mdc-table[_ngcontent-%COMP%]{width:100%;border:inset}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;height:40px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-right:10px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{height:40px;margin-left:14px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .add-index-icon[_ngcontent-%COMP%]{margin-top:7px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%], .mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-row[_ngcontent-%COMP%]{height:29px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{font-family:Roboto;font-size:13px;font-style:normal;font-weight:500;line-height:18px;background:#f5f5f5}.mat-mdc-table[_ngcontent-%COMP%] .mat-column-status[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:medium}.mat-mdc-table[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{margin-right:20px}.filter-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;height:48px}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:30%;display:flex;align-items:center}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{margin-right:5px}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:70%}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:70%;border:none;outline:none;background-color:transparent}#left-column-toggle-button[_ngcontent-%COMP%]{z-index:100;position:absolute;right:4px;top:10px;border:none;background-color:inherit}#left-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer}.mat-mdc-column-status[_ngcontent-%COMP%]{width:80px} .column-left .mat-mdc-tab-label-container{margin-right:40px} .column-left .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-left .mat-mdc-tab-header-pagination-after{margin-right:40px}"]})}return t})();function Rae(t,n){1&t&&(d(0,"div",9)(1,"mat-icon"),h(2,"warning"),l(),d(3,"span"),h(4,"This operation cannot be undone"),l()())}let xw=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.ObjectDetailNodeType=ys,this.confirmationInput=new q("",[ee.required,ee.pattern(`^${e.name}$`)]),i.disableClose=!0}delete(){this.dialogRef.close(this.data.type)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-drop-index-dialog"]],decls:19,vars:7,consts:[["mat-dialog-content",""],["class","alert-container",4,"ngIf"],[1,"form-container"],[1,"form-custom-label"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"alert-container"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2),l(),y(3,Rae,5,0,"div",1),d(4,"div",2)(5,"form")(6,"span",3),h(7," Confirm deletion by typing the following below: "),d(8,"b"),h(9),l()(),d(10,"mat-form-field",4)(11,"mat-label"),h(12),l(),D(13,"input",5),l()()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.delete()}),h(18," Confirm "),l()()),2&i&&(m(2),_l("Skip ",o.data.type," (",o.data.name,")?"),m(),f("ngIf","Index"===o.data.type),m(6),Pe(o.data.name),m(3),De("",o.data.type==o.ObjectDetailNodeType.Table?"Table":"Index"," Name"),m(),f("formControl",o.confirmationInput),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Nae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Fae(t,n){1&t&&(d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Length"),l(),D(4,"input",13),l(),D(5,"br"),l())}function Lae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),De(" ",""!==e.Name?e.Name:"None"," ")}}function Bae(t,n){if(1&t&&(pe(0),y(1,Lae,2,2,"mat-option",16),fe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Vae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),De(" ",e.Name," ")}}function jae(t,n){if(1&t&&(d(0,"mat-optgroup",18),y(1,Vae,2,2,"mat-option",6),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function zae(t,n){if(1&t&&(pe(0),y(1,jae,2,2,"mat-optgroup",17),fe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Hae(t,n){if(1&t&&(pe(0),y(1,zae,2,1,"ng-container",15),lu(2,"keyvalue"),fe()),2&t){const e=n.ngIf;m(),f("ngForOf",du(2,1,e))}}function Uae(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Auto Generated"),l(),d(4,"mat-select",14),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedAutoGen,o)||(r.selectedAutoGen=o),ne(o)}),y(5,Bae,2,1,"ng-container",15)(6,Hae,3,3,"ng-container",7),l()(),D(7,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedAutoGen),m(),f("ngForOf",e.autoGenMap[e.selectedDatatype]),m(),f("ngIf",e.processedAutoGenMap[e.selectedDatatype])}}function $ae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}let Gae=(()=>{class t{constructor(e,i,o,r,a){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.data=a,this.dialect="",this.datatypes=[],this.selectedDatatype="",this.tableId="",this.selectedNull=!0,this.dataTypesWithColLen=In.DataTypes,this.autoGenMap={},this.selectedAutoGen={Name:"",GenerationType:""},this.processedAutoGenMap={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.autoGenSupportedDbs=["MySQL"],this.autGenSupported=!1,this.isColumnNullable=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=a.dialect,this.tableId=a.tableId,this.addNewColumnForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],datatype:["",ee.required],length:["",ee.pattern("^[0-9]+$")],isNullable:[],autoGen:[{Name:"",GenerationType:""}]}),this.fetchSerice.getAutoGenMap().subscribe(s=>{this.autoGenMap=s,this.processedAutoGenMap=IN(this.autoGenMap)}),this.autGenSupported=this.autoGenSupportedDbs.includes(this.srcDbName)}ngOnInit(){this.datatypes="google_standard_sql"==this.dialect?SN_GoogleStandardSQL:SN_PostgreSQL}changeValidator(){this.addNewColumnForm.controls.length.clearValidators(),"BYTES"===this.selectedDatatype?this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.ByteMaxLength)]):("VARCHAR"===this.selectedDatatype||"STRING"===this.selectedDatatype)&&this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.StringMaxLength)]),this.addNewColumnForm.controls.length.updateValueAndValidity()}addNewColumn(){let e=this.addNewColumnForm.value,i={Name:e.name,Datatype:this.selectedDatatype,Length:parseInt(e.length),IsNullable:this.selectedNull,AutoGen:this.selectedAutoGen};this.dataService.addColumn(this.tableId,i),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(En),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-column"]],decls:27,vars:8,consts:[["mat-dialog-content",""],[1,"add-new-column-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Column Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","datatype","required","true",1,"input-field",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["formControlName","isNullable","required","true",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],["matInput","","placeholder","Length","type","text","formControlName","length"],["formControlName","autoGen",1,"input-field",3,"ngModel","ngModelChange"],[4,"ngFor","ngForOf"],[3,"value",4,"ngIf"],[3,"label",4,"ngIf"],[3,"label"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Column Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Datatype"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedDatatype,a)||(o.selectedDatatype=a),a}),A("selectionChange",function(){return o.changeValidator()}),y(13,Nae,2,2,"mat-option",6),l()(),D(14,"br"),y(15,Fae,6,0,"div",7)(16,Uae,8,3,"div",7),d(17,"mat-form-field",4)(18,"mat-label"),h(19,"IsNullable"),l(),d(20,"mat-select",8),un("ngModelChange",function(a){return kn(o.selectedNull,a)||(o.selectedNull=a),a}),y(21,$ae,2,2,"mat-option",6),l()()(),d(22,"div",9)(23,"button",10),h(24,"CANCEL"),l(),d(25,"button",11),A("click",function(){return o.addNewColumn()}),h(26," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewColumnForm),m(11),dn("ngModel",o.selectedDatatype),m(),f("ngForOf",o.datatypes),m(2),f("ngIf",o.dataTypesWithColLen.indexOf(o.selectedDatatype)>-1),m(),f("ngIf",""!=o.selectedDatatype&&o.autoGenMap[o.selectedDatatype].length>1&&o.autGenSupported),m(4),dn("ngModel",o.selectedNull),m(),f("ngForOf",o.isColumnNullable),m(4),f("disabled",!o.addNewColumnForm.valid))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,TE,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,ay]})}return t})();function qae(t,n){1&t&&(d(0,"span"),h(1," To view and modify an object details, click on the object name on the Spanner draft panel. "),l())}function Wae(t,n){if(1&t&&(d(0,"span"),h(1),l()),2&t){const e=C(2);m(),De(" To view an object details, click on the object name on the ",e.srcDbName," panel. ")}}const Tg=t=>[t];function Kae(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"div",3)(2,"h3",4),h(3,"OBJECT VIEWER"),l(),d(4,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(5,"mat-icon",6),h(6,"first_page"),l(),d(7,"mat-icon",6),h(8,"last_page"),l()()(),D(9,"mat-divider"),d(10,"div",7)(11,"div",8),ei(),d(12,"svg",9),D(13,"path",10),l()(),mr(),d(14,"div",11),y(15,qae,2,0,"span",12)(16,Wae,2,1,"span",12),l()()()}if(2&t){const e=C();m(5),f("ngClass",hi(4,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(6,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(8),f("ngIf","spanner"==e.currentDatabase),m(),f("ngIf","source"==e.currentDatabase)}}function Zae(t,n){1&t&&(d(0,"mat-icon",24),h(1," table_chart"),l())}function Yae(t,n){1&t&&(ei(),d(0,"svg",25),D(1,"path",26),l())}function Qae(t,n){if(1&t&&(d(0,"span"),h(1),lu(2,"uppercase"),l()),2&t){const e=C(2);m(),De("( TABLE: ",du(2,1,e.currentObject.parent)," ) ")}}function Xae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropIndex())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP INDEX"),l()()}}function Jae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropSequence())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"DELETE SEQUENCE"),l()()}}function ese(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreIndex())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE INDEX"),l()()}}function tse(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropTable())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP TABLE"),l()()}}function ise(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreSpannerTable())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE TABLE"),l()()}}function nse(t,n){if(1&t&&(d(0,"div",28),h(1," Interleaved: "),d(2,"div",29),h(3),l()()),2&t){const e=C(2);m(3),De(" ",e.interleaveParentName," ")}}function ose(t,n){1&t&&(d(0,"span"),h(1,"COLUMNS "),l())}function rse(t,n){if(1&t&&(d(0,"th",78),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function ase(t,n){1&t&&(d(0,"th",79),h(1,"S No."),l())}function sse(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcOrder").value," ")}}function cse(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function lse(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcColName").value," ")}}function dse(t,n){1&t&&(d(0,"th",79),h(1,"Type"),l())}function use(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcDataType").value," ")}}function hse(t,n){1&t&&(d(0,"th",79),h(1,"Max Length"),l())}function mse(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcColMaxLength").value," ")}}function pse(t,n){1&t&&(d(0,"th",79),h(1,"Auto-Generated"),l())}function fse(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function gse(t,n){1&t&&(pe(0,81),y(1,pse,2,0,"th",42)(2,fse,2,1,"td",39),fe())}function _se(t,n){1&t&&(d(0,"th",79),h(1,"Pk"),l())}function bse(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",82),D(2,"path",83),l()())}function vse(t,n){if(1&t&&(d(0,"td",80),y(1,bse,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function yse(t,n){1&t&&(d(0,"th",79),h(1,"Nullable"),l())}function Cse(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function wse(t,n){1&t&&D(0,"tr",84)}function xse(t,n){1&t&&D(0,"tr",84)}const Dse=t=>({"scr-column-data-edit-mode":t});function Sse(t,n){if(1&t&&D(0,"tr",85),2&t){const e=C(3);f("ngClass",hi(1,Dse,e.isEditMode))}}function kse(t,n){if(1&t){const e=_e();d(0,"button",89),A("click",function(){return ie(e),ne(C(5).toggleEdit())}),d(1,"mat-icon",90),h(2,"edit"),l(),h(3," EDIT "),l()}}function Mse(t,n){if(1&t&&(d(0,"div"),y(1,kse,4,0,"button",88),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Tse(t,n){if(1&t){const e=_e();d(0,"button",89),A("click",function(){return ie(e),ne(C(5).addNewColumn())}),d(1,"mat-icon",90),h(2,"edit"),l(),h(3," ADD COLUMN "),l()}}function Ise(t,n){if(1&t&&(d(0,"div"),y(1,Tse,4,0,"button",88),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ese(t,n){if(1&t){const e=_e();d(0,"button",89),A("click",function(){return ie(e),ne(C(5).addNewSequence())}),d(1,"mat-icon",90),h(2,"edit"),l(),h(3," ADD SEQUENCE "),l()}}function Ose(t,n){if(1&t&&(d(0,"div"),y(1,Ese,4,0,"button",88),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ase(t,n){if(1&t&&(d(0,"th",86)(1,"div",87)(2,"span"),h(3,"Spanner"),l(),y(4,Mse,2,1,"div",12)(5,Ise,2,1,"div",12)(6,Ose,2,1,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted&&e.autoGenSupported)}}function Pse(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function Rse(t,n){if(1&t&&(d(0,"div"),D(1,"input",91),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spColName"))("matTooltipDisabled",!(null!=(i=e.get("spColName"))&&i.hasError("pattern")))}}function Nse(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function Fse(t,n){if(1&t&&(d(0,"td",80),y(1,Rse,2,2,"div",12)(2,Nse,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode||""===e.get("srcId").value)}}function Lse(t,n){1&t&&(d(0,"th",79),h(1,"Type"),l())}function Bse(t,n){if(1&t&&(d(0,"span",95),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Vse(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayT),m(),De(" ",e.DisplayT," ")}}function jse(t,n){1&t&&(d(0,"mat-option",103),h(1," STRING "),l())}function zse(t,n){1&t&&(d(0,"mat-option",104),h(1," VARCHAR "),l())}function Hse(t,n){if(1&t){const e=_e();d(0,"mat-form-field",96)(1,"mat-select",97,98),A("selectionChange",function(){ie(e);const o=Ft(2),r=C().index;return ne(C(3).spTableEditSuggestionHandler(r,o.value))}),y(3,Vse,2,2,"mat-option",99)(4,jse,2,0,"mat-option",100)(5,zse,2,0,"mat-option",101),l()()}if(2&t){const e=C().$implicit,i=C(3);m(),f("formControl",e.get("spDataType")),m(2),f("ngForOf",i.typeMap[e.get("srcDataType").value]),m(),f("ngIf",""==e.get("srcDataType").value&&!i.isPostgreSQLDialect),m(),f("ngIf",""==e.get("srcDataType").value&&i.isPostgreSQLDialect)}}function Use(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spDataType").value)}}function $se(t,n){if(1&t&&(d(0,"td",80)(1,"div",92),y(2,Bse,2,1,"span",93)(3,Hse,6,4,"mat-form-field",94)(4,Use,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spDataType").value),m(),f("ngIf",o.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!o.isEditMode||""===e.get("srcId").value)}}function Gse(t,n){1&t&&(d(0,"th",79),h(1,"Auto-Generated"),l())}function qse(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),De(" ",""!==e.Name?e.Name:"None"," ")}}function Wse(t,n){if(1&t&&(pe(0),y(1,qse,2,2,"mat-option",110),fe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Kse(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),De(" ",e.Name," ")}}function Zse(t,n){if(1&t&&(d(0,"mat-optgroup",112),y(1,Kse,2,2,"mat-option",99),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function Yse(t,n){if(1&t&&(pe(0),y(1,Zse,2,2,"mat-optgroup",111),fe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Qse(t,n){if(1&t&&(pe(0),y(1,Yse,2,1,"ng-container",109),lu(2,"keyvalue"),fe()),2&t){const e=n.ngIf,i=C(6);m(),f("ngForOf",du(2,1,i.processedAutoGenMap[e]))}}function Xse(t,n){if(1&t&&(pe(0),d(1,"mat-form-field",96)(2,"mat-select",107,108),y(4,Wse,2,1,"ng-container",109)(5,Qse,3,3,"ng-container",12),l()(),fe()),2&t){const e=C().$implicit,i=C(4);m(2),f("formControl",e.get("spAutoGen"))("compareWith",i.compareAutoGen),m(2),f("ngForOf",i.autoGenMap[e.get("spDataType").value]),m(),f("ngIf",e.get("spDataType").value)}}function Jse(t,n){if(1&t&&(pe(0),d(1,"p"),h(2),l(),fe()),2&t){const e=C().$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function ece(t,n){if(1&t&&(d(0,"td",80)(1,"div",106),y(2,Xse,6,4,"ng-container",12)(3,Jse,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(4);m(2),f("ngIf",i.isEditMode&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode)}}function tce(t,n){1&t&&(pe(0,105),y(1,Gse,2,0,"th",42)(2,ece,4,2,"td",39),fe())}function ice(t,n){1&t&&(d(0,"th",79),h(1,"Max Length"),l())}function nce(t,n){if(1&t&&(d(0,"div"),D(1,"input",113),l()),2&t){const e=C(2).$implicit;m(),f("formControl",e.get("spColMaxLength"))}}function oce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),De(" ",e.get("spColMaxLength").value," ")}}function rce(t,n){if(1&t&&(d(0,"div"),y(1,nce,2,1,"div",12)(2,oce,2,1,"p",12),l()),2&t){const e=C().$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!=e.get("srcDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function ace(t,n){if(1&t&&(d(0,"td",80),y(1,rce,3,2,"div",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.dataTypesWithColLen.indexOf(e.get("spDataType").value)>-1)}}function sce(t,n){1&t&&(d(0,"th",79),h(1,"Pk"),l())}function cce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",82),D(2,"path",83),l()())}function lce(t,n){if(1&t&&(d(0,"td",80),y(1,cce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function dce(t,n){1&t&&(d(0,"span"),h(1,"Not Null"),l())}function uce(t,n){1&t&&(d(0,"span"),h(1,"Nullable"),l())}function hce(t,n){if(1&t&&(d(0,"th",79),y(1,dce,2,0,"span",12)(2,uce,2,0,"span",12),l()),2&t){const e=C(3);m(),f("ngIf",e.isEditMode),m(),f("ngIf",!e.isEditMode)}}function mce(t,n){if(1&t&&(d(0,"div"),D(1,"mat-checkbox",115),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spIsNotNull"))}}function pce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),De(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function fce(t,n){if(1&t&&(d(0,"td",80)(1,"div",114),y(2,mce,2,1,"div",12)(3,pce,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function gce(t,n){1&t&&D(0,"th",79)}function _ce(t,n){if(1&t){const e=_e();d(0,"div",118)(1,"mat-icon",119),h(2,"more_vert"),l(),d(3,"mat-menu",120,121)(5,"button",122),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropColumn(o))}),d(6,"span"),h(7,"Drop Column"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Ig=t=>({"drop-button-left-border":t});function bce(t,n){if(1&t&&(d(0,"td",116),y(1,_ce,8,1,"div",117),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isEditMode)),m(),f("ngIf",i.isEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol)}}function vce(t,n){1&t&&D(0,"tr",84)}function yce(t,n){1&t&&D(0,"tr",84)}function Cce(t,n){1&t&&D(0,"tr",123)}function wce(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function xce(t,n){if(1&t){const e=_e();d(0,"div",124)(1,"mat-form-field",125)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",126),A("selectionChange",function(o){return ie(e),ne(C(3).setColumn(o.value))}),y(5,wce,2,2,"mat-option",99),l()(),d(6,"button",127),A("click",function(){return ie(e),ne(C(3).restoreColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," RESTORE COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addColumnForm),m(5),f("ngForOf",e.droppedSourceColumns)}}function Dce(t,n){1&t&&(d(0,"span"),h(1,"PRIMARY KEY "),l())}function Sce(t,n){if(1&t&&(d(0,"th",128),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function kce(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",89),A("click",function(){return ie(e),ne(C(4).togglePkEdit())}),d(2,"mat-icon",90),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Mce(t,n){if(1&t&&(d(0,"th",129)(1,"div",87)(2,"span"),h(3,"Spanner"),l(),y(4,kce,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isPkEditMode&&e.pkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function Tce(t,n){1&t&&(d(0,"th",79),h(1,"Order"),l())}function Ice(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcOrder").value," ")}}function Ece(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function Oce(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcColName").value," ")}}function Ace(t,n){1&t&&(d(0,"th",79),h(1,"Type"),l())}function Pce(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcDataType").value," ")}}function Rce(t,n){1&t&&(d(0,"th",79),h(1,"PK"),l())}function Nce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",82),D(2,"path",83),l()())}function Fce(t,n){if(1&t&&(d(0,"td",80),y(1,Nce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function Lce(t,n){1&t&&(d(0,"th",79),h(1,"Nullable"),l())}function Bce(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function Vce(t,n){1&t&&(d(0,"th",79),h(1,"Auto-Generated"),l())}function jce(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function zce(t,n){1&t&&(pe(0,81),y(1,Vce,2,0,"th",42)(2,jce,2,1,"td",39),fe())}function Hce(t,n){1&t&&(d(0,"th",79),h(1,"Order"),l())}function Uce(t,n){if(1&t&&(d(0,"div"),D(1,"input",130),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spOrder"))("matTooltipDisabled",!(null!=(i=e.get("spOrder"))&&i.hasError("pattern")))}}function $ce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Gce(t,n){if(1&t&&(d(0,"td",80),y(1,Uce,2,2,"div",12)(2,$ce,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isPkEditMode&&""!==e.get("spColName").value),m(),f("ngIf",!i.isPkEditMode)}}function qce(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function Wce(t,n){if(1&t&&(d(0,"td",80)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.get("spColName").value)}}function Kce(t,n){1&t&&(d(0,"th",79),h(1,"Type"),l())}function Zce(t,n){if(1&t&&(d(0,"span",95),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Yce(t,n){if(1&t&&(d(0,"td",80)(1,"div",92),y(2,Zce,2,1,"span",93),d(3,"p"),h(4),l()()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spColName").value),m(2),Pe(e.get("spDataType").value)}}function Qce(t,n){1&t&&(d(0,"th",79),h(1,"Auto-Generated"),l())}function Xce(t,n){if(1&t&&(d(0,"td",80)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function Jce(t,n){1&t&&(pe(0,105),y(1,Qce,2,0,"th",42)(2,Xce,3,1,"td",39),fe())}function ele(t,n){1&t&&(d(0,"th",79),h(1,"Pk"),l())}function tle(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",82),D(2,"path",83),l()())}function ile(t,n){if(1&t&&(d(0,"td",80),y(1,tle,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function nle(t,n){1&t&&(d(0,"th",79),h(1,"Nullable"),l())}function ole(t,n){if(1&t&&(d(0,"td",80)(1,"div",114)(2,"p"),h(3),l()()()),2&t){const e=n.$implicit;m(3),De(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function rle(t,n){1&t&&D(0,"th",79)}function ale(t,n){if(1&t){const e=_e();d(0,"div",118)(1,"mat-icon",119),h(2,"more_vert"),l(),d(3,"mat-menu",120,121)(5,"button",131),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropPk(o))}),d(6,"span"),h(7,"Remove primary key"),l()()()()}if(2&t){const e=Ft(4),i=C(4);m(),f("matMenuTriggerFor",e),m(4),f("disabled",!i.isPkEditMode)}}function sle(t,n){if(1&t&&(d(0,"td",116),y(1,ale,8,2,"div",117),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isPkEditMode)),m(),f("ngIf",i.isPkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spColName").value)}}function cle(t,n){1&t&&D(0,"tr",84)}function lle(t,n){1&t&&D(0,"tr",84)}function dle(t,n){1&t&&D(0,"tr",123)}function ule(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function hle(t,n){if(1&t){const e=_e();d(0,"div",132)(1,"mat-form-field",125)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",126),A("selectionChange",function(o){return ie(e),ne(C(3).setPkColumn(o.value))}),y(5,ule,2,2,"mat-option",99),l()(),d(6,"button",127),A("click",function(){return ie(e),ne(C(3).addPkColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," ADD COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addPkColumnForm),m(5),f("ngForOf",e.pkColumnNames)}}function mle(t,n){1&t&&(d(0,"span"),h(1,"FOREIGN KEY"),l())}function ple(t,n){if(1&t&&(d(0,"th",133),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function fle(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",89),A("click",function(){return ie(e),ne(C(4).toggleFkEdit())}),d(2,"mat-icon",90),h(3,"edit"),l(),h(4," EDIT "),l()()}}function gle(t,n){if(1&t&&(d(0,"th",128)(1,"div",87)(2,"span"),h(3,"Spanner"),l(),y(4,fle,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isFkEditMode&&e.fkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function _le(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function ble(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcName").value," ")}}function vle(t,n){1&t&&(d(0,"th",79),h(1,"Columns"),l())}function yle(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcColumns").value," ")}}function Cle(t,n){1&t&&(d(0,"th",79),h(1,"Refer Table"),l())}function wle(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcReferTable").value," ")}}function xle(t,n){1&t&&(d(0,"th",79),h(1,"Refer Columns"),l())}function Dle(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcReferColumns").value," ")}}function Sle(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function kle(t,n){if(1&t&&(d(0,"div"),D(1,"input",91),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spName"))("matTooltipDisabled",!(null!=(i=e.get("spName"))&&i.hasError("pattern")))}}function Mle(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spName").value)}}function Tle(t,n){if(1&t&&(d(0,"td",80),y(1,kle,2,2,"div",12)(2,Mle,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isFkEditMode&&""!==e.get("spReferTable").value),m(),f("ngIf",!i.isFkEditMode)}}function Ile(t,n){1&t&&(d(0,"th",79),h(1,"Columns"),l())}function Ele(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("spColumns").value," ")}}function Ole(t,n){1&t&&(d(0,"th",79),h(1,"Refer Table"),l())}function Ale(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("spReferTable").value," ")}}function Ple(t,n){1&t&&(d(0,"th",79),h(1,"Refer Columns"),l())}function Rle(t,n){if(1&t&&(d(0,"td",80)(1,"div",134),h(2),l()()),2&t){const e=n.$implicit;m(2),De(" ",e.get("spReferColumns").value," ")}}function Nle(t,n){1&t&&D(0,"th",79)}function Fle(t,n){if(1&t){const e=_e();d(0,"button",131),A("click",function(){return ie(e),ne(C(5).setInterleave())}),d(1,"span"),h(2,"Convert to interleave"),l()()}2&t&&f("disabled",""===C(2).$implicit.get("spName").value)}function Lle(t,n){if(1&t){const e=_e();d(0,"div",118)(1,"mat-icon",119),h(2,"more_vert"),l(),d(3,"mat-menu",120,121)(5,"button",131),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropFk(o))}),d(6,"span"),h(7,"Drop Foreign Key"),l()(),y(8,Fle,3,1,"button",135),l()()}if(2&t){const e=Ft(4),i=C().$implicit,o=C(3);m(),f("matMenuTriggerFor",e),m(4),f("disabled",""===i.get("spName").value),m(3),f("ngIf",o.interleaveStatus.tableInterleaveStatus&&o.interleaveStatus.tableInterleaveStatus.Possible)}}function Ble(t,n){if(1&t&&(d(0,"td",116),y(1,Lle,9,3,"div",117),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isFkEditMode)),m(),f("ngIf",i.isFkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spReferTable").value)}}function Vle(t,n){1&t&&D(0,"tr",84)}function jle(t,n){1&t&&D(0,"tr",84)}function zle(t,n){1&t&&D(0,"tr",123)}function Hle(t,n){if(1&t){const e=_e();d(0,"button",139),A("click",function(){return ie(e),ne(C(4).setInterleave())}),h(1," Convert to Interleave "),l()}}function Ule(t,n){if(1&t){const e=_e();d(0,"button",139),A("click",function(){return ie(e),ne(C(4).removeInterleave())}),h(1," Convert Back to Foreign Key "),l()}}function $le(t,n){if(1&t&&(d(0,"div"),h(1," This table is interleaved with "),d(2,"span",140),h(3),l(),h(4,". Click on the above button to convert back to foreign key. "),l()),2&t){const e=C(4);m(3),Pe(e.interleaveParentName)}}function Gle(t,n){if(1&t&&(d(0,"mat-tab",136)(1,"div",137),y(2,Hle,2,0,"button",138)(3,Ule,2,0,"button",138),D(4,"br"),y(5,$le,5,1,"div",12),l()()),2&t){const e=C(3);m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible&&null===e.interleaveParentName),m(),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName),m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)}}function qle(t,n){1&t&&(d(0,"span"),h(1,"SQL"),l())}function Wle(t,n){if(1&t&&(d(0,"mat-tab"),y(1,qle,2,0,"ng-template",31),d(2,"div",141)(3,"pre")(4,"code"),h(5),l()()()()),2&t){const e=C(3);m(5),Pe(e.ddlStmts[e.currentObject.id])}}const Kle=t=>({"height-on-edit":t}),Zle=()=>["srcDatabase"],VN=()=>["spDatabase"],Dw=()=>["srcDatabase","spDatabase"];function Yle(t,n){if(1&t){const e=_e();d(0,"mat-tab-group",30),A("selectedTabChange",function(o){return ie(e),ne(C(2).tabChanged(o))}),d(1,"mat-tab"),y(2,ose,2,0,"ng-template",31),d(3,"div",32)(4,"div",33)(5,"table",34),pe(6,35),y(7,rse,2,1,"th",36),fe(),pe(8,37),y(9,ase,2,0,"th",38)(10,sse,2,1,"td",39),fe(),pe(11,40),y(12,cse,2,0,"th",38)(13,lse,2,1,"td",39),fe(),pe(14,41),y(15,dse,2,0,"th",42)(16,use,2,1,"td",39),fe(),pe(17,43),y(18,hse,2,0,"th",42)(19,mse,2,1,"td",39),fe(),y(20,gse,3,0,"ng-container",44),pe(21,45),y(22,_se,2,0,"th",38)(23,vse,2,1,"td",39),fe(),pe(24,46),y(25,yse,2,0,"th",42)(26,Cse,2,1,"td",39),fe(),y(27,wse,1,0,"tr",47)(28,xse,1,0,"tr",47)(29,Sse,1,3,"tr",48),l(),d(30,"table",34),pe(31,49),y(32,Ase,7,3,"th",50),fe(),pe(33,51),y(34,Pse,2,0,"th",42)(35,Fse,3,2,"td",39),fe(),pe(36,52),y(37,Lse,2,0,"th",42)(38,$se,5,3,"td",39),fe(),y(39,tce,3,0,"ng-container",53),pe(40,54),y(41,ice,2,0,"th",42)(42,ace,2,1,"td",39),fe(),pe(43,55),y(44,sce,2,0,"th",38)(45,lce,2,1,"td",39),fe(),pe(46,56),y(47,hce,3,2,"th",42)(48,fce,4,2,"td",39),fe(),pe(49,57),y(50,gce,1,0,"th",42)(51,bce,2,4,"td",58),fe(),y(52,vce,1,0,"tr",47)(53,yce,1,0,"tr",47)(54,Cce,1,0,"tr",59),l()(),y(55,xce,10,2,"div",60),l()(),d(56,"mat-tab"),y(57,Dce,2,0,"ng-template",31),d(58,"div",61)(59,"table",34),pe(60,35),y(61,Sce,2,1,"th",62),fe(),pe(62,49),y(63,Mce,5,1,"th",63),fe(),pe(64,37),y(65,Tce,2,0,"th",38)(66,Ice,2,1,"td",39),fe(),pe(67,40),y(68,Ece,2,0,"th",38)(69,Oce,2,1,"td",39),fe(),pe(70,41),y(71,Ace,2,0,"th",42)(72,Pce,2,1,"td",39),fe(),pe(73,45),y(74,Rce,2,0,"th",38)(75,Fce,2,1,"td",39),fe(),pe(76,46),y(77,Lce,2,0,"th",42)(78,Bce,2,1,"td",39),fe(),y(79,zce,3,0,"ng-container",44),pe(80,64),y(81,Hce,2,0,"th",38)(82,Gce,3,2,"td",39),fe(),pe(83,51),y(84,qce,2,0,"th",42)(85,Wce,3,1,"td",39),fe(),pe(86,52),y(87,Kce,2,0,"th",42)(88,Yce,5,2,"td",39),fe(),y(89,Jce,3,0,"ng-container",53),pe(90,55),y(91,ele,2,0,"th",38)(92,ile,2,1,"td",39),fe(),pe(93,56),y(94,nle,2,0,"th",42)(95,ole,4,1,"td",39),fe(),pe(96,57),y(97,rle,1,0,"th",42)(98,sle,2,4,"td",58),fe(),y(99,cle,1,0,"tr",47)(100,lle,1,0,"tr",47)(101,dle,1,0,"tr",59),l(),y(102,hle,10,2,"div",65),l()(),d(103,"mat-tab"),y(104,mle,2,0,"ng-template",31),d(105,"div",66)(106,"table",34),pe(107,35),y(108,ple,2,1,"th",67),fe(),pe(109,49),y(110,gle,5,1,"th",62),fe(),pe(111,68),y(112,_le,2,0,"th",38)(113,ble,2,1,"td",39),fe(),pe(114,69),y(115,vle,2,0,"th",38)(116,yle,2,1,"td",39),fe(),pe(117,70),y(118,Cle,2,0,"th",38)(119,wle,2,1,"td",39),fe(),pe(120,71),y(121,xle,2,0,"th",38)(122,Dle,2,1,"td",39),fe(),pe(123,72),y(124,Sle,2,0,"th",42)(125,Tle,3,2,"td",39),fe(),pe(126,73),y(127,Ile,2,0,"th",38)(128,Ele,2,1,"td",39),fe(),pe(129,74),y(130,Ole,2,0,"th",38)(131,Ale,2,1,"td",39),fe(),pe(132,75),y(133,Ple,2,0,"th",38)(134,Rle,3,1,"td",39),fe(),pe(135,76),y(136,Nle,1,0,"th",42)(137,Ble,2,4,"td",58),fe(),y(138,Vle,1,0,"tr",47)(139,jle,1,0,"tr",47)(140,zle,1,0,"tr",59),l()()(),y(141,Gle,6,3,"mat-tab",77)(142,Wle,6,1,"mat-tab",12),l()}if(2&t){const e=C(2);f("ngClass",hi(25,Kle,e.isEditMode||e.isPkEditMode||e.isFkEditMode)),m(5),f("dataSource",e.srcDataSource),m(15),f("ngIf",e.autoGenSupported),m(7),f("matHeaderRowDef",No(27,Zle)),m(),f("matHeaderRowDef",e.srcDisplayedColumns),m(),f("matRowDefColumns",e.srcDisplayedColumns),m(),f("dataSource",e.spDataSource),m(9),f("ngIf",e.autoGenSupported),m(13),f("matHeaderRowDef",No(28,VN)),m(),f("matHeaderRowDef",e.spDisplayedColumns),m(),f("matRowDefColumns",e.spDisplayedColumns),m(),f("ngIf",e.isEditMode&&0!=e.droppedSourceColumns.length),m(4),f("dataSource",e.pkDataSource),m(20),f("ngIf",e.autoGenSupported),m(10),f("ngIf",e.autoGenSupported),m(10),f("matHeaderRowDef",No(29,Dw)),m(),f("matHeaderRowDef",e.displayedPkColumns),m(),f("matRowDefColumns",e.displayedPkColumns),m(),f("ngIf",e.isPkEditMode),m(4),f("dataSource",e.fkDataSource),m(32),f("matHeaderRowDef",No(30,Dw)),m(),f("matHeaderRowDef",e.displayedFkColumns),m(),f("matRowDefColumns",e.displayedFkColumns),m(),f("ngIf",(e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)&&e.currentObject.isSpannerNode),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function Qle(t,n){if(1&t&&(d(0,"th",152),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function Xle(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",89),A("click",function(){return ie(e),ne(C(4).toggleIndexEdit())}),d(2,"mat-icon",90),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Jle(t,n){if(1&t&&(d(0,"th",133)(1,"div",87)(2,"span"),h(3,"Spanner"),l(),y(4,Xle,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isIndexEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function ede(t,n){1&t&&(d(0,"th",79),h(1,"Column"),l())}function tde(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcColName").value," ")}}function ide(t,n){1&t&&(d(0,"th",79),h(1,"Sort By"),l())}function nde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function ode(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function rde(t,n){if(1&t&&(d(0,"td",80),y(1,nde,2,0,"p",12)(2,ode,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcDesc").value),m(),f("ngIf",!1===e.get("srcDesc").value)}}function ade(t,n){1&t&&(d(0,"th",79),h(1,"Column Order"),l())}function sde(t,n){if(1&t&&(d(0,"td",80),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.get("srcOrder").value," ")}}function cde(t,n){1&t&&(d(0,"th",79),h(1,"Column"),l())}function lde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function dde(t,n){if(1&t&&(d(0,"td",80),y(1,lde,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spColName").value)}}function ude(t,n){1&t&&(d(0,"th",79),h(1,"Sort By"),l())}function hde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function mde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function pde(t,n){if(1&t&&(d(0,"td",80),y(1,hde,2,0,"p",12)(2,mde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spDesc").value),m(),f("ngIf",!1===e.get("spDesc").value)}}function fde(t,n){1&t&&(d(0,"th",79),h(1,"Column Order"),l())}function gde(t,n){if(1&t&&(d(0,"div"),D(1,"input",153),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spOrder"))}}function _de(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function bde(t,n){if(1&t&&(d(0,"td",80),y(1,gde,2,1,"div",12)(2,_de,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value),m(),f("ngIf",!i.isIndexEditMode)}}function vde(t,n){1&t&&D(0,"th",79)}function yde(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-icon",119),h(2,"more_vert"),l(),d(3,"mat-menu",120,121)(5,"button",122),A("click",function(){ie(e);const o=C().index;return ne(C(3).dropIndexKey(o))}),d(6,"span"),h(7,"Drop Index Key"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Cde(t,n){if(1&t&&(d(0,"td",116),y(1,yde,8,1,"div",12),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isIndexEditMode)),m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value)}}function wde(t,n){1&t&&D(0,"tr",84)}function xde(t,n){1&t&&D(0,"tr",84)}function Dde(t,n){1&t&&D(0,"tr",154)}function Sde(t,n){if(1&t&&(d(0,"mat-option",102),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function kde(t,n){if(1&t){const e=_e();d(0,"div",155)(1,"mat-form-field",156)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",157),y(5,Sde,2,2,"mat-option",99),l()(),d(6,"mat-form-field",158)(7,"mat-label"),h(8,"Sort By"),l(),d(9,"mat-select",159)(10,"mat-option",160),h(11,"Ascending"),l(),d(12,"mat-option",161),h(13,"Descending"),l()()(),d(14,"button",162),A("click",function(){return ie(e),ne(C(3).addIndexKey())}),d(15,"mat-icon"),h(16,"add"),l(),d(17,"span"),h(18," ADD COLUMN"),l()()()}if(2&t){const e=C(3);f("formGroup",e.addIndexKeyForm),m(5),f("ngForOf",e.indexColumnNames),m(9),f("disabled",!e.addIndexKeyForm.valid)}}function Mde(t,n){if(1&t&&(d(0,"div",142)(1,"table",34),pe(2,35),y(3,Qle,2,1,"th",143),fe(),pe(4,49),y(5,Jle,5,1,"th",67),fe(),pe(6,144),y(7,ede,2,0,"th",38)(8,tde,2,1,"td",39),fe(),pe(9,145),y(10,ide,2,0,"th",42)(11,rde,3,2,"td",39),fe(),pe(12,146),y(13,ade,2,0,"th",38)(14,sde,2,1,"td",39),fe(),pe(15,147),y(16,cde,2,0,"th",42)(17,dde,2,1,"td",39),fe(),pe(18,148),y(19,ude,2,0,"th",42)(20,pde,3,2,"td",39),fe(),pe(21,149),y(22,fde,2,0,"th",38)(23,bde,3,2,"td",39),fe(),pe(24,57),y(25,vde,1,0,"th",42)(26,Cde,2,4,"td",58),fe(),y(27,wde,1,0,"tr",47)(28,xde,1,0,"tr",47)(29,Dde,1,0,"tr",150),l(),y(30,kde,19,3,"div",151),l()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(26),f("matHeaderRowDef",No(5,Dw)),m(),f("matHeaderRowDef",e.indexDisplayedColumns),m(),f("matRowDefColumns",e.indexDisplayedColumns),m(),f("ngIf",e.isIndexEditMode&&e.indexColumnNames.length>0)}}function Tde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",89),A("click",function(){return ie(e),ne(C(4).toggleSequenceEdit())}),d(2,"mat-icon",90),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Ide(t,n){if(1&t&&(d(0,"th",128)(1,"div",87)(2,"span"),h(3,"Spanner"),l(),y(4,Tde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isSequenceEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function Ede(t,n){1&t&&(d(0,"th",79),h(1,"Name"),l())}function Ode(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSeqName").value)}}function Ade(t,n){if(1&t&&(d(0,"td",80),y(1,Ode,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spSeqName").value)}}function Pde(t,n){1&t&&(d(0,"th",79),h(1,"Sequence Type"),l())}function Rde(t,n){if(1&t&&(pe(0),d(1,"mat-option",102),h(2),l(),fe()),2&t){const e=n.$implicit;m(),f("value",e),m(),De(" ",e," ")}}function Nde(t,n){if(1&t&&(pe(0),d(1,"mat-form-field",171)(2,"mat-select",172,173),y(4,Rde,3,2,"ng-container",109),l()(),fe()),2&t){const e=C().$implicit,i=C(3);m(2),f("formControl",e.get("spSequenceKind")),m(2),f("ngForOf",i.sequenceKinds)}}function Fde(t,n){if(1&t&&(pe(0),d(1,"p"),h(2),l(),fe()),2&t){const e=C().$implicit;m(2),Pe(e.get("spSequenceKind").value)}}function Lde(t,n){if(1&t&&(d(0,"td",80)(1,"div",170),y(2,Nde,5,2,"ng-container",12)(3,Fde,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isSequenceEditMode&&""!==e.get("spSequenceKind").value),m(),f("ngIf",!i.isSequenceEditMode)}}function Bde(t,n){1&t&&(d(0,"th",79),h(1,"Skip Range Min"),l())}function Vde(t,n){if(1&t&&(d(0,"div"),D(1,"input",174),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMin"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMin"))&&i.hasError("pattern")))}}function jde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMin").value)}}function zde(t,n){if(1&t&&(d(0,"td",80),y(1,Vde,2,2,"div",12)(2,jde,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMin").value)}}function Hde(t,n){1&t&&(d(0,"th",79),h(1,"Skip Range Max"),l())}function Ude(t,n){if(1&t&&(d(0,"div"),D(1,"input",174),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMax"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMax"))&&i.hasError("pattern")))}}function $de(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMax").value)}}function Gde(t,n){if(1&t&&(d(0,"td",80),y(1,Ude,2,2,"div",12)(2,$de,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMax").value)}}function qde(t,n){1&t&&(d(0,"th",79),h(1,"Start With Counter"),l())}function Wde(t,n){if(1&t&&(d(0,"div"),D(1,"input",175),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spStartWithCounter"))("matTooltipDisabled",!(null!=(i=e.get("spStartWithCounter"))&&i.hasError("pattern")))}}function Kde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spStartWithCounter").value)}}function Zde(t,n){if(1&t&&(d(0,"td",80),y(1,Wde,2,2,"div",12)(2,Kde,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spStartWithCounter").value)}}function Yde(t,n){1&t&&D(0,"tr",84)}function Qde(t,n){1&t&&D(0,"tr",84)}function Xde(t,n){1&t&&D(0,"tr",176)}function Jde(t,n){if(1&t&&(d(0,"div",163)(1,"table",34),pe(2,49),y(3,Ide,5,1,"th",62),fe(),pe(4,164),y(5,Ede,2,0,"th",42)(6,Ade,2,1,"td",39),fe(),pe(7,165),y(8,Pde,2,0,"th",42)(9,Lde,4,2,"td",39),fe(),pe(10,166),y(11,Bde,2,0,"th",42)(12,zde,3,2,"td",39),fe(),pe(13,167),y(14,Hde,2,0,"th",42)(15,Gde,3,2,"td",39),fe(),pe(16,168),y(17,qde,2,0,"th",42)(18,Zde,3,2,"td",39),fe(),y(19,Yde,1,0,"tr",47)(20,Qde,1,0,"tr",47)(21,Xde,1,0,"tr",169),l()()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(18),f("matHeaderRowDef",No(4,VN)),m(),f("matHeaderRowDef",e.sequenceDisplayedColumns),m(),f("matRowDefColumns",e.sequenceDisplayedColumns)}}function eue(t,n){1&t&&D(0,"mat-divider")}function tue(t,n){if(1&t){const e=_e();d(0,"button",180),A("click",function(){return ie(e),ne(C(3).toggleEdit())}),h(1," CANCEL "),l()}}function iue(t,n){if(1&t){const e=_e();d(0,"div",177)(1,"button",178),A("click",function(){return ie(e),ne(C(2).saveColumnTable())}),h(2," SAVE & CONVERT "),l(),y(3,tue,2,0,"button",179),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function nue(t,n){if(1&t){const e=_e();d(0,"button",180),A("click",function(){return ie(e),ne(C(3).togglePkEdit())}),h(1," CANCEL "),l()}}function oue(t,n){if(1&t){const e=_e();d(0,"div",177)(1,"button",178),A("click",function(){return ie(e),ne(C(2).savePk())}),h(2," SAVE & CONVERT "),l(),y(3,nue,2,0,"button",179),l()}if(2&t){const e=C(2);m(),f("disabled",!e.pkArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function rue(t,n){if(1&t){const e=_e();d(0,"button",180),A("click",function(){return ie(e),ne(C(3).toggleFkEdit())}),h(1," CANCEL "),l()}}function aue(t,n){if(1&t){const e=_e();d(0,"div",177)(1,"button",139),A("click",function(){return ie(e),ne(C(2).saveFk())}),h(2,"SAVE & CONVERT"),l(),y(3,rue,2,0,"button",179),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function sue(t,n){if(1&t){const e=_e();d(0,"button",180),A("click",function(){return ie(e),ne(C(3).toggleIndexEdit())}),h(1," CANCEL "),l()}}function cue(t,n){if(1&t){const e=_e();d(0,"div",177)(1,"button",139),A("click",function(){return ie(e),ne(C(2).saveIndex())}),h(2,"SAVE & CONVERT"),l(),y(3,sue,2,0,"button",179),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function lue(t,n){if(1&t){const e=_e();d(0,"button",180),A("click",function(){return ie(e),ne(C(3).toggleSequenceEdit())}),h(1," CANCEL "),l()}}function due(t,n){if(1&t){const e=_e();d(0,"div",177)(1,"button",178),A("click",function(){return ie(e),ne(C(2).saveSequence())}),h(2," SAVE & CONVERT "),l(),y(3,lue,2,0,"button",179),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function uue(t,n){if(1&t){const e=_e();d(0,"div",13)(1,"div",3)(2,"span")(3,"h3",4),y(4,Zae,2,0,"mat-icon",14)(5,Yae,2,0,"svg",15),d(6,"span",16),h(7),l(),y(8,Qae,3,3,"span",12)(9,Xae,5,0,"button",17)(10,Jae,5,0,"button",17)(11,ese,5,0,"button",17)(12,tse,5,0,"button",17)(13,ise,5,0,"button",17),l(),y(14,nse,4,1,"div",18),l(),d(15,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(16,"mat-icon",6),h(17,"first_page"),l(),d(18,"mat-icon",6),h(19,"last_page"),l()()(),y(20,Yle,143,31,"mat-tab-group",19)(21,Mde,31,6,"div",20)(22,Jde,22,5,"div",21),d(23,"div",22),y(24,eue,1,0,"mat-divider",12)(25,iue,4,2,"div",23)(26,oue,4,2,"div",23)(27,aue,4,1,"div",23)(28,cue,4,1,"div",23)(29,due,4,2,"div",23),l()()}if(2&t){const e=C();m(4),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Index||e.currentObject.type===e.ObjectExplorerNodeType.Sequence),m(2),Pe(" "+e.currentObject.name+" "),m(),f("ngIf",""!=e.currentObject.parent),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"indexName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"sequenceName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Index),m(),f("ngIf",e.currentObject.isSpannerNode&&"indexName"!==e.currentObject.type&&"sequenceName"!==e.currentObject.type&&!e.currentObject.isDeleted),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.interleaveParentName&&e.currentObject.isSpannerNode),m(2),f("ngClass",hi(21,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(23,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(2),f("ngIf","tableName"===e.currentObject.type),m(),f("ngIf","indexName"===e.currentObject.type),m(),f("ngIf","sequenceName"===e.currentObject.type&&e.autoGenSupported),m(2),f("ngIf",e.isEditMode||e.isPkEditMode||e.isFkEditMode),m(),f("ngIf",e.isEditMode&&0===e.currentTabIndex),m(),f("ngIf",e.isPkEditMode&&1===e.currentTabIndex),m(),f("ngIf",e.isFkEditMode&&2===e.currentTabIndex),m(),f("ngIf",e.isIndexEditMode&&-1===e.currentTabIndex),m(),f("ngIf",e.isSequenceEditMode&&-1===e.currentTabIndex)}}let hue=(()=>{class t{constructor(e,i,o,r,a,s,c,u){this.data=e,this.dialog=i,this.snackbar=o,this.conversion=r,this.sidenav=a,this.tableUpdatePubSub=s,this.fb=c,this.fetchSerice=u,this.currentObject=null,this.typeMap={},this.defaultTypeMap={},this.autoGenMap={},this.ddlStmts={},this.fkData=[],this.tableData=[],this.currentDatabase="spanner",this.indexData=[],this.sequenceData={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.updateSidebar=new Ne,this.ObjectExplorerNodeType=jt,this.conv={},this.interleaveParentName=null,this.localTableData=[],this.localIndexData=[],this.localSequenceData={},this.isMiddleColumnCollapse=!1,this.isPostgreSQLDialect=!1,this.processedAutoGenMap={},this.sequenceKinds=[],this.autoGenSupported=!1,this.srcDisplayedColumns=["srcOrder","srcColName","srcDataType","srcColMaxLength","srcIsPk","srcIsNotNull"],this.spDisplayedColumns=["spColName","spDataType","spColMaxLength","spIsPk","spIsNotNull","dropButton"],this.displayedFkColumns=["srcName","srcColumns","srcReferTable","srcReferColumns","spName","spColumns","spReferTable","spReferColumns","dropButton"],this.displayedPkColumns=["srcOrder","srcColName","srcDataType","srcIsPk","srcIsNotNull","spOrder","spColName","spDataType","spIsPk","spIsNotNull","dropButton"],this.indexDisplayedColumns=["srcIndexColName","srcSortBy","srcIndexOrder","spIndexColName","spSortBy","spIndexOrder","dropButton"],this.sequenceDisplayedColumns=["spSeqName","spSequenceKind","spSkipRangeMin","spSkipRangeMax","spStartWithCounter"],this.spDataSource=[],this.srcDataSource=[],this.fkDataSource=[],this.pkDataSource=[],this.pkData=[],this.isPkEditMode=!1,this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isObjectSelected=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.pkArray=this.fb.array([]),this.fkArray=this.fb.array([]),this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.currentTabIndex=0,this.addedColumnName="",this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.indexColumnNames=[],this.shardIdCol="",this.addColumnForm=new ti({columnName:new q("",[ee.required])}),this.addIndexKeyForm=new ti({columnName:new q("",[ee.required]),ascOrDesc:new q("",[ee.required])}),this.addedPkColumnName="",this.addPkColumnForm=new ti({columnName:new q("",[ee.required])}),this.pkObj={},this.dataTypesWithColLen=In.DataTypes,this.spColspan=6,this.srcColspan=6}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),this.autoGenSupported=kN.includes(this.srcDbName)}ngOnChanges(e){this.fkData=e.fkData?.currentValue||this.fkData,this.currentObject=e.currentObject?.currentValue||this.currentObject,this.tableData=e.tableData?.currentValue||this.tableData,this.indexData=e.indexData?.currentValue||this.indexData,this.sequenceData=e.sequenceData?.currentValue||this.sequenceData,this.currentDatabase=e.currentDatabase?.currentValue||this.currentDatabase,this.currentTabIndex=this.currentObject?.type===jt.Index||this.currentObject?.type===jt.Sequence?-1:0,this.isObjectSelected=!!this.currentObject,this.pkData=this.conversion.getPkMapping(this.tableData),this.interleaveParentName=this.getInterleaveParentFromConv(),this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isPkEditMode=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.interleaveParentName=this.getInterleaveParentFromConv(),this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.localIndexData=JSON.parse(JSON.stringify(this.indexData)),this.localSequenceData=JSON.parse(JSON.stringify(this.sequenceData)),this.srcDbName==Wr.MySQL&&!this.spDisplayedColumns.includes("spAutoGen")&&(this.spDisplayedColumns.splice(2,0,"spAutoGen"),this.displayedPkColumns.splice(8,0,"spAutoGen"),this.srcDisplayedColumns.splice(2,0,"srcAutoGen"),this.displayedPkColumns.splice(2,0,"srcAutoGen"),this.spColspan++,this.srcColspan++),this.currentObject?.type===jt.Table?(this.checkIsInterleave(),this.interleaveObj=this.data.tableInterleaveStatus.subscribe(i=>{this.interleaveStatus=i}),this.setSrcTableRows(),this.setSpTableRows(),this.setColumnsToAdd(),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.setFkRows(),this.updateSpTableSuggestion(),this.setShardIdColumn(),this.processedAutoGenMap=IN(this.autoGenMap)):this.currentObject?.type===jt.Index?(this.indexOrderValidation(),this.setIndexRows()):this.currentObject?.type===jt.Sequence&&(this.setSequence(),this.fetchSerice.getSequenceKind().subscribe(i=>{this.sequenceKinds=i})),this.data.getSummary()}setSpTableRows(){this.spRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(e.spOrder){let i=new ti({srcOrder:new q(e.srcOrder),srcColName:new q(e.srcColName),srcDataType:new q(e.srcDataType),srcIsPk:new q(e.srcIsPk),srcIsNotNull:new q(e.srcIsNotNull),srcColMaxLength:new q(e.srcColMaxLength),srcAutoGen:new q(e.srcAutoGen),spOrder:new q(e.srcOrder),spColName:new q(e.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDataType:new q(e.spDataType),spIsPk:new q(e.spIsPk),spIsNotNull:new q(e.spIsNotNull),spId:new q(e.spId),srcId:new q(e.srcId),spColMaxLength:new q(e.spColMaxLength,[ee.required]),spAutoGen:new q(e.spAutoGen)});this.dataTypesWithColLen.indexOf(e.spDataType.toString())>-1?(i.get("spColMaxLength")?.setValidators([ee.required,ee.pattern("([1-9][0-9]*|MAX)")]),(void 0===e.spColMaxLength||"MAX"!==e.spColMaxLength&&(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.ByteMaxLength))&&i.get("spColMaxLength")?.setValue("MAX")):i.controls.spColMaxLength.clearValidators(),i.controls.spColMaxLength.updateValueAndValidity(),this.spRowArray.push(i)}}),this.spDataSource=this.spRowArray.controls}setSrcTableRows(){this.srcRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(""!=e.spColName)this.srcRowArray.push(new ti({srcOrder:new q(e.srcOrder),srcColName:new q(e.srcColName),srcDataType:new q(e.srcDataType),srcIsPk:new q(e.srcIsPk),srcIsNotNull:new q(e.srcIsNotNull),srcColMaxLength:new q(e.srcColMaxLength),srcAutoGen:new q(e.srcAutoGen),spOrder:new q(e.spOrder),spColName:new q(e.spColName),spDataType:new q(e.spDataType),spIsPk:new q(e.spIsPk),spIsNotNull:new q(e.spIsNotNull),spId:new q(e.spId),srcId:new q(e.srcId),spColMaxLength:new q(e.spColMaxLength),spAutoGen:new q(e.spAutoGen)}));else{let i="",o=e.srcColMaxLength;void 0===this.defaultTypeMap[e.srcDataType]?(i="STRING",o="MAX"):i=this.defaultTypeMap[e.srcDataType].Name,""==o&&("STRING"==i||"BYTES"==i)&&(o="MAX"),this.srcRowArray.push(new ti({srcOrder:new q(e.srcOrder),srcColName:new q(e.srcColName),srcDataType:new q(e.srcDataType),srcIsPk:new q(e.srcIsPk),srcIsNotNull:new q(e.srcIsNotNull),srcColMaxLength:new q(e.srcColMaxLength),srcAutoGen:new q(e.srcAutoGen),spOrder:new q(e.srcOrder),spColName:new q(e.srcColName),spDataType:new q(i),spIsPk:new q(e.srcIsPk),spIsNotNull:new q(e.srcIsNotNull),spColMaxLength:new q(o),spAutoGen:new q(e.spAutoGen)}))}}),this.srcDataSource=this.srcRowArray.controls}setColumnsToAdd(){this.localTableData.forEach(e=>{e.spColName||this.srcRowArray.value.forEach(i=>{e.srcColName==i.srcColName&&""!=i.srcColName&&(this.droppedColumns.push(i),this.droppedSourceColumns.push(i.srcColName))})})}toggleEdit(){this.currentTabIndex=0,this.isEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.setSpTableRows(),this.isEditMode=!1):this.isEditMode=!0}saveColumnTable(){this.isEditMode=!1;let i,e={UpdateCols:{}};this.conversion.pgSQLToStandardTypeTypeMap.subscribe(o=>{i=o}),this.spRowArray.value.forEach((o,r)=>{for(let a=0;aIn.StringMaxLength||"BYTES"===o.spDataType&&"number"==typeof o.spColMaxLength&&o.spColMaxLength>In.ByteMaxLength)&&(o.spColMaxLength="MAX"),"number"==typeof o.spColMaxLength&&(o.spColMaxLength=o.spColMaxLength.toString()),"STRING"!=o.spDataType&&"BYTES"!=o.spDataType&&"VARCHAR"!=o.spDataType&&(o.spColMaxLength=""),o.srcId==this.tableData[a].srcId&&""!=this.tableData[a].srcId){e.UpdateCols[this.tableData[a].srcId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen};break}o.spId==this.tableData[a].spId&&(e.UpdateCols[this.tableData[a].spId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen})}}),this.droppedColumns.forEach(o=>{e.UpdateCols[o.spId]={Add:!1,Rename:"",NotNull:"",Removed:!0,ToType:"",MaxColLength:"",AutoGen:{Name:"",GenerationType:""}}}),this.data.reviewTableUpdate(this.currentObject.id,e).subscribe({next:o=>{""==o?(this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("reviewChanges"),this.tableUpdatePubSub.setTableUpdateDetail({tableName:this.currentObject.name,tableId:this.currentObject.id,updateDetail:e}),this.isEditMode=!0):(this.dialog.open(Uo,{data:{message:o,type:"error"},maxWidth:"500px"}),this.isEditMode=!0)}})}addNewColumn(){this.dialog.open(Gae,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{dialect:this.conv.SpDialect,tableId:this.currentObject?.id}})}addNewSequence(){this.dialog.open(FN,MN),this.updateSidebar.emit(!0)}setColumn(e){this.addedColumnName=e}restoreColumn(){let e=this.tableData.map(r=>r.srcColName).indexOf(this.addedColumnName),i=this.droppedColumns.map(r=>r.srcColName).indexOf(this.addedColumnName);this.localTableData[e].spColName=this.droppedColumns[i].spColName,this.localTableData[e].spDataType=this.droppedColumns[i].spDataType,this.localTableData[e].spOrder=-1,this.localTableData[e].spIsPk=this.droppedColumns[i].spIsPk,this.localTableData[e].spIsNotNull=this.droppedColumns[i].spIsNotNull,this.localTableData[e].spColMaxLength=this.droppedColumns[i].spColMaxLength,this.localTableData[e].spAutoGen=this.droppedColumns[i].spAutoGen;let o=this.droppedColumns.map(r=>r.spColName).indexOf(this.addedColumnName);o>-1&&(this.droppedColumns.splice(o,1),this.droppedSourceColumns.indexOf(this.addedColumnName)>-1&&this.droppedSourceColumns.splice(this.droppedSourceColumns.indexOf(this.addedColumnName),1)),this.setSpTableRows()}dropColumn(e){let i=e.get("srcColName").value,o=e.get("srcId").value,r=e.get("spId").value,a=""!=o?o:r,s=e.get("spColName").value,c=this.getAssociatedIndexs(a);if(this.checkIfPkColumn(a)||0!=c.length){let u="",p="",g="";this.checkIfPkColumn(a)&&(u=" Primary key"),0!=c.length&&(p=` Index ${c}`),""!=u&&""!=p&&(g=" and"),this.dialog.open(Uo,{data:{message:`Column ${s} is a part of${u}${g}${p}. Remove the dependencies from respective tabs before dropping the Column. `,type:"error"},maxWidth:"500px"})}else this.spRowArray.value.forEach((u,p)=>{u.spId===r&&this.droppedColumns.push(u)}),this.dropColumnFromUI(r),""!==i&&this.droppedSourceColumns.push(i)}checkIfPkColumn(e){let i=!1;return null!=this.conv.SpSchema[this.currentObject.id].PrimaryKeys&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(o=>o.ColId).includes(e)&&(i=!0),i}setShardIdColumn(){void 0!==this.conv.SpSchema[this.currentObject.id]&&(this.shardIdCol=this.conv.SpSchema[this.currentObject.id].ShardIdColumn)}getAssociatedIndexs(e){let i=[];return null!=this.conv.SpSchema[this.currentObject.id].Indexes&&this.conv.SpSchema[this.currentObject.id].Indexes.forEach(o=>{o.Keys.map(r=>r.ColId).includes(e)&&i.push(o.Name)}),i}dropColumnFromUI(e){this.localTableData.forEach((i,o)=>{i.spId==e&&(i.spColName="",i.spDataType="",i.spIsNotNull=!1,i.spIsPk=!1,i.spOrder="",i.spColMaxLength="",i.spAutoGen={Name:"",GenerationType:""})}),this.setSpTableRows()}updateSpTableSuggestion(){this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.localTableData.forEach(e=>{const i=e.srcDataType,o=e.spDataType;let r="";this.typeMap[i]?.forEach(a=>{o==a.DiplayT&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay.push(""!==r),this.spTableSuggestion.push(r)})}spTableEditSuggestionHandler(e,i){let r="";this.typeMap[this.localTableData[e].srcDataType].forEach(a=>{i==a.T&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay[e]=""!==r,this.spTableSuggestion[e]=r}compareAutoGen(e,i){return e&&i?e.Name===i.Name&&e.GenerationType===i.GenerationType:e===i}setPkRows(){this.pkArray=this.fb.array([]),this.pkOrderValidation();var e=new Array,i=new Array;this.pkData.forEach(o=>{o.srcIsPk&&e.push({srcColName:o.srcColName,srcDataType:o.srcDataType,srcIsNotNull:o.srcIsNotNull,srcIsPk:o.srcIsPk,srcOrder:o.srcOrder,srcId:o.srcId,srcAutoGen:o.srcAutoGen}),o.spIsPk&&i.push({spColName:o.spColName,spDataType:o.spDataType,spIsNotNull:o.spIsNotNull,spIsPk:o.spIsPk,spOrder:o.spOrder,spId:o.spId,spAutoGen:o.spAutoGen})}),i.sort((o,r)=>o.spOrder-r.spOrder);for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);or.spColName).indexOf(this.addedPkColumnName),i=this.localTableData[e],o=1;this.localTableData[e].spIsPk=!0,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),e=this.pkData.findIndex(r=>r.srcId===i.srcId||r.spId==i.spId),this.pkArray.value.forEach(r=>{r.spIsPk&&(o+=1);for(let a=0;a{i.spIsPk&&e.push(i.spColName)});for(let i=0;i{if(this.pkData[i].spId===this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].ColId)this.pkData[i].spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].Order;else{let o=this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);e.spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[o]?.Order}}:(e,i)=>{let o=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);-1!==o&&(e.spOrder=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys[o].Order)})}pkOrderValidation(){let e=this.pkData.filter(i=>i.spIsPk).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.pkData.forEach(r=>{r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{"number"==typeof o.spOrder&&o.spOrder{o.spIsPk&&i.push({ColId:o.spId,Desc:typeof this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId)<"u"&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId).Desc,Order:parseInt(o.spOrder)})}),this.pkObj.TableId=e,this.pkObj.Columns=i}togglePkEdit(){this.currentTabIndex=1,this.isPkEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.pkData=this.conversion.getPkMapping(this.tableData),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.isPkEditMode=!1):this.isPkEditMode=!0}savePk(){if(this.pkArray.value.forEach(e=>{for(let i=0;i{o&&this.data.removeInterleave(""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.currentObject.id:this.conv.SpSchema[e].Id).pipe(Pt(1)).subscribe(a=>{this.updatePk()})}):this.updatePk()}}updatePk(){this.isPkEditMode=!1,this.data.updatePk(this.pkObj).subscribe({next:e=>{""==e?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:e,type:"error"},maxWidth:"500px"}),this.isPkEditMode=!0)}})}dropPk(e){let i=this.localTableData.map(a=>a.spColName).indexOf(e.value.spColName);this.localTableData[i].spId==(this.conv.SyntheticPKeys[this.currentObject.id]?this.conv.SyntheticPKeys[this.currentObject.id].ColId:"")?this.dialog.open(Uo,{data:{message:"Removing this synthetic id column from primary key will drop the column from the table",title:"Confirm removal of synthetic id",type:"warning"},maxWidth:"500px"}).afterClosed().subscribe(s=>{s&&this.dropPkHelper(i,e.value.spOrder)}):this.dropPkHelper(i,e.value.spOrder)}dropPkHelper(e,i){this.localTableData[e].spIsPk=!1,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),this.pkArray.value.forEach(o=>{for(let r=0;r{"number"==typeof o.spOrder&&o.spOrder>i&&(o.spOrder=Number(o.spOrder)-1)}),this.setAddPkColumnList(),this.setPkRows()}setFkRows(){this.fkArray=this.fb.array([]);var e=new Array,i=new Array;this.fkData.forEach(o=>{e.push({srcName:o.srcName,srcColumns:o.srcColumns,srcRefTable:o.srcReferTable,srcRefColumns:o.srcReferColumns,Id:o.srcFkId}),""!=o.spName&&i.push({spName:o.spName,spColumns:o.spColumns,spRefTable:o.spReferTable,spRefColumns:o.spReferColumns,Id:o.spFkId,spColIds:o.spColIds,spReferColumnIds:o.spReferColumnIds,spReferTableId:o.spReferTableId})});for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);o{e.push({Name:i.spName,ColIds:i.spColIds,ReferTableId:i.spReferTableId,ReferColumnIds:i.spReferColumnIds,Id:i.spFkId})}),this.data.updateFkNames(this.currentObject.id,e).subscribe({next:i=>{""==i?this.isFkEditMode=!1:this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"})}})}dropFk(e){this.fkData.forEach(i=>{i.spName==e.get("spName").value&&(i.spName="",i.spColumns=[],i.spReferTable="",i.spReferColumns=[],i.spColIds=[],i.spReferColumnIds=[],i.spReferTableId="")}),this.setFkRows()}getRemovedFkIndex(e){let i=-1;return this.fkArray.value.forEach((o,r)=>{o.spName===e.get("spName").value&&(i=r)}),i}removeInterleave(){this.data.removeInterleave(this.currentObject.id).pipe(Pt(1)).subscribe(i=>{""===i&&this.snackbar.openSnackBar("Interleave removed and foreign key restored successfully","Close",5)})}checkIsInterleave(){this.currentObject&&!this.currentObject?.isDeleted&&this.currentObject?.isSpannerNode&&this.data.getInterleaveConversionForATable(this.currentObject.id)}setInterleave(){this.data.setInterleave(this.currentObject.id)}getInterleaveParentFromConv(){return this.currentObject?.type===jt.Table&&this.currentObject.isSpannerNode&&!this.currentObject.isDeleted&&""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentId]?.Name:null}setIndexRows(){this.spRowArray=this.fb.array([]);const e=this.localIndexData.map(i=>i.spColName?i.spColName:"").filter(i=>""!=i);this.indexColumnNames=this.conv.SpSchema[this.currentObject.parentId]?.ColIds?.filter(i=>!e.includes(this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name)).map(i=>this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name),this.localIndexData.forEach(i=>{this.spRowArray.push(new ti({srcOrder:new q(i.srcOrder),srcColName:new q(i.srcColName),srcDesc:new q(i.srcDesc),spOrder:new q(i.spOrder),spColName:new q(i.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDesc:new q(i.spDesc)}))}),this.spDataSource=this.spRowArray.controls}setIndexOrder(){this.spRowArray.value.forEach(e=>{for(let i=0;i""!=i.spColName).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.localIndexData.forEach(r=>{""!=r.spColName&&r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{o.spOrder!!i.spColId).map(i=>({ColId:i.spColId,Desc:i.spDesc,Order:i.spOrder})),Id:this.currentObject.id}),0==e[0].Keys.length?this.dropIndex():(this.data.updateIndex(this.currentObject?.parentId,e).subscribe({next:i=>{""==i?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"}),this.isIndexEditMode=!0)}}),this.addIndexKeyForm.controls.columnName.setValue(""),this.addIndexKeyForm.controls.ascOrDesc.setValue(""),this.addIndexKeyForm.markAsUntouched(),this.data.getSummary(),this.isIndexEditMode=!1)}saveSequence(){this.spRowArray.value.forEach(e=>{this.data.updateSequence({Name:e.spSeqName?e.spSeqName:"",Id:this.currentObject.id,SequenceKind:e.spSequenceKind?e.spSequenceKind:"",SkipRangeMax:e.spSkipRangeMax?e.spSkipRangeMax:"",SkipRangeMin:e.spSkipRangeMin?e.spSkipRangeMin:"",StartWithCounter:e.spStartWithCounter?e.spStartWithCounter:""}).pipe(Pt(1)).subscribe(()=>{})}),this.isSequenceEditMode=!1}dropIndex(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Index}}).afterClosed().subscribe(i=>{i===ys.Index&&(this.data.dropIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}dropSequence(){let e=Jne;e.data={name:this.currentObject?.name,type:ys.Sequence},this.dialog.open(xw,e).afterClosed().subscribe(o=>{o===ys.Sequence&&(this.data.dropSequence(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}restoreIndex(){this.data.restoreIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1)}),this.currentObject=null}dropIndexKey(e){this.localIndexData[e].srcColName?(this.localIndexData[e].spColName="",this.localIndexData[e].spColId="",this.localIndexData[e].spDesc="",this.localIndexData[e].spOrder=""):this.localIndexData.splice(e,1),this.setIndexRows()}addIndexKey(){let e=0;this.localIndexData.forEach(i=>{i.spColName&&(e+=1)}),this.localIndexData.push({spColName:this.addIndexKeyForm.value.columnName,spDesc:"desc"===this.addIndexKeyForm.value.ascOrDesc,spOrder:e+1,srcColName:"",srcDesc:void 0,srcOrder:"",srcColId:void 0,spColId:this.currentObject?this.conversion.getColIdFromSpannerColName(this.addIndexKeyForm.value.columnName,this.currentObject.parentId,this.conv):""}),this.setIndexRows()}restoreSpannerTable(){this.data.restoreTable(this.currentObject.id).pipe(Pt(1)).subscribe(e=>{""===e&&(this.isObjectSelected=!1),this.data.getConversionRate(),this.data.getDdl()}),this.currentObject=null}dropTable(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Table}}).afterClosed().subscribe(i=>{i===ys.Table&&(this.data.dropTable(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.currentObject=null)})}tabChanged(e){this.currentTabIndex=e.index}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse,this.sidenav.setMiddleColComponent(this.isMiddleColumnCollapse)}tableInterleaveWith(e){if(""!=this.conv.SpSchema[e].ParentId)return this.conv.SpSchema[e].ParentId;let i="";return Object.keys(this.conv.SpSchema).forEach(o=>{""!=this.conv.SpSchema[o].ParentId&&this.conv.SpSchema[o].ParentId==e&&(i=o)}),i}isPKPrefixModified(e,i){let o,r;this.conv.SpSchema[e].ParentId!=i?(o=this.pkObj.Columns,r=this.conv.SpSchema[i].PrimaryKeys):(r=this.pkObj.Columns,o=this.conv.SpSchema[i].PrimaryKeys);for(let a=0;a{class t{constructor(e,i){this.sidenavService=e,this.data=i,this.dataSource=[],this.currentDataSource=[],this.displayedColumns=["order","name","type","objectType","associatedObject","enabled","view"],this.currentObject=null,this.lengthOfRules=new Ne}ngOnInit(){this.dataSource=[],this.data.rule.subscribe({next:e=>{this.currentDataSource=e,this.updateRules()}})}ngOnChanges(){this.updateRules()}updateRules(){if(this.currentDataSource){let e=[],i=[];e=this.currentDataSource.filter(o=>"global_datatype_change"===o?.Type||"add_shard_id_primary_key"===o?.Type||"edit_column_max_length"===o?.Type&&"All table"===o?.AssociatedObjects),this.currentObject&&("tableName"===this.currentObject?.type||"indexName"===this.currentObject?.type)&&(i=this.currentDataSource.filter(o=>o?.AssociatedObjects===this.currentObject?.id||o?.AssociatedObjects===this.currentObject?.parentId||o?.AssociatedObjects===this.currentObject?.name||o?.AssociatedObjects===this.currentObject?.parent).map(o=>{let r="";return"tableName"===this.currentObject?.type?r=this.currentObject.name:"indexName"===this.currentObject?.type&&(r=this.currentObject.parent),o.AssociatedObjects=r,o})),this.dataSource=[...e,...i],this.lengthOfRules.emit(this.dataSource.length)}else this.dataSource=[],this.lengthOfRules.emit(0)}openSidenav(){this.sidenavService.openSidenav(),this.sidenavService.setSidenavComponent("rule"),this.sidenavService.setSidenavRuleType(""),this.sidenavService.setRuleData({}),this.sidenavService.setDisplayRuleFlag(!1)}viewSidenavRule(e){let i=[];for(let o=0;o[t],Fue=(t,n,e,i,o)=>({"middle-column-expand":t,"middle-column-collapse":n,"middle-column-full":e,display:i,hidden:o}),Lue=(t,n,e,i,o,r)=>({"right-column-half-expand":t,"right-column-full-expand":n,"right-column-collapse":e,"middle-column-hide":i,display:o,hidden:r}),jN=t=>({"blue-font-color":t});let Bue=(()=>{class t{constructor(e,i,o,r,a,s,c){this.data=e,this.conversion=i,this.dialog=o,this.sidenav=r,this.router=a,this.clickEvent=s,this.fetch=c,this.fkData=[],this.tableData=[],this.indexData=[],this.sequenceData={},this.typeMap=!1,this.defaultTypeMap=!1,this.conversionRates={},this.autoGenMap=!1,this.isLeftColumnCollapse=!1,this.isRightColumnCollapse=!0,this.isMiddleColumnCollapse=!0,this.isOfflineStatus=!1,this.spannerTree=[],this.srcTree=[],this.issuesAndSuggestionsLabel="ISSUES AND SUGGESTIONS",this.rulesLabel="RULES (0)",this.objectExplorerInitiallyRender=!1,this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0},this.currentDatabase="spanner",this.dialect="",this.currentObject=null}ngOnInit(){this.conversion.getStandardTypeToPGSQLTypemap(),this.conversion.getPGSQLToStandardTypeTypemap(),this.ddlsumconvObj=this.data.getRateTypemapAndSummary(),this.typemapObj=this.data.typeMap.subscribe(e=>{this.typeMap=e}),this.defaultTypemapObj=this.data.defaultTypeMap.subscribe(e=>{this.defaultTypeMap=e}),this.ddlObj=this.data.ddl.subscribe(e=>{this.ddlStmts=e}),this.sidenav.setMiddleColumnComponent.subscribe(e=>{this.isMiddleColumnCollapse=!e}),this.data.autoGenMap&&(this.autoGenMapObj=this.data.autoGenMap.subscribe(e=>{this.autoGenMap=e})),this.data.treeUpdate&&(this.rerenderObj=this.data.treeUpdate.subscribe(()=>{this.reRenderObjectExplorerSpanner()})),this.convObj=this.data.conv.subscribe(e=>{Object.keys(e.SrcSchema).length<=0&&this.router.navigate(["/"]);const i=this.isIndexAddedOrRemoved(e);e&&this.conv&&Object.keys(e?.SpSchema).length!=Object.keys(this.conv?.SpSchema).length&&(this.conv=e,this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc()),this.conv=e,this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),i&&this.conversionRates&&this.reRenderObjectExplorerSpanner(),!this.objectExplorerInitiallyRender&&this.conversionRates&&(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0),this.currentObject&&this.currentObject.type===jt.Table&&(this.fkData=this.currentObject?this.conversion.getFkMapping(this.currentObject.id,e):[],this.tableData=this.currentObject?this.conversion.getColumnMapping(this.currentObject.id,e):[]),this.currentObject&&this.currentObject?.type===jt.Index&&!i&&(this.indexData=this.conversion.getIndexMapping(this.currentObject.parentId,this.conv,this.currentObject.id)),this.dialect="postgresql"===this.conv.SpDialect?"PostgreSQL":"Google Standard SQL"}),this.converObj=this.data.conversionRate.subscribe(e=>{this.conversionRates=e,this.updateConversionRatePercentages(),this.conv?(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0):this.objectExplorerInitiallyRender=!1}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}})}ngOnDestroy(){this.typemapObj.unsubscribe(),this.convObj.unsubscribe(),this.ddlObj.unsubscribe(),this.ddlsumconvObj.unsubscribe(),this.autoGenMapObj&&this.autoGenMapObj.unsubscribe(),this.rerenderObj&&this.rerenderObj.unsubscribe()}updateConversionRatePercentages(){let e=Object.keys(this.conversionRates).length;this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0};for(const i in this.conversionRates)"NONE"===this.conversionRates[i]||"EXCELLENT"===this.conversionRates[i]?this.conversionRateCount.good+=1:"GOOD"===this.conversionRates[i]||"OK"===this.conversionRates[i]?this.conversionRateCount.ok+=1:this.conversionRateCount.bad+=1;if(e>0)for(let i in this.conversionRatePercentages)this.conversionRatePercentages[i]=Number((this.conversionRateCount[i]/e*100).toFixed(2))}reRenderObjectExplorerSpanner(){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates)}reRenderObjectExplorerSrc(){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates)}changeCurrentObject(e){e.type===jt.Table?(this.currentObject=e,this.tableData=this.conversion.getColumnMapping(this.currentObject.id,this.conv),this.fkData=[],this.fkData=this.conversion.getFkMapping(this.currentObject.id,this.conv)):e.type===jt.Index?(this.currentObject=e,this.indexData=this.conversion.getIndexMapping(e.parentId,this.conv,e.id)):e.type===jt.Sequence?(this.currentObject=e,this.sequenceData=this.conversion.getSequenceMapping(e.id,this.conv)):this.currentObject=null}changeCurrentDatabase(e){this.currentDatabase=e}updateIssuesLabel(e){setTimeout(()=>{this.issuesAndSuggestionsLabel=`ISSUES AND SUGGESTIONS (${e})`})}updateRulesLabel(e){setTimeout(()=>{this.rulesLabel=`RULES (${e})`})}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse}rightColumnToggle(){this.isRightColumnCollapse=!this.isRightColumnCollapse}openAssessment(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("assessment");let e="";if(localStorage.getItem(Wi.Type)==Jn.DirectConnect){let r=JSON.parse(localStorage.getItem(Wi.Config));e=r?.hostName+" : "+r?.port}else e=this.conv.DatabaseName;this.clickEvent.setViewAssesmentData({srcDbType:this.srcDbName,connectionDetail:e,conversionRates:this.conversionRateCount})}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}downloadArtifacts(){let e=new RN,i=`${this.conv.DatabaseName}`;this.fetch.getDStructuredReport().subscribe({next:o=>{let r=JSON.stringify(o).replace(/9223372036854776000/g,"9223372036854775807");e.file(i+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(i+"_migration_textReport.txt",s),this.fetch.getDSpannerDDL().subscribe({next:c=>{e.file(i+"_spannerDDL.txt",c);let u=JSON.stringify(this.conv).replace(/9223372036854776000/g,"9223372036854775807");e.file(`${this.conv.SessionName}_${this.conv.DatabaseType}_${i}.json`,u),e.generateAsync({type:"blob"}).then(g=>{var b=document.createElement("a");b.href=URL.createObjectURL(g),b.download=`${i}_artifacts`,b.click()})}})}})}})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),e.download=`${this.conv.DatabaseName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_migration_textReport.txt`,e.click()}})}downloadDDL(){var e=document.createElement("a");this.fetch.getDSpannerDDL().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_spannerDDL.txt`,e.click()}})}updateSpannerTable(e){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates,e.text,e.order)}updateSrcTable(e){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates,e.text,e.order)}isIndexAddedOrRemoved(e){if(this.conv){let i=0,o=0;return Object.entries(this.conv.SpSchema).forEach(r=>{i+=r[1].Indexes?r[1].Indexes.length:0}),Object.entries(e.SpSchema).forEach(r=>{o+=r[1].Indexes?r[1].Indexes.length:0}),i!==o}return!1}prepareMigration(){this.fetch.getTableWithErrors().subscribe({next:e=>{if(null!=e&&0!=e.length){let i="Please fix the errors for the following tables to move ahead: "+e.map(o=>o.Name).join(", ");this.dialog.open(Uo,{data:{message:i,type:"error",title:"Error in Spanner Draft"},maxWidth:"500px"})}else this.isOfflineStatus?this.dialog.open(Uo,{data:{message:"Please configure spanner project id and instance id to proceed",type:"error",title:"Configure Spanner"},maxWidth:"500px"}):0==Object.keys(this.conv.SpSchema).length?this.dialog.open(Uo,{data:{message:"Please restore some table(s) to proceed with the migration",type:"error",title:"All tables skipped"},maxWidth:"500px"}):this.router.navigate(["/prepare-migration"])}})}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(pc),_(zr),_(eo),_(Rn),_(nr),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-workspace"]],decls:57,vars:61,consts:[[1,"header"],[1,"breadcrumb","vertical-center"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],[1,"header_action"],["matTooltip","Connect to a spanner instance to run migration",3,"matTooltipDisabled"],["mat-button","",3,"click"],["mat-button","",3,"click",4,"ngIf"],[1,"artifactsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],[1,"container"],[1,"summary"],[1,"spanner-tab-link",3,"click"],[1,"columns"],[1,"column-left",3,"ngClass"],[3,"spannerTree","srcTree","srcDbName","selectedDatabase","selectObject","updateSpannerTable","updateSrcTable","leftCollaspe","middleCollapse"],[1,"column-middle",3,"ngClass"],[3,"currentObject","tableData","indexData","sequenceData","typeMap","autoGenMap","ddlStmts","fkData","currentDatabase","defaultTypeMap","updateSidebar"],[1,"column-right",3,"ngClass"],[3,"ngClass","label"],[3,"currentObject","changeIssuesLabel"],[3,"currentObject","lengthOfRules"],["id","right-column-toggle-button",3,"click"],[3,"ngClass"]],template:function(i,o){if(1&i&&(d(0,"div")(1,"div",0)(2,"div",1)(3,"a",2),h(4,"Select Source"),l(),d(5,"span"),h(6,">"),l(),d(7,"a",3)(8,"b"),h(9),l()()(),d(10,"div",4)(11,"span",5)(12,"button",6),A("click",function(){return o.prepareMigration()}),h(13," PREPARE MIGRATION "),l()(),d(14,"button",6),A("click",function(){return o.openAssessment()}),h(15,"VIEW ASSESSMENT"),l(),y(16,Nue,2,0,"button",7),d(17,"span",8)(18,"button",9),A("click",function(){return o.downloadArtifacts()}),h(19," DOWNLOAD ARTIFACTS "),l(),d(20,"button",10)(21,"mat-icon",11),h(22,"expand_more"),l()(),d(23,"mat-menu",12,13)(25,"button",14),A("click",function(){return o.downloadTextReport()}),h(26,"Download Text Report"),l(),d(27,"button",14),A("click",function(){return o.downloadStructuredReport()}),h(28,"Download Structured Report"),l(),d(29,"button",14),A("click",function(){return o.downloadSession()}),h(30,"Download Session File"),l(),d(31,"button",14),A("click",function(){return o.downloadDDL()}),h(32,"Download Spanner DDL"),l()()()()(),d(33,"div",15)(34,"div",16),h(35),D(36,"br"),h(37," To make schema changes go to "),d(38,"a",17),A("click",function(){return o.spannerTab()}),h(39,"Spanner Draft"),l(),h(40," pane. "),l()(),d(41,"div",18)(42,"div",19)(43,"app-object-explorer",20),A("selectedDatabase",function(a){return o.changeCurrentDatabase(a)})("selectObject",function(a){return o.changeCurrentObject(a)})("updateSpannerTable",function(a){return o.updateSpannerTable(a)})("updateSrcTable",function(a){return o.updateSrcTable(a)})("leftCollaspe",function(){return o.leftColumnToggle()})("middleCollapse",function(){return o.middleColumnToggle()}),l()(),d(44,"div",21)(45,"app-object-detail",22),A("updateSidebar",function(){return o.reRenderObjectExplorerSpanner()}),l()(),d(46,"div",23)(47,"mat-tab-group")(48,"mat-tab",24)(49,"app-summary",25),A("changeIssuesLabel",function(a){return o.updateIssuesLabel(a)}),l()(),d(50,"mat-tab",24)(51,"app-rule",26),A("lengthOfRules",function(a){return o.updateRulesLabel(a)}),l()()(),d(52,"button",27),A("click",function(){return o.rightColumnToggle()}),d(53,"mat-icon",28),h(54,"first_page"),l(),d(55,"mat-icon",28),h(56,"last_page"),l()()()()()),2&i){const r=Ft(24);m(3),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(2),De("Configure Schema (",o.dialect," Dialect)"),m(2),f("matTooltipDisabled",!o.isOfflineStatus),m(5),f("ngIf",!o.isOfflineStatus),m(4),f("matMenuTriggerFor",r),m(15),wv(" Estimation for ",o.srcDbName.toUpperCase()," to Spanner conversion: ",o.conversionRatePercentages.good,"% of tables can be converted automatically, ",o.conversionRatePercentages.ok,"% requires minimal conversion changes and ",o.conversionRatePercentages.bad,"% requires high complexity conversion changes. "),m(7),f("ngClass",hi(34,Dh,o.isLeftColumnCollapse?"left-column-collapse":"left-column-expand")),m(),f("spannerTree",o.spannerTree)("srcTree",o.srcTree)("srcDbName",o.srcDbName),m(),f("ngClass",function UM(t,n,e,i,o,r,a,s){const c=no()+t,u=be(),p=Wo(u,c,e,i,o,r);return tn(u,c+4,a)||p?Rr(u,c+5,s?n.call(s,e,i,o,r,a):n(e,i,o,r,a)):Xd(u,c+5)}(36,Fue,o.isLeftColumnCollapse,!o.isLeftColumnCollapse,!o.isMiddleColumnCollapse,o.isRightColumnCollapse,!o.isRightColumnCollapse)),m(),f("currentObject",o.currentObject)("tableData",o.tableData)("indexData",o.indexData)("sequenceData",o.sequenceData)("typeMap",o.typeMap)("autoGenMap",o.autoGenMap)("ddlStmts",o.ddlStmts)("fkData",o.fkData)("currentDatabase",o.currentDatabase)("defaultTypeMap",o.defaultTypeMap),m(),f("ngClass",function $M(t,n,e,i,o,r,a,s,c){const u=no()+t,p=be(),g=Wo(p,u,e,i,o,r);return js(p,u+4,a,s)||g?Rr(p,u+6,c?n.call(c,e,i,o,r,a,s):n(e,i,o,r,a,s)):Xd(p,u+6)}(42,Lue,!o.isRightColumnCollapse&&!o.isLeftColumnCollapse,!o.isRightColumnCollapse&&o.isLeftColumnCollapse,o.isRightColumnCollapse,!o.isMiddleColumnCollapse,o.isMiddleColumnCollapse,!o.isMiddleColumnCollapse)),m(2),f("ngClass",hi(51,jN,hi(49,Dh,o.updateIssuesLabel)))("label",o.issuesAndSuggestionsLabel),m(),f("currentObject",o.currentObject),m(),f("ngClass",hi(55,jN,hi(53,Dh,o.updateRulesLabel)))("label",o.rulesLabel),m(),f("currentObject",o.currentObject),m(2),f("ngClass",hi(57,Dh,o.isRightColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(59,Dh,o.isRightColumnCollapse?"hidden":"display"))}},dependencies:[vr,It,Gr,zE,Yt,Mi,jl,wa,zl,eg,BC,vn,Bre,Pae,hue,Rue],styles:["app-object-detail[_ngcontent-%COMP%]{height:100%}.vertical-center[_ngcontent-%COMP%]{display:flex;align-items:center}.columns[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;border-top:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3;height:calc(100vh - 222px)}.artifactsButtons[_ngcontent-%COMP%]{white-space:nowrap}.container[_ngcontent-%COMP%]{padding:7px 20px;margin-bottom:20px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{font-weight:lighter}.container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 5px}.column-left[_ngcontent-%COMP%]{overflow:auto}.column-middle[_ngcontent-%COMP%]{width:48%;border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3;overflow:auto}.column-right[_ngcontent-%COMP%]{width:26%;position:relative;overflow:auto}.left-column-collapse[_ngcontent-%COMP%]{width:3%}.left-column-expand[_ngcontent-%COMP%]{width:26%}.middle-column-collapse[_ngcontent-%COMP%]{width:48%}.middle-column-expand[_ngcontent-%COMP%]{width:71%}.right-column-half-expand[_ngcontent-%COMP%]{width:80%}.right-column-collapse[_ngcontent-%COMP%]{width:26%}.right-column-full-expand[_ngcontent-%COMP%]{width:97%}.middle-column-hide[_ngcontent-%COMP%]{width:0%}.middle-column-full[_ngcontent-%COMP%]{width:100%}#right-column-toggle-button[_ngcontent-%COMP%]{border:none;background-color:inherit;position:absolute;top:10px;right:7px;z-index:100}#right-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer} .column-right .mat-mdc-tab-label .mat-mdc-tab-label-content{font-size:.8rem} .column-right .mat-mdc-tab-label{min-width:25px!important;padding:10px} .column-right .mat-mdc-tab-label.mat-mdc-tab-label-active{min-width:25px!important;padding:7px} .column-right .mat-mdc-tab-label-container{margin-right:40px} .column-right .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-right .mat-mdc-tab-header-pagination-after{margin-right:40px}.split-button-left[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:none;padding-right:1px}.split-button-right[_ngcontent-%COMP%]{box-shadow:none;width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;margin-right:7px}"]})}return t})(),Vue=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.dialogRef=i,this.data=o,this.region="",this.spannerInstance="",this.dialect="",this.region=o.Region,this.spannerInstance=o.Instance,this.dialect=o.Dialect,this.targetDetailsForm=this.formBuilder.group({targetDb:["",[ee.required,ee.pattern("^[a-z][a-z0-9-_]{0,28}[a-z0-9]$")]]}),this.targetDetailsForm.setValue({targetDb:localStorage.getItem(yt.TargetDB)})}ngOnInit(){}updateTargetDetails(){let e=this.targetDetailsForm.value;localStorage.setItem(yt.TargetDB,e.targetDb),localStorage.setItem(yt.Dialect,e.dialect),localStorage.setItem(he.IsTargetDetailSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-target-details-form"]],decls:35,vars:5,consts:[["mat-dialog-content",""],[1,"target-detail-form",3,"formGroup"],["matTooltip","Schema & Schema and data migration: Specify new database name or existing database with empty schema. Data migration: Specify existing database with tables already created",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Target Database","type","text","formControlName","targetDb","ng-value","targetDetails.TargetDB"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Spanner Database Details"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"Spanner Database"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Min. 2 characters and Max. 30 characters. "),d(13,"a",6),h(14,"More Details"),l()()()(),D(15,"br")(16,"br"),d(17,"b"),h(18,"Region:"),l(),h(19),D(20,"br")(21,"br"),d(22,"b"),h(23,"Spanner Instance:"),l(),h(24),D(25,"br")(26,"br"),d(27,"b"),h(28,"Dialect:"),l(),h(29),l(),d(30,"div",7)(31,"button",8),h(32,"Cancel"),l(),d(33,"button",9),A("click",function(){return o.updateTargetDetails()}),h(34," Save "),l()()()),2&i&&(m(),f("formGroup",o.targetDetailsForm),m(18),De(" ",o.region," "),m(5),De(" ",o.spannerInstance," "),m(5),De(" ",o.dialect," "),m(4),f("disabled",!o.targetDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.container[_ngcontent-%COMP%]{white-space:nowrap;overflow:auto;text-overflow:ellipsis}"]})}return t})();function jue(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",10),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.display,"")}}function zue(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),De(" ",e.DisplayName," ")}}function Hue(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Select connection profile"),l(),d(4,"mat-select",12),y(5,zue,2,2,"mat-option",13),l()()()),2&t){const e=C();m(5),f("ngForOf",e.profileList)}}function Uue(t,n){1&t&&(d(0,"div")(1,"mat-form-field",15)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",16),l()())}function $ue(t,n){1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Replication slot"),l(),D(4,"input",17),l(),D(5,"br"),d(6,"mat-form-field",11)(7,"mat-label"),h(8,"Publication name"),l(),D(9,"input",18),l()())}function Gue(t,n){if(1&t&&(d(0,"li",24)(1,"span",25),h(2),l(),d(3,"span")(4,"mat-icon",26),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function que(t,n){if(1&t&&(d(0,"div",27)(1,"span",25),h(2,"Test connection failed"),l(),d(3,"mat-icon",28),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorMsg)}}function Wue(t,n){1&t&&(d(0,"mat-icon",29),h(1," check_circle "),l())}function Kue(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",19),h(5,"Learn More"),l()(),D(6,"br"),y(7,Gue,6,2,"li",20)(8,que,5,1,"div",21),D(9,"br"),d(10,"button",22),A("click",function(){return ie(e),ne(C(2).testConnection())}),h(11,"Test Connection"),l(),y(12,Wue,2,0,"mat-icon",23),l()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorMsg),m(2),f("disabled",!e.connectionProfileForm.valid),m(2),f("ngIf",e.testSuccess)}}function Zue(t,n){if(1&t&&(d(0,"div"),y(1,Kue,13,4,"div",6),l()),2&t){const e=C();m(),f("ngIf",e.isSource)}}let Yue=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.formBuilder=o,this.dialogRef=r,this.data=a,this.selectedProfile="",this.profileType="Source",this.profileList=[],this.ipList=[],this.selectedOption="new",this.profileOptions=[{value:"new",display:"Create a new connection profile"},{value:"existing",display:"Choose an existing connection profile"}],this.profileName="",this.errorMsg="",this.isSource=!1,this.sourceDatabaseType="",this.testSuccess=!1,this.testingSourceConnection=!1,this.isSource=a.IsSource,this.sourceDatabaseType=a.SourceDatabaseType,this.isSource||(this.profileType="Target"),this.connectionProfileForm=this.formBuilder.group({profileOption:["",ee.required],newProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingProfile:[],replicationSlot:[],publication:[]}),"postgres"==this.sourceDatabaseType&&this.isSource&&(this.connectionProfileForm.get("replicationSlot")?.addValidators([ee.required]),this.connectionProfileForm.controls.replicationSlot.updateValueAndValidity(),this.connectionProfileForm.get("publication")?.addValidators([ee.required]),this.connectionProfileForm.controls.publication.updateValueAndValidity()),this.getConnectionProfilesAndIps()}onItemChange(e){this.selectedOption=e,"new"==this.selectedOption?(this.connectionProfileForm.get("newProfile")?.setValidators([ee.required]),this.connectionProfileForm.controls.existingProfile.clearValidators(),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity()):(this.connectionProfileForm.controls.newProfile.clearValidators(),this.connectionProfileForm.get("existingProfile")?.addValidators([ee.required]),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity())}testConnection(){this.testingSourceConnection=!0,this.fetch.createConnectionProfile({Id:this.connectionProfileForm.value.newProfile,IsSource:this.isSource,ValidateOnly:!0}).subscribe({next:()=>{this.testingSourceConnection=!1,this.testSuccess=!0},error:o=>{this.testingSourceConnection=!1,this.testSuccess=!1,this.errorMsg=o.error}})}createConnectionProfile(){let e=this.connectionProfileForm.value;this.isSource&&(localStorage.setItem(yt.ReplicationSlot,e.replicationSlot),localStorage.setItem(yt.Publication,e.publication)),"new"===this.selectedOption?this.fetch.createConnectionProfile({Id:e.newProfile,IsSource:this.isSource,ValidateOnly:!1}).subscribe({next:()=>{this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.newProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.newProfile)),this.dialogRef.close()},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.dialogRef.close()}}):(this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.existingProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.existingProfile)),this.dialogRef.close())}ngOnInit(){}getConnectionProfilesAndIps(){this.fetch.getConnectionProfiles(this.isSource).subscribe({next:e=>{this.profileList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.isSource&&this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(ir),_(xr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-connection-profile-form"]],decls:19,vars:9,consts:[["mat-dialog-content",""],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h3","header-title"],[1,"radio-button-container"],["formControlName","profileOption",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value","change"],["appearance","outline"],["formControlName","existingProfile","required","true","ng-value","selectedProfile",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter.",1,"new-connection-profile-input"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newProfile","required","true"],["matInput","","placeholder","Replication slot","type","text","formControlName","replicationSlot","required","true"],["matInput","","placeholder","Publication name","type","text","formControlName","publication","required","true"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists"],["class","connection-form-container",4,"ngFor","ngForOf"],["class","failure",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"span",2),h(3),l(),D(4,"br"),d(5,"div",3)(6,"mat-radio-group",4),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(7,jue,2,2,"mat-radio-button",5),l()(),D(8,"br"),y(9,Hue,6,1,"div",6)(10,Uue,5,0,"div",6),D(11,"br"),y(12,$ue,10,0,"div",6)(13,Zue,2,1,"div",6),d(14,"div",7)(15,"button",8),h(16,"Cancel"),l(),d(17,"button",9),A("click",function(){return o.createConnectionProfile()}),h(18," Save "),l()()()()),2&i&&(m(),f("formGroup",o.connectionProfileForm),m(2),De("",o.profileType," Connection Profile"),m(3),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.profileOptions),m(2),f("ngIf","existing"===o.selectedOption),m(),f("ngIf","new"===o.selectedOption),m(2),f("ngIf",o.isSource&&"postgres"==o.sourceDatabaseType),m(),f("ngIf","new"===o.selectedOption),m(4),f("disabled",!o.connectionProfileForm.valid||!o.testSuccess&&"new"===o.selectedOption&&o.isSource))},dependencies:[rn,It,Yt,Mi,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,vn,cg,lg,KC],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}"]})}return t})();function Que(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",6),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.display,"")}}function Xue(t,n){1&t&&D(0,"mat-spinner",19),2&t&&f("diameter",25)}function Jue(t,n){1&t&&(d(0,"mat-icon",20),h(1,"check_circle"),l())}function ehe(t,n){1&t&&(d(0,"mat-icon",21),h(1,"cancel"),l())}function the(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function ihe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDump())}),d(2,"h4",8),h(3,"Load from database dump"),l(),h(4," Dump File "),d(5,"mat-form-field",9)(6,"mat-label"),h(7,"File path"),l(),d(8,"input",10),A("click",function(){return ie(e),ne(Ft(13).click())}),l(),y(9,Xue,1,1,"mat-spinner",11)(10,Jue,2,0,"mat-icon",12)(11,ehe,2,0,"mat-icon",13),l(),d(12,"input",14,15),A("change",function(o){return ie(e),ne(C().handleFileInput(o))}),l(),D(14,"br"),d(15,"button",16),h(16,"CANCEL"),l(),d(17,"button",17),h(18," SAVE "),l(),y(19,the,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.dumpFileForm),m(8),f("ngIf",e.uploadStart&&!e.uploadSuccess&&!e.uploadFail),m(),f("ngIf",e.uploadStart&&e.uploadSuccess),m(),f("ngIf",e.uploadStart&&e.uploadFail),m(6),f("disabled",!e.dumpFileForm.valid||!e.uploadSuccess),m(2),f("ngIf",""!=e.errorMsg)}}function nhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function ohe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDirectConnect())}),d(2,"h4",8),h(3,"Connect to Source Database"),l(),h(4," Connection Detail "),d(5,"mat-form-field",25)(6,"mat-label"),h(7,"Hostname"),l(),D(8,"input",26),l(),d(9,"mat-form-field",25)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",27),d(13,"mat-error"),h(14," Only numbers are allowed. "),l()(),D(15,"br"),d(16,"mat-form-field",25)(17,"mat-label"),h(18,"User name"),l(),D(19,"input",28),l(),d(20,"mat-form-field",25)(21,"mat-label"),h(22,"Password"),l(),D(23,"input",29),l(),D(24,"br"),d(25,"mat-form-field",25)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",30),l(),D(29,"br"),d(30,"button",16),h(31,"CANCEL"),l(),d(32,"button",17),h(33," SAVE "),l(),y(34,nhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.directConnectForm),m(31),f("disabled",!e.directConnectForm.valid),m(2),f("ngIf",""!=e.errorMsg)}}let rhe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.dataService=i,this.snack=o,this.dialogRef=r,this.data=a,this.inputOptions=[{value:Jn.DumpFile,display:"Connect via dump file"},{value:Jn.DirectConnect,display:"Connect via direct connection"}],this.selectedOption=Jn.DirectConnect,this.sourceDatabaseEngine="",this.errorMsg="",this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.dumpFileForm=new ti({filePath:new q("",[ee.required])}),this.directConnectForm=new ti({hostName:new q("",[ee.required]),port:new q("",[ee.required]),userName:new q("",[ee.required]),dbName:new q("",[ee.required]),password:new q("")}),this.sourceDatabaseEngine=a}ngOnInit(){}setSourceDBDetailsForDump(){const{filePath:e}=this.dumpFileForm.value;this.fetch.setSourceDBDetailsForDump({Driver:this.sourceDatabaseEngine,Path:e}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}setSourceDBDetailsForDirectConnect(){const{hostName:e,port:i,userName:o,password:r,dbName:a}=this.directConnectForm.value;this.fetch.setSourceDBDetailsForDirectConnect({dbEngine:this.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:c=>{this.errorMsg=c.error}})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.dumpFileForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.dataService.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}onItemChange(e){this.selectedOption=e,this.errorMsg=""}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(ir),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-details-form"]],decls:7,vars:4,consts:[[1,"radio-button-container"],[1,"radio-button-group",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[1,"connect-load-database-container"],[1,"form-container"],[4,"ngIf"],[3,"value","change"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["hidden","","type","file",3,"change"],["file",""],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["class","failure",4,"ngIf"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-radio-group",1),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(2,Que,2,2,"mat-radio-button",2),l()(),d(3,"div",3)(4,"div",4),y(5,ihe,20,6,"div",5)(6,ohe,35,3,"div",5),l()()),2&i&&(m(),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.inputOptions),m(3),f("ngIf","dumpFile"===o.selectedOption),m(),f("ngIf","directConnect"===o.selectedOption))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,nC,qi,_n,Ci,_i,Bi,wi,zi,zn,vn,Nl,cg,lg,sd]})}return t})();function ahe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",7),D(3,"mat-spinner",8),l(),d(4,"span",9),h(5,"Cleaning up resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}let she=(()=>{class t{constructor(e,i,o,r){this.data=e,this.fetch=i,this.snack=o,this.dialogRef=r,this.sourceAndTargetDetails={SpannerDatabaseName:"",SpannerDatabaseUrl:"",SourceDatabaseName:"",SourceDatabaseType:""},this.cleaningUp=!1,this.sourceAndTargetDetails={SourceDatabaseName:e.SourceDatabaseName,SourceDatabaseType:e.SourceDatabaseType,SpannerDatabaseName:e.SpannerDatabaseName,SpannerDatabaseUrl:e.SpannerDatabaseUrl}}ngOnInit(){}cleanUpJobs(){this.cleaningUp=!0,this.fetch.cleanUpStreamingJobs().subscribe({next:()=>{this.cleaningUp=!1,this.snack.openSnackBar("Dataflow and datastream jobs will be cleaned up","Close"),this.dialogRef.close()},error:e=>{this.cleaningUp=!1,this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(En),_(ir),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-end-migration"]],decls:46,vars:7,consts:[[1,"end-migration-dialog"],["target","_blank",3,"href"],["href","https://github.com/GoogleCloudPlatform/professional-services-data-validator","target","_blank"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close","",3,"disabled"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"End Migration"),l(),d(3,"div")(4,"b"),h(5,"Source database:"),l(),h(6),D(7,"br"),d(8,"b"),h(9,"Spanner database:"),l(),d(10,"a",1),h(11),l()(),D(12,"br"),d(13,"div")(14,"b"),h(15,"Please follow these steps to complete the migration:"),l(),d(16,"ol")(17,"li"),h(18,"Validate that the schema has been created on Spanner as per the configuration"),l(),d(19,"li"),h(20,"Validate the data has been copied from the Source to Spanner. You can use the "),d(21,"a",2),h(22,"Data Validation Tool"),l(),h(23," to help with this process."),l(),d(24,"li"),h(25,"Stop the writes to the source database. "),d(26,"b"),h(27,"This will initiate a period of downtime."),l()(),d(28,"li"),h(29,"Wait for any incremental writes on source since the validation started on Spanner to catch up with the source. This can be done by periodically checking the Spanner Database for the most recent updates on source."),l(),d(30,"li"),h(31,"Once the Source and Spanner are in sync, start the application with Spanner as the Database."),l(),d(32,"li"),h(33,"Perform smoke tests on your application to ensure it is working properly on Spanner"),l(),d(34,"li"),h(35,"Cutover the traffic to the application with Spanner as the Database. "),d(36,"b"),h(37,"This marks the end of the period of downtime"),l()(),d(38,"li"),h(39,"Cleanup the migration jobs by clicking the button below."),l()()(),y(40,ahe,7,1,"div",3),d(41,"div",4)(42,"button",5),h(43,"Cancel"),l(),d(44,"button",6),A("click",function(){return o.cleanUpJobs()}),h(45,"Clean Up"),l()()()),2&i&&(m(6),_l(" ",o.sourceAndTargetDetails.SourceDatabaseName,"(",o.sourceAndTargetDetails.SourceDatabaseType,") "),m(4),f("href",o.sourceAndTargetDetails.SpannerDatabaseUrl,qo),m(),Pe(o.sourceAndTargetDetails.SpannerDatabaseName),m(29),f("ngIf",o.cleaningUp),m(2),f("disabled",o.cleaningUp),m(2),f("disabled",o.cleaningUp))},dependencies:[It,Yt,zn,ko,sd]})}return t})(),che=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.disablePresetFlags=!0,this.tunableFlagsForm=new ti({vpcHostProjectId:new q(e.GCPProjectID,ee.required),network:new q(""),subnetwork:new q(""),maxWorkers:new q("50",[ee.required,ee.pattern("^[1-9][0-9]*$")]),numWorkers:new q("1",[ee.required,ee.pattern("^[1-9][0-9]*$")]),machineType:new q("n1-standard-2",[ee.required]),serviceAccountEmail:new q(""),additionalUserLabels:new q("",[ee.pattern('^{("([0-9a-zA-Z_-]+)":"([0-9a-zA-Z_-]+)",?)+}$')]),kmsKeyName:new q("",[ee.pattern("^projects\\/[^\\n\\r]+\\/locations\\/[^\\n\\r]+\\/keyRings\\/[^\\n\\r]+\\/cryptoKeys\\/[^\\n\\r]+$")])}),this.presetFlagsForm=new ti({dataflowProjectId:new q(e.GCPProjectID),dataflowLocation:new q(""),gcsTemplatePath:new q("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")])}),this.presetFlagsForm.disable()}ngOnInit(){}updateDataflowDetails(){let e=this.tunableFlagsForm.value;localStorage.setItem("network",e.network),localStorage.setItem("subnetwork",e.subnetwork),localStorage.setItem("vpcHostProjectId",e.vpcHostProjectId),localStorage.setItem("maxWorkers",e.maxWorkers),localStorage.setItem("numWorkers",e.numWorkers),localStorage.setItem("serviceAccountEmail",e.serviceAccountEmail),localStorage.setItem("machineType",e.machineType),localStorage.setItem("additionalUserLabels",e.additionalUserLabels),localStorage.setItem("kmsKeyName",e.kmsKeyName),localStorage.setItem("dataflowProjectId",this.presetFlagsForm.value.dataflowProjectId),localStorage.setItem("dataflowLocation",this.presetFlagsForm.value.dataflowLocation),localStorage.setItem("gcsTemplatePath",this.presetFlagsForm.value.gcsTemplatePath),localStorage.setItem("isDataflowConfigSet","true"),this.dialofRef.close()}enablePresetFlags(){this.disablePresetFlags=!1,this.presetFlagsForm.enable()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-dataflow-form"]],decls:109,vars:16,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["matTooltip","Edit to run Dataflow in a VPC",1,"mat-row"],["appearance","outline","matTooltip","Specify the host project Id of the VPC network. For shared VPC, this needs to be edited to the correct host project id.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Host ProjectID","type","text","formControlName","vpcHostProjectId"],["href","https://cloud.google.com/vpc/docs/create-modify-vpc-networks#create-auto-network","target","_blank"],["appearance","outline","matTooltip","Specify the network name for the VPC",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Network Name","type","text","formControlName","network"],["appearance","outline","matTooltip","Specify the subnetwork name for the VPC. Provide only the subnetwork name and NOT the full URL for subnetwork.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Subnetwork Name","type","text","formControlName","subnetwork"],["matTooltip","Set performance parameters of the Dataflow job(s)",1,"mat-row"],["appearance","outline","matTooltip","Set maximum workers for the dataflow job(s). Default value: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","50","type","text","formControlName","maxWorkers"],["appearance","outline","matTooltip","Set initial number of workers for the dataflow job(s). Default value: 1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","1","type","text","formControlName","numWorkers"],["appearance","outline","matTooltip","The machine type to use for the job. Default machine type: n1-standard-2.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Machine Type","type","text","formControlName","machineType"],["href","https://cloud.google.com/compute/docs/machine-resource","target","_blank"],["appearance","outline","matTooltip","Set the service account to run the dataflow job(s) as",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Service Account Email","type","text","formControlName","serviceAccountEmail"],["appearance","outline","matTooltip",'Additional user labels to be specified for the job. Enter a json of "key": "value" pairs. Example: {"name": "wrench", "mass": "1kg", "count": "3" }.',1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Additional User Labels","type","text","formControlName","additionalUserLabels"],["appearance","outline","matTooltip","Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings //cryptoKeys/. Omit this field to use Google Managed Encryption Keys.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","KMS Key Name","type","text","formControlName","kmsKeyName"],["mat-button","",1,"edit-button",3,"disabled","click"],["appearance","outline","matTooltip","Specify the project to run the dataflow job in.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Project Id","type","text","formControlName","dataflowProjectId"],["appearance","outline","matTooltip","Specify the region to run the dataflow job in. It is recommended to keep the region same as Spanner region for performance. Example: us-central1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Location","type","text","formControlName","dataflowLocation"],["appearance","outline","matTooltip","Cloud Storage path to the template spec. Use this to run launch dataflow with custom templates. Example: gs://my-bucket/path/to/template",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","GCS Template Path","type","text","formControlName","gcsTemplatePath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Dataflow (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Dataflow."),l(),d(6,"mat-expansion-panel")(7,"mat-expansion-panel-header",2)(8,"span"),h(9,"Networking"),l()(),d(10,"div")(11,"mat-form-field",3)(12,"mat-label"),h(13,"VPC Host ProjectID"),l(),D(14,"input",4),l(),D(15,"br"),d(16,"h5"),h(17," - Provide "),d(18,"b"),h(19,"ONLY"),l(),h(20," the VPC subnetwork if unsure about what VPC network to use. Dataflow chooses the network for you. "),D(21,"br"),h(22," - If you are using an "),d(23,"a",5),h(24,"auto mode network"),l(),h(25,", provide ONLY the network name and skip the VPC subnetwork. "),l(),d(26,"mat-form-field",6)(27,"mat-label"),h(28,"VPC Network"),l(),D(29,"input",7),l(),D(30,"br"),d(31,"mat-form-field",8)(32,"mat-label"),h(33,"VPC Subnetwork"),l(),D(34,"input",9),l()()(),D(35,"br"),d(36,"mat-expansion-panel")(37,"mat-expansion-panel-header",10)(38,"span"),h(39,"Performance"),l()(),d(40,"div")(41,"mat-form-field",11)(42,"mat-label"),h(43,"Max Workers"),l(),D(44,"input",12),l(),D(45,"br"),d(46,"mat-form-field",13)(47,"mat-label"),h(48,"Initial Number of Workers"),l(),D(49,"input",14),l(),D(50,"br"),d(51,"mat-form-field",15)(52,"mat-label"),h(53,"Machine Type"),l(),D(54,"input",16),l(),d(55,"h5"),h(56,"Find the list of all machine types "),d(57,"a",17),h(58,"here"),l(),h(59,"."),l()()(),D(60,"br"),d(61,"mat-form-field",18)(62,"mat-label"),h(63,"Service Account Email"),l(),D(64,"input",19),l(),D(65,"br"),d(66,"mat-form-field",20)(67,"mat-label"),h(68,"Additional User Labels"),l(),D(69,"input",21),l(),D(70,"br"),d(71,"mat-form-field",22)(72,"mat-label"),h(73,"KMS Key Name"),l(),D(74,"input",23),l()(),D(75,"hr"),d(76,"form",1)(77,"h2"),h(78," Preset Flags "),d(79,"span")(80,"button",24),A("click",function(){return o.enablePresetFlags()}),d(81,"mat-icon"),h(82,"edit"),l(),h(83," EDIT "),l()()(),d(84,"h5"),h(85,"These flags are set by SMT by default and "),d(86,"b"),h(87,"SHOULD NOT BE"),l(),h(88," modified unless running Dataflow in a non-standard configuration. To edit these parameters, click the edit button above."),l(),D(89,"br"),d(90,"mat-form-field",25)(91,"mat-label"),h(92,"Dataflow Project Id"),l(),D(93,"input",26),l(),D(94,"br"),d(95,"mat-form-field",27)(96,"mat-label"),h(97,"Dataflow Location"),l(),D(98,"input",28),l(),D(99,"br"),d(100,"mat-form-field",29)(101,"mat-label"),h(102,"GCS Template Path"),l(),D(103,"input",30),l()(),d(104,"div",31)(105,"button",32),h(106,"Cancel"),l(),d(107,"button",33),A("click",function(){return o.updateDataflowDetails()}),h(108," Save "),l()()()),2&i&&(m(),f("formGroup",o.tunableFlagsForm),m(10),f("matTooltipPosition","right"),m(15),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("formGroup",o.presetFlagsForm),m(4),f("disabled",!o.disablePresetFlags),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(7),f("disabled",o.tunableFlagsForm.invalid||o.presetFlagsForm.invalid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,DC,bP,zn,So,ko,vn],styles:[".edit-button[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function lhe(t,n){1&t&&(d(0,"mat-form-field",8)(1,"mat-label"),h(2,"Max Concurrent CDC Tasks"),l(),D(3,"input",9),l()),2&t&&f("matTooltipPosition","right")}let dhe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.isCdcTuningSupported=!0,this.datastreamForm=new ti({maxConcurrentBackfillTasks:new q("50",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)]),maxConcurrentCdcTasks:new q("5",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)])}),this.isCdcTuningSupported=e.sourceType!=Wr.Postgres.toLowerCase()}ngOnInit(){}updateDatastreamDetails(){let e=this.datastreamForm.value;localStorage.setItem("maxConcurrentBackfillTasks",e.maxConcurrentBackfillTasks),localStorage.setItem("maxConcurrentCdcTasks",e.maxConcurrentCdcTasks),localStorage.setItem("isDatastreamConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-datastream-form"]],decls:17,vars:4,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream backfill. Default: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent Backfill Tasks","type","text","formControlName","maxConcurrentBackfillTasks"],["class","full-width","appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent CDC Tasks","type","text","formControlName","maxConcurrentCdcTasks"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Datastream (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Datastream."),l(),d(6,"mat-form-field",2)(7,"mat-label"),h(8,"Max Concurrent Backfill Tasks"),l(),D(9,"input",3),l(),D(10,"br"),y(11,lhe,4,1,"mat-form-field",4),l(),d(12,"div",5)(13,"button",6),h(14,"Cancel"),l(),d(15,"button",7),A("click",function(){return o.updateDatastreamDetails()}),h(16," Save "),l()()()),2&i&&(m(),f("formGroup",o.datastreamForm),m(5),f("matTooltipPosition","right"),m(5),f("ngIf",o.isCdcTuningSupported),m(4),f("disabled",!o.datastreamForm.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function uhe(t,n){1&t&&(d(0,"mat-form-field",7)(1,"mat-label"),h(2,"TTL in days"),l(),D(3,"input",8),l()),2&t&&f("matTooltipPosition","right")}let hhe=(()=>{class t{constructor(e){this.dialofRef=e,this.ttlInDaysSet=!1,this.gcsForm=new ti({ttlInDays:new q("",[ee.required,ee.pattern("^([1-9][0-9]*$)"),ee.min(1),ee.max(1e8)])})}ngOnInit(){}updateGcsDetails(){this.ttlInDaysSet?(localStorage.setItem("ttlInDays",this.gcsForm.value.ttlInDays),localStorage.setItem("ttlInDaysSet","true")):(localStorage.setItem("ttlInDays","0"),localStorage.setItem("ttlInDaysSet","false")),localStorage.setItem("isGcsConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-gcs-form"]],decls:15,vars:5,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["color","primary","matTooltip","Set the TTL (in days) for GCS data written by Datastream. This sets the GCS lifecycle to delete the objects after specified number of days.",3,"matTooltipPosition","checked","change"],["class","ttl-input","appearance","outline","matTooltip","Set the TTL in days",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the TTL in days",1,"ttl-input",3,"matTooltipPosition"],["matInput","","type","text","formControlName","ttlInDays"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Google Cloud Storage (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune the Cloud Storage bucket used by Datastream to store Change Records, specified by the destination connection profile"),l(),d(6,"mat-checkbox",2),A("change",function(){return o.ttlInDaysSet=!o.ttlInDaysSet}),h(7," Set TTL for data "),l(),D(8,"br"),y(9,uhe,4,1,"mat-form-field",3),l(),d(10,"div",4)(11,"button",5),h(12,"Cancel"),l(),d(13,"button",6),A("click",function(){return o.updateGcsDetails()}),h(14," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsForm),m(5),f("matTooltipPosition","right")("checked",o.ttlInDaysSet),m(3),f("ngIf",o.ttlInDaysSet),m(4),f("disabled",o.ttlInDaysSet&&o.gcsForm.invalid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn,og],styles:[".ttl-input[_ngcontent-%COMP%]{padding-left:10%}"]})}return t})(),mhe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.gcloudCmd=e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-equivalent-gcloud-command"]],decls:12,vars:2,consts:[["mat-dialog-content",""],["matTooltip","This is the gcloud command to launch the dataflow job with the same parameters. Can be used to re-run a dataflow job manually in case of failure.",1,"configure"],[1,"left-text"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","color","primary",3,"cdkCopyToClipboard"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"Equivalent gcloud command line"),d(3,"mat-icon",1),h(4," info"),l()(),d(5,"span",2),h(6),l(),d(7,"div",3)(8,"button",4),h(9,"Close"),l(),d(10,"button",5),h(11,"Copy"),l()()()),2&i&&(m(6),Pe(o.gcloudCmd),m(4),f("cdkCopyToClipboard",o.gcloudCmd))},dependencies:[Yt,Mi,zn,So,ko,vn,KC]})}return t})();function phe(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function fhe(t,n){1&t&&(d(0,"div",15)(1,"mat-form-field",4)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",16,17),l()())}function ghe(t,n){1&t&&(d(0,"div",18)(1,"mat-form-field",19)(2,"mat-label"),h(3,"Hostname"),l(),D(4,"input",20),l(),d(5,"mat-form-field",19)(6,"mat-label"),h(7,"Port"),l(),D(8,"input",21),d(9,"mat-error"),h(10," Only numbers are allowed. "),l()(),D(11,"br"),d(12,"mat-form-field",19)(13,"mat-label"),h(14,"User name"),l(),D(15,"input",22),l(),d(16,"mat-form-field",19)(17,"mat-label"),h(18,"Password"),l(),D(19,"input",23),l(),D(20,"br"),d(21,"mat-form-field",19)(22,"mat-label"),h(23,"Database Name"),l(),D(24,"input",24),l(),D(25,"br"),d(26,"mat-form-field",19)(27,"mat-label"),h(28,"Shard ID"),l(),D(29,"input",25),l(),D(30,"br"),l())}function _he(t,n){if(1&t){const e=_e();d(0,"button",26),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",C().directConnectForm.invalid)}function bhe(t,n){if(1&t&&(d(0,"div",27)(1,"span",28),h(2),l(),d(3,"mat-icon",29),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let vhe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.dialogRef=r,this.data=a,this.errorMsg="",this.shardConnDetailsList=[],this.sourceConnDetails={dbConfigs:[],isRestoredSession:""},this.shardSessionDetails={sourceDatabaseEngine:"",isRestoredSession:""},this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.shardSessionDetails={sourceDatabaseEngine:a.sourceDatabaseEngine,isRestoredSession:a.isRestoredSession};let s={dbEngine:"",isSharded:!1,hostName:"",port:"",userName:"",password:"",dbName:""};localStorage.getItem(Wi.Type)==Jn.DirectConnect&&null!=localStorage.getItem(Wi.Config)&&(s=JSON.parse(localStorage.getItem(Wi.Config))),this.directConnectForm=new ti({inputType:new q("form",[ee.required]),textInput:new q(""),hostName:new q(s.hostName,[ee.required]),port:new q(s.port,[ee.required]),userName:new q(s.userName,[ee.required]),dbName:new q(s.dbName,[ee.required]),password:new q(s.password),shardId:new q("",[ee.required])})}ngOnInit(){this.initFromLocalStorage()}initFromLocalStorage(){}setValidators(e){if("text"==e){for(const i in this.directConnectForm.controls)this.directConnectForm.get(i)?.clearValidators(),this.directConnectForm.get(i)?.updateValueAndValidity();this.directConnectForm.get("textInput")?.setValidators([ee.required]),this.directConnectForm.controls.textInput.updateValueAndValidity()}else this.directConnectForm.get("hostName")?.setValidators([ee.required]),this.directConnectForm.controls.hostName.updateValueAndValidity(),this.directConnectForm.get("port")?.setValidators([ee.required]),this.directConnectForm.controls.port.updateValueAndValidity(),this.directConnectForm.get("userName")?.setValidators([ee.required]),this.directConnectForm.controls.userName.updateValueAndValidity(),this.directConnectForm.get("dbName")?.setValidators([ee.required]),this.directConnectForm.controls.dbName.updateValueAndValidity(),this.directConnectForm.get("password")?.setValidators([ee.required]),this.directConnectForm.controls.password.updateValueAndValidity(),this.directConnectForm.get("shardId")?.setValidators([ee.required]),this.directConnectForm.controls.shardId.updateValueAndValidity(),this.directConnectForm.controls.textInput.clearValidators(),this.directConnectForm.controls.textInput.updateValueAndValidity()}determineFormValidity(){return this.shardConnDetailsList.length>0||!!this.directConnectForm.valid}saveDetailsAndReset(){const{hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}),this.directConnectForm=new ti({inputType:new q("form",ee.required),textInput:new q(""),hostName:new q(""),port:new q(""),userName:new q(""),dbName:new q(""),password:new q(""),shardId:new q("")}),this.setValidators("form"),this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}finalizeConnDetails(){if("form"===this.directConnectForm.value.inputType){const{hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}),this.sourceConnDetails.dbConfigs=this.shardConnDetailsList}else{try{this.sourceConnDetails.dbConfigs=JSON.parse(this.directConnectForm.value.textInput)}catch{throw this.errorMsg="Unable to parse JSON",new Error(this.errorMsg)}this.sourceConnDetails.dbConfigs.forEach(i=>{i.dbEngine=this.shardSessionDetails.sourceDatabaseEngine})}this.sourceConnDetails.isRestoredSession=this.shardSessionDetails.isRestoredSession,this.fetch.setShardsSourceDBDetailsForBulk(this.sourceConnDetails).subscribe({next:()=>{localStorage.setItem(he.NumberOfShards,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.NumberOfInstances,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:i=>{this.errorMsg=i.error}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(ir),_(Hi),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-bulk-source-details-form"]],decls:23,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[1,"shard-bulk-form",3,"formGroup"],[1,"primary-header"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","textInput",4,"ngIf"],["class","formInput",4,"ngIf"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","failure",4,"ngIf"],[3,"value"],[1,"textInput"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],[1,"formInput"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"],["matInput","","name","shardId","type","text","formControlName","shardId"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h4",3),h(4,"Add Data Shard Connection Details"),l(),d(5,"b"),h(6,"Note: Please configure the schema source used for schema conversion if you want Spanner migration tool to migrate data from it as well."),l(),D(7,"br")(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Input Type"),l(),d(12,"mat-select",5,6),A("selectionChange",function(){ie(r);const s=Ft(13);return ne(o.setValidators(s.value))}),y(14,phe,2,2,"mat-option",7),l()(),y(15,fhe,6,0,"div",8)(16,ghe,31,0,"div",9),d(17,"button",10),h(18,"CANCEL"),l(),y(19,_he,2,1,"button",11),d(20,"button",12),A("click",function(){return o.finalizeConnDetails()}),h(21," FINISH "),l(),y(22,bhe,5,2,"div",13),l()()()}2&i&&(m(2),f("formGroup",o.directConnectForm),m(12),f("ngForOf",o.inputOptionsList),m(),f("ngIf","text"===o.directConnectForm.value.inputType),m(),f("ngIf","form"===o.directConnectForm.value.inputType),m(3),f("ngIf","form"===o.directConnectForm.value.inputType),m(),f("disabled",!o.determineFormValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,qi,VA,Xn,Tn,_n,Ci,_i,Bi,wi,zi,zn,vn]})}return t})();function yhe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function Che(t,n){if(1&t&&(d(0,"div",19)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),h(4,"Total Configured Shards"),l(),d(5,"mat-card-subtitle"),h(6),l(),d(7,"mat-card-subtitle"),h(8),l()()()()),2&t){const e=C();m(6),De("",e.physicalShards," physical instances configured."),m(2),De("",e.logicalShards," logical shards configured.")}}function whe(t,n){1&t&&(d(0,"div",20)(1,"mat-form-field",21)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",22,23),l()())}function xhe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function Dhe(t,n){if(1&t&&(d(0,"div",20)(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,xhe,6,2,"li",25),l()),2&t){const e=C();m(7),f("ngForOf",e.ipList)}}function She(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"JSON Verification failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(3),f("matTooltip",e.errorVerMsg)}}function khe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Validating Resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Mhe(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function The(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"button",35),A("click",function(){return ie(e),ne(C().verifyTextJson())}),h(2,"VERIFY JSON"),l()()}if(2&t){const e=C();m(),f("disabled",!e.migrationProfileForm.valid||e.verifyingJson)}}function Ihe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"source"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.display,"")}}function Ehe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),De(" ",e.DisplayName," ")}}function Ohe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select source connection profile"),l(),d(4,"mat-select",49),y(5,Ehe,2,2,"mat-option",8),l()(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Data Shard Id"),l(),D(9,"input",50),l()()),2&t){const e=C(2);m(5),f("ngForOf",e.sourceProfileList),m(4),f("value",e.inputValue)}}function Ahe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Host"),l(),D(4,"input",51),l(),d(5,"mat-form-field",5)(6,"mat-label"),h(7,"User"),l(),D(8,"input",52),l(),d(9,"mat-form-field",5)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",53),l(),d(13,"mat-form-field",5)(14,"mat-label"),h(15,"Password"),l(),D(16,"input",54),l(),d(17,"mat-form-field",55)(18,"mat-label"),h(19,"Connection profile name"),l(),D(20,"input",56),l(),d(21,"mat-form-field",5)(22,"mat-label"),h(23,"Data Shard Id"),l(),D(24,"input",50),l()()),2&t){const e=C(2);m(24),f("value",e.inputValue)}}function Phe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function Rhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"Test connection failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorSrcMsg)}}function Nhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Testing Connection"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Fhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating source connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Lhe(t,n){1&t&&(d(0,"mat-icon",60),h(1," check_circle "),l())}function Bhe(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function Vhe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Phe,6,2,"li",25)(8,Rhe,5,1,"div",11),D(9,"br"),y(10,Nhe,7,1,"div",12)(11,Fhe,7,1,"div",12)(12,Lhe,2,0,"mat-icon",57),d(13,"button",35),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!0))}),h(14,"TEST CONNECTION"),l(),y(15,Bhe,2,0,"mat-icon",58),d(16,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!1))}),h(17,"CREATE PROFILE"),l()()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorSrcMsg),m(2),f("ngIf",e.testingSourceConnection),m(),f("ngIf",e.creatingSourceConnection),m(),f("ngIf",e.testSuccess),m(),f("disabled",!e.determineConnectionProfileInfoValidity()||e.testingSourceConnection),m(2),f("ngIf",e.createSrcConnSuccess),m(),f("disabled",!e.testSuccess||e.creatingSourceConnection)}}function jhe(t,n){if(1&t){const e=_e();pe(0),d(1,"div",62)(2,"mat-form-field",5)(3,"mat-label"),h(4,"Logical Shard ID"),l(),D(5,"input",63),l(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Source Database Name"),l(),D(9,"input",64),l(),d(10,"mat-icon",65),A("click",function(){const r=ie(e).index;return ne(C(2).deleteRow(r))}),h(11," delete_forever"),l()(),fe()}if(2&t){const e=n.index;m(),f("formGroupName",e)}}function zhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"target"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.display,"")}}function Hhe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),De(" ",e.DisplayName," ")}}function Uhe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select target connection profile"),l(),d(4,"mat-select",66),y(5,Hhe,2,2,"mat-option",8),l()()()),2&t){const e=C(2);m(5),f("ngForOf",e.targetProfileList)}}function $he(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating target connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Ghe(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function qhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l()()),2&t){const e=C(3);m(2),Pe(e.errorTgtMsg)}}function Whe(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",55)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",67),l(),y(5,$he,7,1,"div",12)(6,Ghe,2,0,"mat-icon",58),d(7,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!1,!1))}),h(8,"CREATE PROFILE"),l(),y(9,qhe,3,1,"div",11),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.creatingTargetConnection),m(),f("ngIf",e.createTgtConnSuccess),m(),f("disabled",e.creatingTargetConnection),m(2),f("ngIf",""!=e.errorTgtMsg)}}function Khe(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"span",36),h(2,"Configure Source Profile"),l(),d(3,"div",37)(4,"mat-radio-group",38),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedSourceProfileOption,o)||(r.selectedSourceProfileOption=o),ne(o)}),y(5,Ihe,2,2,"mat-radio-button",39),l()(),D(6,"br"),y(7,Ohe,10,2,"div",12)(8,Ahe,25,1,"div",12),D(9,"br"),y(10,Vhe,18,8,"div",12),D(11,"hr"),d(12,"span",36),h(13,"Configure ShardId and Database Names"),l(),d(14,"mat-icon",40),h(15,"info"),l(),D(16,"br")(17,"br"),d(18,"span",41),pe(19,42),y(20,jhe,12,1,"ng-container",43),fe(),l(),d(21,"div",44)(22,"button",45),A("click",function(){return ie(e),ne(C().addRow())}),h(23,"ADD ROW"),l()(),D(24,"br")(25,"hr"),d(26,"span",36),h(27,"Configure Target Profile"),l(),d(28,"div",46)(29,"mat-radio-group",47),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedTargetProfileOption,o)||(r.selectedTargetProfileOption=o),ne(o)}),y(30,zhe,2,2,"mat-radio-button",39),l()(),D(31,"br"),y(32,Uhe,6,1,"div",12)(33,Whe,10,4,"div",12),D(34,"hr"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedSourceProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedSourceProfileOption),m(),f("ngIf","new"===e.selectedSourceProfileOption),m(2),f("ngIf","new"===e.selectedSourceProfileOption),m(10),f("ngForOf",e.shardMappingTable.controls),m(9),dn("ngModel",e.selectedTargetProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedTargetProfileOption),m(),f("ngIf","new"===e.selectedTargetProfileOption)}}function Zhe(t,n){if(1&t){const e=_e();d(0,"button",68),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",!C().determineFormValidity())}function Yhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let Qhe=(()=>{class t{constructor(e,i,o,r,a,s){this.fetch=e,this.snack=i,this.dataService=o,this.formBuilder=r,this.dialogRef=a,this.data=s,this.selectedProfile="",this.profileType="",this.sourceProfileList=[],this.targetProfileList=[],this.definedSrcConnProfileList=[],this.definedTgtConnProfileList=[],this.shardIdToDBMappingTable=[],this.dataShardIdList=[],this.ipList=[],this.selectedSourceProfileOption="existing",this.selectedTargetProfileOption="existing",this.profileOptions=[{value:"existing",display:"Choose an existing connection profile"},{value:"new",display:"Create a new connection profile"}],this.profileName="",this.errorMsg="",this.errorSrcMsg="",this.errorTgtMsg="",this.errorVerMsg="",this.sourceDatabaseType="",this.inputValue="",this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.physicalShards=0,this.logicalShards=0,this.testingSourceConnection=!1,this.creatingSourceConnection=!1,this.creatingTargetConnection=!1,this.verifyingJson=!1,this.prefix="smt-datashard",this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.region=s.Region,this.sourceDatabaseType=s.SourceDatabaseType,localStorage.getItem(Wi.Type)==Jn.DirectConnect&&(this.schemaSourceConfig=JSON.parse(localStorage.getItem(Wi.Config)));let u=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[""],sourceProfileOption:["new",ee.required],targetProfileOption:["new",ee.required],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[this.schemaSourceConfig?.hostName],user:[this.schemaSourceConfig?.userName],port:[this.schemaSourceConfig?.port],password:[this.schemaSourceConfig?.password],dataShardId:[this.inputValue,ee.required],shardMappingTable:this.formBuilder.array([u])}),this.migrationProfile={configType:"dataflow",shardConfigurationDataflow:{schemaSource:{host:this.schemaSourceConfig?.hostName,user:this.schemaSourceConfig?.userName,password:this.schemaSourceConfig?.password,port:this.schemaSourceConfig?.port,dbName:this.schemaSourceConfig?.dbName},dataShards:[]}}}ngOnInit(){this.getConnectionProfiles(!0),this.getConnectionProfiles(!1),this.getDatastreamIPs(),this.initFromLocalStorage()}initFromLocalStorage(){}get shardMappingTable(){return this.migrationProfileForm.controls.shardMappingTable}addRow(){let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.shardMappingTable.push(e)}deleteRow(e){this.shardMappingTable.removeAt(e)}getDatastreamIPs(){this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}getConnectionProfiles(e){this.fetch.getConnectionProfiles(e).subscribe({next:i=>{e?this.sourceProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName)):this.targetProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName))},error:i=>{this.snack.openSnackBar(i.error,"Close")}})}onItemChange(e,i){this.profileType=i,"source"===this.profileType?(this.selectedSourceProfileOption=e,"new"==this.selectedSourceProfileOption?(this.migrationProfileForm.get("newSourceProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingSourceProfile.clearValidators(),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.get("host")?.setValidators([ee.required]),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.get("user")?.setValidators([ee.required]),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.get("port")?.setValidators([ee.required]),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.get("password")?.setValidators([ee.required]),this.migrationProfileForm.controls.password.updateValueAndValidity()):(this.migrationProfileForm.controls.newSourceProfile.clearValidators(),this.migrationProfileForm.get("existingSourceProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.host.clearValidators(),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.controls.user.clearValidators(),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.controls.port.clearValidators(),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.controls.password.clearValidators(),this.migrationProfileForm.controls.password.updateValueAndValidity())):(this.selectedTargetProfileOption=e,"new"==this.selectedTargetProfileOption?(this.migrationProfileForm.get("newTargetProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingTargetProfile.clearValidators(),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()):(this.migrationProfileForm.controls.newTargetProfile.clearValidators(),this.migrationProfileForm.get("existingTargetProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()))}setValidators(e){if("text"===e){for(const o in this.migrationProfileForm.controls)this.migrationProfileForm.controls[o].clearValidators(),this.migrationProfileForm.controls[o].updateValueAndValidity();this.migrationProfileForm.get("shardMappingTable").controls.forEach(o=>{const r=o,a=r.get("logicalShardId"),s=r.get("dbName");a?.clearValidators(),a?.updateValueAndValidity(),s?.clearValidators(),s?.updateValueAndValidity()}),this.migrationProfileForm.controls.textInput.setValidators([ee.required]),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}else this.onItemChange("new","source"),this.onItemChange("new","target"),this.migrationProfileForm.controls.textInput.clearValidators(),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}saveDetailsAndReset(){this.handleConnConfigsFromForm();let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[],sourceProfileOption:[this.selectedSourceProfileOption],targetProfileOption:[this.selectedTargetProfileOption],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[],user:[],port:[],password:[],dataShardId:[this.inputValue],shardMappingTable:this.formBuilder.array([e])}),this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}randomString(e){for(var o="",r=0;r{localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(he.NumberOfShards,this.determineTotalLogicalShardsConfigured().toString()),localStorage.setItem(he.NumberOfInstances,this.migrationProfile.shardConfigurationDataflow.dataShards.length.toString()),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}determineTotalLogicalShardsConfigured(){let e=0;return this.migrationProfile.shardConfigurationDataflow.dataShards.forEach(i=>{e+=i.databases.length}),e}handleConnConfigsFromForm(){let e=this.migrationProfileForm.value;this.dataShardIdList.push(e.dataShardId),this.definedSrcConnProfileList.push("new"===this.selectedSourceProfileOption?{name:e.newSourceProfile,location:this.region}:{name:e.existingSourceProfile,location:this.region}),this.definedTgtConnProfileList.push("new"===this.selectedTargetProfileOption?{name:e.newTargetProfile,location:this.region}:{name:e.existingTargetProfile,location:this.region});let i=[];for(let o of this.shardMappingTable.controls)if(o instanceof ti){const r=o.value;i.push({dbName:r.dbName,databaseId:r.logicalShardId,refDataShardId:e.dataShardId})}this.shardIdToDBMappingTable.push(i),this.physicalShards++,this.logicalShards=this.logicalShards+i.length}determineFormValidity(){return!(!this.migrationProfileForm.valid||"new"===this.selectedSourceProfileOption&&!this.createSrcConnSuccess||"new"===this.selectedTargetProfileOption&&!this.createTgtConnSuccess||"text"===this.migrationProfileForm.value.inputType!==this.verifyJson)}determineFinishValidity(){return this.definedSrcConnProfileList.length>0||this.determineFormValidity()}determineConnectionProfileInfoValidity(){let e=this.migrationProfileForm.value;return null!=e.host&&null!=e.port&&null!=e.user&&null!=e.password&&null!=e.newSourceProfile}verifyTextJson(){this.verifyingJson=!0;let i,e=this.migrationProfileForm.value;try{i=JSON.parse(e.textInput)}catch(o){return o instanceof SyntaxError?(this.errorVerMsg=o.message,this.verifyJson=!1,void(this.verifyingJson=!1)):(this.errorVerMsg=`Unexpected error parsing json ${o}`,this.verifyJson=!1,void(this.verifyingJson=!1))}this.fetch.verifyJsonConfiguration(i).subscribe({next:()=>{this.verifyJson=!0,this.verifyingJson=!1},error:o=>{this.verifyJson=!1,this.verifyingJson=!1,this.errorVerMsg=o.message}})}createOrTestConnection(e,i){i?this.testingSourceConnection=!0:e?this.creatingSourceConnection=!0:this.creatingTargetConnection=!0;let r,o=this.migrationProfileForm.value;r=e?{Id:o.newSourceProfile,IsSource:!0,ValidateOnly:i,Host:o.host,Port:o.port,User:o.user,Password:o.password}:{Id:o.newTargetProfile,IsSource:!1,ValidateOnly:i},this.fetch.createConnectionProfile(r).subscribe({next:()=>{i?(this.testingSourceConnection=!1,this.testSuccess=!0):e?(this.createSrcConnSuccess=!0,this.errorSrcMsg="",this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!0,this.errorTgtMsg="",this.creatingTargetConnection=!1)},error:a=>{i?(this.testingSourceConnection=!1,this.testSuccess=!1,this.errorSrcMsg=a.error):e?(this.createSrcConnSuccess=!1,this.errorSrcMsg=a.error,this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!1,this.errorTgtMsg=a.error,this.creatingTargetConnection=!1)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(ir),_(Hi),_(xr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-dataflow-migration-details-form"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:31,vars:13,consts:[["mat-dialog-content","",1,"connect-load-database-container"],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h2","header-title"],[1,"top"],[1,"top-1"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","top-2",4,"ngIf"],["class","textInput",4,"ngIf"],["class","failure",4,"ngIf"],[4,"ngIf"],["class","success","matTooltip","JSON Verification successful","matTooltipPosition","above",4,"ngIf"],[1,"last-btns"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],[1,"top-2"],[1,"textInput"],["appearance","outline",1,"json-input"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists","target","_blank"],["class","connection-form-container",4,"ngFor","ngForOf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"],["matTooltip","JSON Verification successful","matTooltipPosition","above",1,"success"],["mat-raised-button","","type","button","color","primary",3,"disabled","click"],[1,"mat-h4","header-title"],[1,"source-radio-button-container"],["formControlName","sourceProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],["class","radio-button",3,"value","change",4,"ngFor","ngForOf"],["matTooltip","Logical Shard ID value will be used to populate the migration_shard_id column added as part of sharded database migration",1,"configure"],[1,"border"],["formArrayName","shardMappingTable"],[4,"ngFor","ngForOf"],[1,"table-buttons"],["mat-raised-button","","color","primary","type","button",3,"click"],[1,"target-radio-button-container"],["formControlName","targetProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],[1,"radio-button",3,"value","change"],["formControlName","existingSourceProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","type","text","formControlName","dataShardId","required","true","readonly","",3,"value"],["matInput","","placeholder","Host","type","text","formControlName","host","required","true"],["matInput","","placeholder","User","type","text","formControlName","user","required","true"],["matInput","","placeholder","Port","type","text","formControlName","port","required","true"],["matInput","","placeholder","Password","type","password","formControlName","password","required","true"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter."],["matInput","","placeholder","Connection profile name","type","text","formControlName","newSourceProfile","required","true"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],["class","success","matTooltip","Profile creation successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","type","button","color","warn",3,"disabled","click"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"],["matTooltip","Profile creation successful","matTooltipPosition","above",1,"success"],[1,"shard-mapping-form-row",3,"formGroupName"],["matInput","","formControlName","logicalShardId","placeholder","Enter Logical ShardID"],["matInput","","formControlName","dbName","placeholder","Enter Database Name"],[1,"delete-btn",3,"click"],["formControlName","existingTargetProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newTargetProfile","required","true"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"form",1)(2,"span",2),h(3,"Datastream Details"),l(),D(4,"br"),d(5,"b"),h(6,"Note: Please configure the database used for schema conversion, if you want Spanner migration tool to migrate data from it as well."),l(),d(7,"div",3),h(8,"` "),d(9,"div",4)(10,"mat-form-field",5)(11,"mat-label"),h(12,"Input Type"),l(),d(13,"mat-select",6,7),A("selectionChange",function(){ie(r);const s=Ft(14);return ne(o.setValidators(s.value))}),y(15,yhe,2,2,"mat-option",8),l()()(),y(16,Che,9,2,"div",9),l(),y(17,whe,6,0,"div",10)(18,Dhe,8,1,"div",10)(19,She,5,1,"div",11)(20,khe,7,1,"div",12)(21,Mhe,2,0,"mat-icon",13)(22,The,3,1,"div",10)(23,Khe,35,10,"div",10),d(24,"div",14)(25,"button",15),h(26,"CANCEL"),l(),y(27,Zhe,2,1,"button",16),d(28,"button",17),A("click",function(){return o.finalizeConnDetails()}),h(29," FINISH "),l(),y(30,Yhe,5,2,"div",11),l()()()}2&i&&(m(),f("formGroup",o.migrationProfileForm),m(14),f("ngForOf",o.inputOptionsList),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf",!o.verifyJson&&""!=o.errorVerMsg),m(),f("ngIf",o.verifyingJson),m(),f("ngIf",o.verifyJson),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(4),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("disabled",!o.determineFinishValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Gu,_O,O0,E0,Di,xi,qi,VA,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ju,eh,zn,So,vn,cg,lg,KC,sd],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}.shard-mapping-form-row[_ngcontent-%COMP%]{width:80%;margin-left:auto;margin-right:auto}.table-header[_ngcontent-%COMP%]{width:80%;margin:auto auto 10px;text-align:right;display:flex;align-items:center;justify-content:space-between}form[_ngcontent-%COMP%], .table-body[_ngcontent-%COMP%]{flex:auto;overflow-y:auto}.table-buttons[_ngcontent-%COMP%]{margin-left:70%}.radio-button-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin:15px 0;align-items:flex-start}.radio-button[_ngcontent-%COMP%]{margin:5px}.json-input[_ngcontent-%COMP%]{width:100%}.top[_ngcontent-%COMP%]{border:3px solid #fff;padding:20px}.top-1[_ngcontent-%COMP%]{width:60%;float:left}.top-2[_ngcontent-%COMP%]{width:40%;float:right;flex:auto}.last-btns[_ngcontent-%COMP%]{padding:20px;width:100%;float:left}"]})}return t})(),Xhe=(()=>{class t{constructor(e,i){this.formBuilder=e,this.dialogRef=i,this.gcsMetadataDetailsForm=this.formBuilder.group({gcsName:["",[ee.required,ee.pattern("^(?!.$)(?!..$)(?!.*[\r\n])[^\r\n]{1,1024}$")]],gcsRootPath:[""]}),this.gcsMetadataDetailsForm.setValue({gcsName:localStorage.getItem(yt.GcsMetadataName)||"",gcsRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""})}ngOnInit(){}updateGcsPathMetadataDetails(){let e=this.gcsMetadataDetailsForm.value;localStorage.setItem(yt.GcsMetadataName,e.gcsName||""),localStorage.setItem(yt.GcsMetadataRootPath,e.gcsRootPath||""),localStorage.setItem(he.IsGcsMetadataPathSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-gcs-metadata-details-form"]],decls:21,vars:2,consts:[["mat-dialog-content",""],[1,"gcs-metadata-detail-form",3,"formGroup"],["matTooltip","Specify existing or new GCS path to store metadata for migration",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","GCS Bucket Name","type","text","formControlName","gcsName","ng-value","TargetDetails.GcsMetadataName"],["matInput","","placeholder","Path Prefix","type","text","formControlName","gcsRootPath","ng-value","TargetDetails.GcsMetadataRootPath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"GCS Metadata Storage"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"GCS Bucket Name"),l(),D(9,"input",4),l(),D(10,"br"),d(11,"mat-form-field",3)(12,"mat-label"),h(13,"Path Prefix"),l(),D(14,"input",5),l(),D(15,"br"),l(),d(16,"div",6)(17,"button",7),h(18,"Cancel"),l(),d(19,"button",8),A("click",function(){return o.updateGcsPathMetadataDetails()}),h(20," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsMetadataDetailsForm),m(18),f("disabled",!o.gcsMetadataDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function Jhe(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions"),l())}function eme(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions (per shard)"),l())}function tme(t,n){1&t&&(d(0,"th",38),h(1,"Title"),l())}function ime(t,n){if(1&t&&(d(0,"td",39)(1,"b"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.title)}}function nme(t,n){1&t&&(d(0,"th",38),h(1,"Source"),l())}function ome(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.source)}}function rme(t,n){1&t&&(d(0,"th",38),h(1,"Destination"),l())}function ame(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.target)}}function sme(t,n){1&t&&D(0,"tr",40)}function cme(t,n){1&t&&D(0,"tr",41)}function lme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),De(" ",e," ")}}function dme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.name," ")}}function ume(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Migration Type:"),l(),d(4,"mat-select",21),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedMigrationType,o)||(r.selectedMigrationType=o),ne(o)}),A("selectionChange",function(){return ie(e),ne(C().refreshPrerequisites())}),y(5,dme,2,2,"mat-option",22),l()(),d(6,"mat-icon",23),h(7,"info"),l(),D(8,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedMigrationType),m(),f("ngForOf",e.migrationTypes),m(),f("matTooltip",e.migrationTypesHelpText.get(e.selectedMigrationType))}}function hme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),De(" ",e.displayName," ")}}function mme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Skip Foreign Key Creation:"),l(),d(4,"mat-select",43),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.isForeignKeySkipped,o)||(r.isForeignKeySkipped=o),ne(o)}),y(5,hme,2,2,"mat-option",22),l()()()}if(2&t){const e=C();m(4),dn("ngModel",e.isForeignKeySkipped),m(),f("ngForOf",e.skipForeignKeyResponseList)}}function pme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the application default credentials deployed on this machine have permissions to write to Spanner."),l()()())}function fme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the source is "),d(6,"a",45),h(7,"configured"),l(),h(8," for Datastream change data capture."),l()(),d(9,"p",26)(10,"span",27),h(11,"2"),l(),d(12,"span"),h(13,"Please ensure that Dataflow "),d(14,"a",46),h(15,"permissions"),l(),h(16," and "),d(17,"a",47),h(18,"networking"),l(),h(19," are correctly setup."),l()()())}function gme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function _me(t,n){if(1&t){const e=_e();d(0,"div")(1,"h3"),h(2,"Source database details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source database details"),l(),d(8,"span")(9,"button",29),A("click",function(){return ie(e),ne(C().openSourceDetailsForm())}),h(10," Configure "),d(11,"mat-icon",30),h(12,"edit"),l(),y(13,gme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(9),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function bme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function vme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-card-title"),h(2,"Source databases details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source Connection details "),d(8,"mat-icon",50),h(9," info"),l()(),d(10,"span")(11,"button",29),A("click",function(){return ie(e),ne(C().openShardedBulkSourceDetailsForm())}),h(12," Configure "),d(13,"mat-icon",30),h(14,"edit"),l(),y(15,bme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(11),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function yme(t,n){1&t&&(d(0,"mat-icon",51),h(1," check_circle "),l())}function Cme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function wme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Configure Datastream "),d(5,"mat-icon",52),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openMigrationProfileForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Cme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function xme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Dme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Setup source connection profile "),d(5,"mat-icon",55),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!0))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,xme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Sme(t,n){1&t&&(d(0,"mat-icon",58),h(1," check_circle "),l())}function kme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"3"),l(),d(3,"span"),h(4,"Setup target connection profile "),d(5,"mat-icon",56),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!1))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Sme,2,0,"mat-icon",57),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isTargetConnectionProfileSet)}}function Mme(t,n){1&t&&(d(0,"span",27),h(1,"3"),l())}function Tme(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function Ime(t,n){1&t&&(d(0,"mat-icon",62),h(1," check_circle "),l())}function Eme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Mme,2,0,"span",59)(2,Tme,2,0,"span",59),d(3,"span"),h(4,"Tune Datastream (Optional) "),d(5,"mat-icon",60),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneDatastreamForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Ime,2,0,"mat-icon",61),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDatastreamConfigurationSet)}}function Ome(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function Ame(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Pme(t,n){1&t&&(d(0,"mat-icon",65),h(1," check_circle "),l())}function Rme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Ome,2,0,"span",59)(2,Ame,2,0,"span",59),d(3,"span"),h(4,"Tune Cloud Storage (Optional) "),d(5,"mat-icon",63),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneGcsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Pme,2,0,"mat-icon",64),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsConfigurationSet)}}function Nme(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Fme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Lme(t,n){1&t&&(d(0,"mat-icon",68),h(1," check_circle "),l())}function Bme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Nme,2,0,"span",59)(2,Fme,2,0,"span",59),d(3,"span"),h(4,"Tune Dataflow (Optional) "),d(5,"mat-icon",66),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openDataflowForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Lme,2,0,"mat-icon",67),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDataflowConfigurationSet)}}function Vme(t,n){1&t&&(d(0,"span",27),h(1,"2"),l())}function jme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function zme(t,n){1&t&&(d(0,"mat-icon",71),h(1," check_circle "),l())}function Hme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Vme,2,0,"span",59)(2,jme,2,0,"span",59),d(3,"span"),h(4,"GCS Metadata Path (Optional) "),d(5,"mat-icon",69),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openGcsMetadataDetailsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,zme,2,0,"mat-icon",70),l()()()}if(2&t){const e=C();m(),f("ngIf","Schema"===e.selectedMigrationMode),m(),f("ngIf","Schema"!==e.selectedMigrationMode),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsMetadataDetailSet)}}function Ume(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function $me(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Ume,2,0,"span",59),d(2,"span"),h(3,"Download configuration as JSON "),d(4,"mat-icon",72),h(5,"info "),l()(),d(6,"span")(7,"button",29),A("click",function(){return ie(e),ne(C().downloadConfiguration())}),h(8," Download "),d(9,"mat-icon",73),h(10," download"),l()()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(6),f("disabled",!e.isTargetDetailSet||!e.isTargetConnectionProfileSet)}}function Gme(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Source Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Source Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Number of physical instances configured: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Number of logical shards configured: "),l(),h(24),l()()()()),2&t){const e=C();m(10),Pe(e.sourceDatabaseType),m(7),De(" ",e.numberOfInstances,""),m(7),De(" ",e.numberOfShards,"")}}function qme(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Target Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Spanner Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Spanner Dialect: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Region: "),l(),h(24),l()(),d(25,"p",26)(26,"span",27),h(27,"4"),l(),d(28,"span")(29,"b"),h(30,"Spanner Instance: "),l(),h(31),l()()()()),2&t){const e=C();m(10),Pe(e.targetDetails.TargetDB),m(7),Pe(e.dialect),m(7),Pe(e.region),m(7),Cv("",e.instance," (Nodes: ",e.nodeCount,", Processing Units: ",e.processingUnits,")")}}function Wme(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.schemaMigrationProgress),m(2),De(" ",e.schemaProgressMessage,"")}}function Kme(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.dataMigrationProgress),m(2),De(" ",e.dataProgressMessage,"")}}function Zme(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.foreignKeyUpdateProgress),m(2),De(" ",e.foreignKeyProgressMessage,"")}}function Yme(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",76),D(3,"mat-spinner",77),l(),d(4,"span",78),h(5,"Generating Resources"),l(),D(6,"br"),h(7," Note: Spanner migration tool is creating datastream and dataflow resources. Please look at the terminal logs to check the progress of resource creation. All created resources will be displayed here once they are generated. "),l()),2&t&&(m(3),f("diameter",20))}function Qme(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Aggregated Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.AggMonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.AggMonitoringDashboardName)}}function Xme(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.MonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.MonitoringDashboardName)}}function Jme(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"4"),l(),d(4,"span")(5,"b"),h(6,"Datastream job: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataStreamJobUrl,qo),m(),Pe(e.resourcesGenerated.DataStreamJobName)}}function epe(t,n){if(1&t){const e=_e();d(0,"span")(1,"p",26)(2,"span",27),h(3,"5"),l(),d(4,"span")(5,"b"),h(6,"Dataflow job: "),l(),d(7,"a",79),h(8),l()(),d(9,"span")(10,"button",80),A("click",function(){ie(e);const o=C(2);return ne(o.openGcloudPopup(o.resourcesGenerated.DataflowGcloudCmd))}),d(11,"mat-icon",81),h(12," code"),l()()()()()}if(2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataflowJobUrl,qo),m(),Pe(e.resourcesGenerated.DataflowJobName)}}function tpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"6"),l(),d(4,"span")(5,"b"),h(6,"Pubsub topic: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubTopicUrl,qo),m(),Pe(e.resourcesGenerated.PubsubTopicName)}}function ipe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"7"),l(),d(4,"span")(5,"b"),h(6,"Pubsub subscription: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubSubscriptionUrl,qo),m(),Pe(e.resourcesGenerated.PubsubSubscriptionName)}}function npe(t,n){1&t&&(d(0,"th",38),h(1," Shard ID "),l())}function ope(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.DataShardId," ")}}function rpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Type "),l())}function ape(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit,i=C(3);m(),De(" ",i.resourceTypeToDisplayTest.get(e.ResourceType)," ")}}function spe(t,n){1&t&&(d(0,"th",38),h(1," Resource Name "),l())}function cpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.ResourceName," ")}}function lpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Link "),l())}function dpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",80),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).openGcloudPopup(o.GcloudCmd))}),d(2,"mat-icon",81),h(3," code"),l()()()}}function upe(t,n){if(1&t&&(d(0,"td",39)(1,"a",79),h(2),l(),y(3,dpe,4,0,"span",10),l()),2&t){const e=n.$implicit;m(),f("href",e.ResourceUrl,qo),m(),Pe(e.ResourceName),m(),f("ngIf","dataflow"==e.ResourceType)}}function hpe(t,n){1&t&&D(0,"tr",40)}function mpe(t,n){1&t&&D(0,"tr",41)}function ppe(t,n){if(1&t&&(d(0,"span")(1,"h2"),h(2,"Shard Level Resources: "),l(),d(3,"div",82)(4,"table",83),pe(5,84),y(6,npe,2,0,"th",14)(7,ope,2,1,"td",15),fe(),pe(8,85),y(9,rpe,2,0,"th",14)(10,ape,2,1,"td",15),fe(),pe(11,86),y(12,spe,2,0,"th",14)(13,cpe,2,1,"td",15),fe(),pe(14,87),y(15,lpe,2,0,"th",14)(16,upe,4,3,"td",15),fe(),y(17,hpe,1,0,"tr",18)(18,mpe,1,0,"tr",19),l()()()),2&t){const e=C(2);m(4),f("dataSource",e.displayedResourcesDataSource),m(13),f("matHeaderRowDef",e.generatedResourcesColumns),m(),f("matRowDefColumns",e.generatedResourcesColumns)}}function fpe(t,n){if(1&t&&(d(0,"div")(1,"h2"),h(2),l(),h(3,' Note: This resources displayed below can be looked upto at a later point in time in the "spannermigrationtool_metadata" database in your spanner instance using the migration jobId listed above. '),d(4,"div",24)(5,"mat-card")(6,"mat-card-title"),h(7,"Job Level Resources:"),l(),d(8,"p",26)(9,"span",27),h(10,"1"),l(),d(11,"span")(12,"b"),h(13,"Spanner Database: "),l(),d(14,"a",79),h(15),l()()(),d(16,"p",26)(17,"span",27),h(18,"2"),l(),d(19,"span")(20,"b"),h(21,"GCS bucket: "),l(),d(22,"a",79),h(23),l()()(),y(24,Qme,9,2,"span",10)(25,Xme,9,2,"span",10)(26,Jme,9,2,"span",10)(27,epe,13,2,"span",10)(28,tpe,9,2,"span",10)(29,ipe,9,2,"span",10),l()(),y(30,ppe,19,3,"span",10),l()),2&t){const e=C();m(2),De("Migration resources generated for migration jobId: ",e.resourcesGenerated.MigrationJobId,""),m(12),f("href",e.resourcesGenerated.DatabaseUrl,qo),m(),Pe(e.resourcesGenerated.DatabaseName),m(7),f("href",e.resourcesGenerated.BucketUrl,qo),m(),Pe(e.resourcesGenerated.BucketName),m(),f("ngIf",""!==e.resourcesGenerated.AggMonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.MonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataStreamJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataflowJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubTopicName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubSubscriptionName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf","lowdt"===e.selectedMigrationType&&e.isSharded)}}function gpe(t,n){1&t&&(d(0,"div")(1,"b"),h(2,"Note: "),l(),h(3,"Spanner migration tool has orchestrated the migration successfully. For minimal downtime migrations, it is safe to close Spanner migration tool now without affecting the progress of the migration. The resources listed on this page can be viewed in the \"SMT_JOB\" table in the 'spannermigrationtool_metadata' database created in your Spanner instance after you close the Spanner migration tool. "),l())}function _pe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",88),A("click",function(){return ie(e),ne(C().migrate())}),h(2,"Migrate"),l()()}if(2&t){const e=C();m(),f("disabled",!(e.isTargetDetailSet&&"lowdt"===e.selectedMigrationType&&e.isSourceConnectionProfileSet&&e.isTargetConnectionProfileSet||e.isTargetDetailSet&&"bulk"===e.selectedMigrationType)||e.isMigrationInProgress)}}function bpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",89),A("click",function(){return ie(e),ne(C().endMigration())}),h(2,"End Migration"),l()()}}const vpe=()=>[5,10,20],ype=[{path:"",component:Xoe},{path:"source",component:kre,children:[{path:"",redirectTo:"/direct-connection",pathMatch:"full"},{path:"direct-connection",component:coe},{path:"load-dump",component:ure},{path:"load-session",component:gre}]},{path:"workspace",component:Bue},{path:"instruction",component:AN},{path:"prepare-migration",component:(()=>{class t{constructor(e,i,o,r,a){this.dialog=e,this.fetch=i,this.snack=o,this.data=r,this.sidenav=a,this.displayedColumns=["Title","Source","Destination"],this.dataSource=[],this.migrationModes=[],this.migrationTypes=[],this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isSourceDetailsSet=!1,this.isTargetDetailSet=!1,this.isForeignKeySkipped=!1,this.isMigrationDetailSet=!1,this.isStreamingSupported=!1,this.isGcsMetadataDetailSet=!1,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.hasForeignKeyUpdateStarted=!1,this.selectedMigrationMode=Kr.schemaAndData,this.connectionType=Jn.DirectConnect,this.selectedMigrationType=Hn.lowDowntimeMigration,this.isMigrationInProgress=!1,this.isLowDtMigrationRunning=!1,this.isResourceGenerated=!1,this.generatingResources=!1,this.errorMessage="",this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.foreignKeyProgressMessage="Foreign key update in progress...",this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.foreignKeyUpdateProgress=0,this.sourceDatabaseName="",this.sourceDatabaseType="",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.generatedResourcesColumns=["shardId","resourceType","resourceName","resourceUrl"],this.displayedResources=[],this.displayedResourcesDataSource=new uP(this.displayedResources),this.region="",this.instance="",this.dialect="",this.isSharded=!1,this.numberOfShards="0",this.numberOfInstances="0",this.nodeCount=0,this.processingUnits=0,this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""}},this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath")},this.spannerConfig={GCPProjectID:"",SpannerInstanceID:"",IsMetadataDbCreated:!1,IsConfigValid:!1},this.skipForeignKeyResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.migrationModesHelpText=new Map([["Schema","Migrates only the schema of the source database to the configured Spanner instance."],["Data","Migrates the data from the source database to the configured Spanner database. The configured database should already contain the schema."],["Schema And Data","Migrates both the schema and the data from the source database to Spanner."]]),this.migrationTypesHelpText=new Map([["bulk","Use the POC migration option when you want to migrate a sample of your data (<100GB) to do a Proof of Concept. It uses this machine's resources to copy data from the source database to Spanner"],["lowdt","Uses change data capture via Datastream to setup a continuous data replication pipeline from source to Spanner, using Dataflow jobs to perform the actual data migration."]]),this.resourceTypeToDisplayTest=new Map([["gcs","Cloud Storage Bucket"],["pubsub_sub","Pub/Sub subscription"],["pubsub_topic","Pub/Sub topic"],["datastream","Datastream Stream"],["dataflow","Dataflow Job"],["monitoring","Monitoring Dashboard"]])}refreshMigrationMode(){this.selectedMigrationMode!==Kr.schemaOnly&&this.isStreamingSupported&&this.connectionType!==Jn.DumpFile?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}])}refreshPrerequisites(){this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isTargetDetailSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isGcsMetadataDetailSet=!1,this.refreshMigrationMode()}ngOnInit(){this.initializeFromLocalStorage(),this.data.config.subscribe(e=>{this.spannerConfig=e}),this.convObj=this.data.conv.subscribe(e=>{this.conv=e}),localStorage.setItem("vpcHostProjectId",this.spannerConfig.GCPProjectID),this.fetch.getSourceDestinationSummary().subscribe({next:e=>{this.connectionType=e.ConnectionType,this.dataSource=[{title:"Database Type",source:e.DatabaseType,target:"Spanner"},{title:"Number of tables",source:e.SourceTableCount,target:e.SpannerTableCount},{title:"Number of indexes",source:e.SourceIndexCount,target:e.SpannerIndexCount}],this.sourceDatabaseType=e.DatabaseType,this.region=e.Region,this.instance=e.Instance,this.dialect=e.Dialect,this.isSharded=e.IsSharded,this.processingUnits=e.ProcessingUnits,this.nodeCount=e.NodeCount,(e.DatabaseType==Wr.MySQL.toLowerCase()||e.DatabaseType==Wr.Oracle.toLowerCase()||e.DatabaseType==Wr.Postgres.toLowerCase())&&(this.isStreamingSupported=!0),this.isStreamingSupported?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}]),this.sourceDatabaseName=e.SourceDatabaseName,this.migrationModes=[Kr.schemaOnly,Kr.dataOnly,Kr.schemaAndData]},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}initializeFromLocalStorage(){null!=localStorage.getItem(he.MigrationMode)&&(this.selectedMigrationMode=localStorage.getItem(he.MigrationMode)),null!=localStorage.getItem(he.MigrationType)&&(this.selectedMigrationType=localStorage.getItem(he.MigrationType)),null!=localStorage.getItem(he.isForeignKeySkipped)&&(this.isForeignKeySkipped="true"===localStorage.getItem(he.isForeignKeySkipped)),null!=localStorage.getItem(he.IsMigrationInProgress)&&(this.isMigrationInProgress="true"===localStorage.getItem(he.IsMigrationInProgress),this.subscribeMigrationProgress()),null!=localStorage.getItem(he.IsTargetDetailSet)&&(this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet)),null!=localStorage.getItem(he.IsSourceConnectionProfileSet)&&(this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet)),null!=localStorage.getItem("isDatastreamConfigSet")&&(this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet")),null!=localStorage.getItem("isGcsConfigSet")&&(this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet")),null!=localStorage.getItem("isDataflowConfigSet")&&(this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet")),null!=localStorage.getItem(he.IsGcsMetadataPathSet)&&(this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet)),null!=localStorage.getItem(he.IsTargetConnectionProfileSet)&&(this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet)),null!=localStorage.getItem(he.IsSourceDetailsSet)&&(this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)),null!=localStorage.getItem(he.IsMigrationDetailSet)&&(this.isMigrationDetailSet="true"===localStorage.getItem(he.IsMigrationDetailSet)),null!=localStorage.getItem(he.HasSchemaMigrationStarted)&&(this.hasSchemaMigrationStarted="true"===localStorage.getItem(he.HasSchemaMigrationStarted)),null!=localStorage.getItem(he.HasDataMigrationStarted)&&(this.hasDataMigrationStarted="true"===localStorage.getItem(he.HasDataMigrationStarted)),null!=localStorage.getItem(he.DataMigrationProgress)&&(this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))),null!=localStorage.getItem(he.SchemaMigrationProgress)&&(this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress))),null!=localStorage.getItem(he.DataProgressMessage)&&(this.dataProgressMessage=localStorage.getItem(he.DataProgressMessage)),null!=localStorage.getItem(he.SchemaProgressMessage)&&(this.schemaProgressMessage=localStorage.getItem(he.SchemaProgressMessage)),null!=localStorage.getItem(he.ForeignKeyProgressMessage)&&(this.foreignKeyProgressMessage=localStorage.getItem(he.ForeignKeyProgressMessage)),null!=localStorage.getItem(he.ForeignKeyUpdateProgress)&&(this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))),null!=localStorage.getItem(he.HasForeignKeyUpdateStarted)&&(this.hasForeignKeyUpdateStarted="true"===localStorage.getItem(he.HasForeignKeyUpdateStarted)),null!=localStorage.getItem(he.GeneratingResources)&&(this.generatingResources="true"===localStorage.getItem(he.GeneratingResources)),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))}clearLocalStorage(){localStorage.removeItem(he.MigrationMode),localStorage.removeItem(he.MigrationType),localStorage.removeItem(he.IsTargetDetailSet),localStorage.removeItem(he.IsGcsMetadataPathSet),localStorage.removeItem(he.isForeignKeySkipped),localStorage.removeItem(he.IsSourceConnectionProfileSet),localStorage.removeItem(he.IsTargetConnectionProfileSet),localStorage.removeItem(he.IsSourceDetailsSet),localStorage.removeItem("isDatastreamConfigSet"),localStorage.removeItem("maxConcurrentBackfillTasks"),localStorage.removeItem("maxConcurrentCdcTasks"),localStorage.removeItem("isGcsConfigSet"),localStorage.removeItem("ttlInDays"),localStorage.removeItem("ttlInDaysSet"),localStorage.removeItem("isDataflowConfigSet"),localStorage.removeItem("network"),localStorage.removeItem("subnetwork"),localStorage.removeItem("maxWorkers"),localStorage.removeItem("numWorkers"),localStorage.removeItem("serviceAccountEmail"),localStorage.removeItem("vpcHostProjectId"),localStorage.removeItem("machineType"),localStorage.removeItem("additionalUserLabels"),localStorage.removeItem("kmsKeyName"),localStorage.removeItem("dataflowProjectId"),localStorage.removeItem("dataflowLocation"),localStorage.removeItem("gcsTemplatePath"),localStorage.removeItem(he.IsMigrationInProgress),localStorage.removeItem(he.HasSchemaMigrationStarted),localStorage.removeItem(he.HasDataMigrationStarted),localStorage.removeItem(he.DataMigrationProgress),localStorage.removeItem(he.SchemaMigrationProgress),localStorage.removeItem(he.DataProgressMessage),localStorage.removeItem(he.SchemaProgressMessage),localStorage.removeItem(he.ForeignKeyProgressMessage),localStorage.removeItem(he.ForeignKeyUpdateProgress),localStorage.removeItem(he.HasForeignKeyUpdateStarted),localStorage.removeItem(he.GeneratingResources),localStorage.removeItem(he.NumberOfShards),localStorage.removeItem(he.NumberOfInstances)}openConnectionProfileForm(e){this.dialog.open(Yue,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{IsSource:e,SourceDatabaseType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openMigrationProfileForm(){this.dialog.open(Qhe,{width:"30vw",minWidth:"1200px",maxWidth:"1600px",data:{IsSource:!1,SourceDatabaseType:this.sourceDatabaseType,Region:this.region}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances)),this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcloudPopup(e){this.dialog.open(mhe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:e})}openTuneDatastreamForm(){this.dialog.open(dhe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:{sourceType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet"),this.isSharded&&this.fetch.setDatastreamDetailsForShardedMigrations(this.datastreamConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openTuneGcsForm(){this.dialog.open(hhe,{width:"4000px",minWidth:"400px",maxWidth:"500px"}).afterClosed().subscribe(()=>{this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet"),this.isSharded&&this.fetch.setGcsDetailsForShardedMigrations(this.gcsConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openDataflowForm(){this.dialog.open(che,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(()=>{this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath")},this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet"),this.isSharded&&this.fetch.setDataflowDetailsForShardedMigrations(this.dataflowConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}endMigration(){this.dialog.open(she,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{SpannerDatabaseName:this.resourcesGenerated.DatabaseName,SpannerDatabaseUrl:this.resourcesGenerated.DatabaseUrl,SourceDatabaseType:this.sourceDatabaseType,SourceDatabaseName:this.sourceDatabaseName}}).afterClosed().subscribe()}openSourceDetailsForm(){this.dialog.open(rhe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.sourceDatabaseType}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)})}openShardedBulkSourceDetailsForm(){this.dialog.open(vhe,{width:"30vw",minWidth:"400px",maxWidth:"550px",data:{sourceDatabaseEngine:this.sourceDatabaseType,isRestoredSession:this.connectionType}}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))})}openTargetDetailsForm(){this.dialog.open(Vue,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{Region:this.region,Instance:this.instance,Dialect:this.dialect}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet),(this.isSourceDetailsSet&&this.isTargetDetailSet&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode!==Kr.schemaOnly||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType!==Jn.SessionFile||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode===Kr.schemaOnly)&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcsMetadataDetailsForm(){this.dialog.open(Xhe,eoe).afterClosed().subscribe(()=>{this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet),this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}}})}migrate(){this.resetValues(),this.fetch.migrate({TargetDetails:this.targetDetails,DatastreamConfig:this.datastreamConfig,GcsConfig:this.gcsConfig,DataflowConfig:this.dataflowConfig,IsSharded:this.isSharded,MigrationType:this.selectedMigrationType,MigrationMode:this.selectedMigrationMode,skipForeignKeys:this.isForeignKeySkipped}).subscribe({next:()=>{this.selectedMigrationMode==Kr.dataOnly?this.selectedMigrationType==Hn.bulkMigration?(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())):(this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close")):(this.hasSchemaMigrationStarted=!0,localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString())),this.snack.openSnackBar("Migration started successfully","Close",5),this.subscribeMigrationProgress()},error:i=>{this.snack.openSnackBar(i.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.clearLocalStorage()}})}subscribeMigrationProgress(){var e=!1;this.subscription=ON(5e3).subscribe(i=>{this.fetch.getProgress().subscribe({next:o=>{""==o.ErrorMessage?o.ProgressStatus==rd.SchemaMigrationComplete?(localStorage.setItem(he.SchemaMigrationProgress,"100"),this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress)),this.selectedMigrationMode==Kr.schemaOnly?this.markMigrationComplete():this.selectedMigrationType==Hn.lowDowntimeMigration?(this.markSchemaMigrationComplete(),this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),e||(this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close"),e=!0)):(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()))):o.ProgressStatus==rd.DataMigrationComplete?(this.selectedMigrationType!=Hn.lowDowntimeMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.markMigrationComplete()):o.ProgressStatus==rd.DataWriteInProgress?(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.DataMigrationProgress,o.Progress.toString()),this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))):o.ProgressStatus==rd.ForeignKeyUpdateComplete?this.markMigrationComplete():o.ProgressStatus==rd.ForeignKeyUpdateInProgress&&(this.markSchemaMigrationComplete(),this.selectedMigrationType==Hn.bulkMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.markForeignKeyUpdateInitiation(),this.dataMigrationProgress=100,localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,o.Progress.toString()),this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress)),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.fetchGeneratedResources()):(this.errorMessage=o.ErrorMessage,this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.snack.openSnackBarWithoutTimeout(this.errorMessage,"Close"),this.schemaProgressMessage="Schema migration cancelled!",this.dataProgressMessage="Data migration cancelled!",this.foreignKeyProgressMessage="Foreign key update cancelled!",this.generatingResources=!1,this.isLowDtMigrationRunning=!1,this.clearLocalStorage())},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.clearLocalStorage()}})})}markForeignKeyUpdateInitiation(){this.dataMigrationProgress=100,this.dataProgressMessage="Data migration completed successfully!",localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),this.hasForeignKeyUpdateStarted=!0,this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))}markSchemaMigrationComplete(){this.schemaMigrationProgress=100,this.schemaProgressMessage="Schema migration completed successfully!",localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage)}downloadConfiguration(){this.fetch.getSourceProfile().subscribe({next:e=>{this.configuredMigrationProfile=e;var i=document.createElement("a");let o=JSON.stringify(this.configuredMigrationProfile,null,"\t").replace(/9223372036854776000/g,"9223372036854775807");i.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),i.download=localStorage.getItem(yt.TargetDB)+"-"+this.configuredMigrationProfile.configType+"-shardConfig.cfg",i.click()},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}fetchGeneratedResources(){this.fetch.getGeneratedResources().subscribe({next:e=>{this.isResourceGenerated=!0,this.resourcesGenerated=e,this.resourcesGenerated.ShardToShardResourcesMap=new Map(Object.entries(this.resourcesGenerated.ShardToShardResourcesMap)),this.prepareGeneratedResourcesTableData(this.resourcesGenerated)},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.selectedMigrationType===Hn.lowDowntimeMigration&&(this.isLowDtMigrationRunning=!0)}markMigrationComplete(){this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.dataProgressMessage="Data migration completed successfully!",this.schemaProgressMessage="Schema migration completed successfully!",this.schemaMigrationProgress=100,this.dataMigrationProgress=100,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key updated successfully!",this.fetchGeneratedResources(),this.clearLocalStorage(),this.refreshPrerequisites()}resetValues(){this.isMigrationInProgress=!this.isMigrationInProgress,this.hasSchemaMigrationStarted=!1,this.hasDataMigrationStarted=!1,this.generatingResources=!1,this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.isResourceGenerated=!1,this.hasForeignKeyUpdateStarted=!1,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key update in progress...",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.initializeLocalStorage()}initializeLocalStorage(){localStorage.setItem(he.MigrationMode,this.selectedMigrationMode),localStorage.setItem(he.MigrationType,this.selectedMigrationType),localStorage.setItem(he.isForeignKeySkipped,this.isForeignKeySkipped.toString()),localStorage.setItem(he.IsMigrationInProgress,this.isMigrationInProgress.toString()),localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString()),localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.HasForeignKeyUpdateStarted,this.hasForeignKeyUpdateStarted.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,this.foreignKeyUpdateProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage),localStorage.setItem(he.DataProgressMessage,this.dataProgressMessage),localStorage.setItem(he.ForeignKeyProgressMessage,this.foreignKeyProgressMessage),localStorage.setItem(he.IsTargetDetailSet,this.isTargetDetailSet.toString()),localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),localStorage.setItem(he.IsGcsMetadataPathSet,this.isGcsMetadataDetailSet.toString())}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}prepareGeneratedResourcesTableData(e){for(let[i,o]of e.ShardToShardResourcesMap){for(let r of o)r.DataShardId=i;this.displayedResources.push(...o)}this.displayedResourcesDataSource=new uP(this.displayedResources),this.displayedResourcesDataSource.paginator=this.paginator}ngOnDestroy(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(zr),_(En),_(ir),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-prepare-migration"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:100,vars:41,consts:[[1,"header"],[1,"breadcrumb"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],["mat-button","",1,"breadcrumb_prepare_migration",3,"routerLink"],[1,"header_action"],["mat-button","",3,"click"],["mat-button","","color","primary",3,"click"],[1,"body"],[1,"definition-container"],[4,"ngIf"],[1,"summary"],["id","summary-table","mat-table","",3,"dataSource"],["matColumnDef","Title"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Source"],["matColumnDef","Destination"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["appearance","outline"],[3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"configure",3,"matTooltip"],[1,"mat-card-class"],["class","static-prereqs",4,"ngIf"],[1,"point"],[1,"bullet"],["matTooltip","Configure the database in Spanner you want this migration to write to (up till now only GCP Project ID and Spanner Instance name have been configured.)",1,"configure"],["mat-button","","color","primary",3,"disabled","click"],["iconPositionEnd",""],["iconPositionEnd","","class","success","matTooltip","Target details configured","matTooltipPosition","above",4,"ngIf"],["class","point",4,"ngIf"],["class","mat-card-class",4,"ngIf"],["class","progress_bar",4,"ngIf"],[1,"mat-elevation-z8",3,"hidden"],["showFirstLastButtons","","aria-label","Select page",3,"pageSizeOptions"],[1,"migrate"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""],[3,"value"],[3,"ngModel","ngModelChange"],[1,"static-prereqs"],["href","https://cloud.google.com/datastream/docs/sources","target","_blank"],["href","https://cloud.google.com/dataflow/docs/concepts/security-and-permissions","target","_blank"],["href","https://cloud.google.com/dataflow/docs/guides/routes-firewall","target","_blank"],["iconPositionEnd","","class","success","matTooltip","Source details configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source details configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the connection info of all source shards to connect to and migrate data from.",1,"configure"],["iconPositionEnd","","matTooltip","Target details configured","matTooltipPosition","above",1,"success"],["matTooltip","Datastream will be used to capture change events from the source database. Please ensure you have met the pre-requistes required for setting up Datastream in your GCP environment. ",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Source connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source connection profile configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the source connection profile to allow Datastream to read from your source database",1,"configure"],["matTooltip","Create a connection profile for datastream to write to a GCS bucket. Spanner migration tool will automatically create the bucket for you.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Target connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Target connection profile configured","matTooltipPosition","above",1,"success"],["class","bullet",4,"ngIf"],["matTooltip","Datastream will be used to stream CDC from source to GCS. This helps you configure the runtime environment for the Datastream job(s) e.g Parallel Backfill workers.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Datastream Tuned","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Datastream Tuned","matTooltipPosition","above",1,"success"],["matTooltip","Use this to tune the GCS bucket options where Datastream outputs to and Dataflow reads from.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",1,"success"],["matTooltip","Dataflow will be used to perform the actual migration of data from source to Spanner. This helps you configure the execution environment for Dataflow jobs e.g VPC.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Dataflow Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Dataflow Configured","matTooltipPosition","above",1,"success"],["matTooltip","Specify existing or new GCS path to store metadata for migration.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",1,"success"],["matTooltip","Download the configuration done above as JSON.",1,"configure"],["iconPositionEnd","","matTooltip","Download configured shards as JSON","matTooltipPosition","above"],[1,"progress_bar"],["mode","determinate",3,"value"],[1,"spinner"],[3,"diameter"],[1,"spinner-text"],["target","_blank",3,"href"],["mat-button","",1,"configure",3,"click"],["matTooltip","Equivalent gCloud command","matTooltipPosition","above"],[1,"mat-elevation-z8"],["id","resources-table","mat-table","",3,"dataSource"],["matColumnDef","shardId"],["matColumnDef","resourceType"],["matColumnDef","resourceName"],["matColumnDef","resourceUrl"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"a",2),h(3,"Select Source"),l(),d(4,"span"),h(5,">"),l(),d(6,"a",3),h(7),l(),d(8,"span"),h(9,">"),l(),d(10,"a",4)(11,"b"),h(12,"Prepare Migration"),l()()(),d(13,"div",5)(14,"button",6),A("click",function(){return o.openSaveSessionSidenav()}),h(15," SAVE SESSION "),l(),d(16,"button",7),A("click",function(){return o.downloadSession()}),h(17,"DOWNLOAD SESSION FILE"),l()()(),D(18,"br"),d(19,"div",8)(20,"div",9),y(21,Jhe,2,0,"h2",10)(22,eme,2,0,"h2",10),d(23,"div",11)(24,"table",12),pe(25,13),y(26,tme,2,0,"th",14)(27,ime,3,1,"td",15),fe(),pe(28,16),y(29,nme,2,0,"th",14)(30,ome,2,1,"td",15),fe(),pe(31,17),y(32,rme,2,0,"th",14)(33,ame,2,1,"td",15),fe(),y(34,sme,1,0,"tr",18)(35,cme,1,0,"tr",19),l()()(),D(36,"br"),d(37,"mat-form-field",20)(38,"mat-label"),h(39,"Migration Mode:"),l(),d(40,"mat-select",21),un("ngModelChange",function(a){return kn(o.selectedMigrationMode,a)||(o.selectedMigrationMode=a),a}),A("selectionChange",function(){return o.refreshPrerequisites()}),y(41,lme,2,2,"mat-option",22),l()(),d(42,"mat-icon",23),h(43,"info"),l(),D(44,"br"),y(45,ume,9,3,"div",10)(46,mme,6,2,"div",10),d(47,"div",24)(48,"mat-card")(49,"mat-card-title"),h(50,"Prerequisites"),l(),d(51,"mat-card-subtitle"),h(52,"Before we begin, please ensure you have done the following:"),l(),y(53,pme,6,0,"div",25)(54,fme,20,0,"div",25),l()(),d(55,"div",24)(56,"mat-card"),y(57,_me,14,2,"div",10)(58,vme,16,2,"div",10),d(59,"div")(60,"mat-card-title"),h(61,"Target details:"),l(),d(62,"p",26)(63,"span",27),h(64,"1"),l(),d(65,"span"),h(66,"Configure Spanner Database "),d(67,"mat-icon",28),h(68," info"),l()(),d(69,"span")(70,"button",29),A("click",function(){return o.openTargetDetailsForm()}),h(71," Configure "),d(72,"mat-icon",30),h(73,"edit"),l(),y(74,yme,2,0,"mat-icon",31),l()()(),y(75,wme,13,2,"p",32)(76,Dme,13,2,"p",32)(77,kme,13,2,"p",32)(78,Eme,13,4,"p",32)(79,Rme,13,4,"p",32)(80,Bme,13,4,"p",32)(81,Hme,13,4,"p",32)(82,$me,11,2,"p",32),l()()(),y(83,Gme,25,3,"div",33)(84,qme,32,6,"div",33)(85,Wme,5,2,"div",34)(86,Kme,5,2,"div",34)(87,Zme,5,2,"div",34)(88,Yme,8,1,"div",10),D(89,"br")(90,"br"),y(91,fpe,31,12,"div",10),d(92,"div",35),D(93,"mat-paginator",36),l(),D(94,"br")(95,"br"),y(96,gpe,4,0,"div",10),d(97,"div",37),y(98,_pe,3,1,"span",10)(99,bpe,3,0,"span",10),l()()),2&i&&(m(2),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(),De("Configure Schema (",o.dialect," Dialect)"),m(3),f("routerLink","/prepare-migration"),m(11),f("ngIf",!o.isSharded),m(),f("ngIf",o.isSharded),m(2),f("dataSource",o.dataSource),m(10),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(5),dn("ngModel",o.selectedMigrationMode),m(),f("ngForOf",o.migrationModes),m(),f("matTooltip",o.migrationModesHelpText.get(o.selectedMigrationMode)),m(3),f("ngIf","Schema"!=o.selectedMigrationMode),m(),f("ngIf",!("Schema"===o.selectedMigrationMode||"lowdt"===o.selectedMigrationType)),m(7),f("ngIf","bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(3),f("ngIf","sessionFile"===o.connectionType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf",o.isSharded&&"bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(12),f("disabled",o.isMigrationInProgress||o.isLowDtMigrationRunning),m(4),f("ngIf",o.isTargetDetailSet),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf",o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf",o.isTargetDetailSet),m(),f("ngIf",o.hasSchemaMigrationStarted),m(),f("ngIf",o.hasDataMigrationStarted),m(),f("ngIf",o.hasForeignKeyUpdateStarted),m(),f("ngIf",o.generatingResources),m(3),f("ngIf",o.isResourceGenerated),m(),f("hidden",!(o.isResourceGenerated&&"lowdt"===o.selectedMigrationType&&o.isSharded)),m(),f("pageSizeOptions",No(40,vpe)),m(3),f("ngIf",o.isResourceGenerated&&"lowdt"===o.selectedMigrationType),m(2),f("ngIf",!o.isLowDtMigrationRunning),m(),f("ngIf",o.isLowDtMigrationRunning))},dependencies:[rn,It,Gr,zE,Yt,Mi,Gu,O0,E0,vO,Di,xi,Xn,Tn,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,WC,vn,Nl,sd],styles:[".header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_workspace[_ngcontent-%COMP%]{color:#0000008f}.header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_prepare_migration[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.definition-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.definition-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}.body[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}#summary-table[_ngcontent-%COMP%]{min-width:30%;max-width:50%}#summary-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:10%}.configure[_ngcontent-%COMP%]{color:#1967d2}.migrate[_ngcontent-%COMP%]{margin-top:10px}#resources-table[_ngcontent-%COMP%]{width:100%}"]})}return t})()},{path:"**",redirectTo:"/",pathMatch:"full"}];let Cpe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[wN.forRoot(ype),wN]})}return t})(),wpe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.data=r,this.dialogRef=a,this.errMessage="",this.updateConfigForm=new ti({GCPProjectID:new q(r.GCPProjectID,[ee.required]),SpannerInstanceID:new q(r.SpannerInstanceID,[ee.required])}),a.disableClose=!0}updateSpannerConfig(){let e=this.updateConfigForm.value;this.fetch.setSpannerConfig({GCPProjectID:e.GCPProjectID,SpannerInstanceID:e.SpannerInstanceID}).subscribe({next:o=>{o.IsMetadataDbCreated&&this.snack.openSnackBar("Metadata database not found. A new database has been created to store session metadata.","Close",5),this.snack.openSnackBar(o.IsConfigValid?"Spanner Config updated successfully":"Invalid Spanner Configuration","Close",5),this.dialogRef.close({...o}),this.dataService.updateIsOffline(),this.dataService.updateConfig(o),this.dataService.getAllSessions()},error:o=>{this.snack.openSnackBar(o.message,"Close")}})}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(ir),_(Hi),_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-update-spanner-config-form"]],decls:20,vars:3,consts:[["mat-dialog-content",""],[1,"save-session-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","project id","type","text","formControlName","GCPProjectID","id","project-id"],["hintLabel","Min. 2 characters and Max. 64 characters","appearance","outline",1,"full-width"],["matInput","","placeholder","instance id","type","text","required","","minlength","2","maxlength","64","pattern","^[a-z]([-a-z0-9]*[a-z0-9])?","formControlName","SpannerInstanceID","id","instance-id"],["align","end"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["id","save-button","mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Connect to Spanner"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Project ID"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Instance ID"),l(),D(12,"input",5),d(13,"mat-hint",6),h(14),l()()()(),d(15,"div",7)(16,"button",8),h(17,"CANCEL"),l(),d(18,"button",9),A("click",function(){return o.updateSpannerConfig()}),h(19," SAVE "),l()()),2&i&&(m(),f("formGroup",o.updateConfigForm),m(13),De("",(null==o.updateConfigForm.value.SpannerInstanceID?null:o.updateConfigForm.value.SpannerInstanceID.length)||0,"/64"),m(4),f("disabled",!o.updateConfigForm.valid))},dependencies:[Yt,Di,xi,sc,qi,_n,Ci,_i,Bi,Do,X0,J0,eC,wi,zi,zn,So,ko],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"]})}return t})();function xpe(t,n){1&t&&(d(0,"mat-icon",11),h(1," warning "),l())}function Dpe(t,n){1&t&&(d(0,"mat-icon",12),h(1," check_circle "),l())}function Spe(t,n){1&t&&(d(0,"mat-icon",13),h(1," warning "),l())}function kpe(t,n){1&t&&(d(0,"div")(1,"span",null,14),h(3,"Spanner database is not configured, click on edit button to configure "),l()())}function Mpe(t,n){if(1&t&&(d(0,"div")(1,"span",15)(2,"b"),h(3,"Project Id: "),l(),h(4),l(),d(5,"span",16)(6,"b"),h(7,"Spanner Instance Id: "),l(),h(8),l()()),2&t){const e=C();m(4),Pe(e.spannerConfig.GCPProjectID),m(4),Pe(e.spannerConfig.SpannerInstanceID)}}let Tpe=(()=>{class t{constructor(e,i,o,r,a){this.data=e,this.dialog=i,this.sidenav=o,this.clickEvent=r,this.loaderService=a,this.isOfflineStatus=!1,this.spannerConfig={GCPProjectID:"",SpannerInstanceID:""}}ngOnInit(){this.data.config.subscribe(e=>{this.spannerConfig=e}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}}),this.clickEvent.spannerConfig.subscribe(e=>{e&&this.openEditForm()})}openEditForm(){this.dialog.open(wpe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(i=>{i&&(this.spannerConfig=i)})}showWarning(){return!this.spannerConfig.GCPProjectID&&!this.spannerConfig.SpannerInstanceID}openInstructionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("instruction")}openUserGuide(){window.open("https://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/SpannerMigrationToolUIUserGuide.pdf","_blank")}stopLoading(){this.loaderService.stopLoader(),this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(zr),_(eo),_(nr),_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-header"]],decls:16,vars:6,consts:[["color","secondry",1,"header-container"],[1,"pointer",3,"routerLink","click"],[1,"menu-spacer"],[1,"right_container"],[1,"spanner_config"],["class","icon warning","matTooltip","Invalid spanner configuration. Working in offline mode",4,"ngIf"],["id","check-icon","class","icon success","matTooltip","Valid spanner configuration.",4,"ngIf"],["class","icon warning","matTooltip","Spanner configuration has not been set.",4,"ngIf"],[4,"ngIf"],["id","edit-icon","matTooltip","Edit Settings",1,"cursor-pointer",3,"click"],["mat-icon-button","","matTooltip","Instruction",1,"example-icon","favorite-icon",3,"click"],["matTooltip","Invalid spanner configuration. Working in offline mode",1,"icon","warning"],["id","check-icon","matTooltip","Valid spanner configuration.",1,"icon","success"],["matTooltip","Spanner configuration has not been set.",1,"icon","warning"],["name",""],[1,"pid"],[1,"iid"]],template:function(i,o){1&i&&(d(0,"mat-toolbar",0)(1,"span",1),A("click",function(){return o.stopLoading()}),h(2," Spanner migration tool"),l(),D(3,"span",2),d(4,"div",3)(5,"div",4),y(6,xpe,2,0,"mat-icon",5)(7,Dpe,2,0,"mat-icon",6)(8,Spe,2,0,"mat-icon",7)(9,kpe,4,0,"div",8)(10,Mpe,9,2,"div",8),d(11,"mat-icon",9),A("click",function(){return o.openEditForm()}),h(12,"edit"),l()(),d(13,"button",10),A("click",function(){return o.openUserGuide()}),d(14,"mat-icon"),h(15,"help"),l()()()()),2&i&&(m(),f("routerLink","/"),m(5),f("ngIf",o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",!o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",!o.showWarning()))},dependencies:[It,Gr,Aq,ba,Mi,vn],styles:[".header-container[_ngcontent-%COMP%]{padding:0 20px}.menu-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.right_container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%]{margin:0 15px 0 0;display:flex;align-items:center;border-radius:5px;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:2px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:300;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pid[_ngcontent-%COMP%]{margin-right:10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pointer[_ngcontent-%COMP%]{cursor:pointer}.cursor-pointer[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function Ipe(t,n){1&t&&(d(0,"div",1),D(1,"mat-progress-bar",2),l())}let Epe=(()=>{class t{constructor(e){this.loaderService=e,this.showProgress=!0}ngOnInit(){this.loaderService.isLoading.subscribe(e=>{this.showProgress=e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-loader"]],decls:1,vars:1,consts:[["class","progress-bar-wrapper",4,"ngIf"],[1,"progress-bar-wrapper"],["mode","indeterminate","value","40"]],template:function(i,o){1&i&&y(0,Ipe,2,0,"div",0),2&i&&f("ngIf",o.showProgress)},dependencies:[It,vO],styles:[".progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%]{height:2px}"]})}return t})();function Ope(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Ape(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Ppe(t,n){if(1&t){const e=_e();d(0,"button",20),A("click",function(){ie(e);const o=C().index;return ne(C().removeColumnForm(o))}),d(1,"mat-icon"),h(2,"remove"),l(),d(3,"span"),h(4,"REMOVE COLUMN"),l()()}}function Rpe(t,n){if(1&t){const e=_e();pe(0),d(1,"mat-card",13)(2,"div",14)(3,"mat-form-field",1)(4,"mat-label"),h(5,"Column Name"),l(),d(6,"mat-select",15),A("selectionChange",function(){return ie(e),ne(C().selectedColumnChange())}),y(7,Ape,2,2,"mat-option",3),l()(),d(8,"mat-form-field",1)(9,"mat-label"),h(10,"Sort"),l(),d(11,"mat-select",16)(12,"mat-option",17),h(13,"Ascending"),l(),d(14,"mat-option",18),h(15,"Descending"),l()()()(),y(16,Ppe,5,0,"button",19),l(),fe()}if(2&t){const e=n.index,i=C();m(2),f("formGroupName",e),m(5),f("ngForOf",i.addColumnsList[e]),m(9),f("ngIf",!i.viewRuleFlag)}}function Npe(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().addNewColumnForm())}),d(1,"mat-icon"),h(2,"add"),l(),d(3,"span"),h(4,"ADD COLUMN"),l()()}}function Fpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",22),A("click",function(){return ie(e),ne(C().addIndex())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addIndexForm.valid&&e.ruleNameValid&&e.ColsArray.controls.length>0))}}function Lpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",23),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2," DELETE RULE "),l()()}}let Bpe=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.tableNames=[],this.totalColumns=[],this.addColumnsList=[],this.commonColumns=[],this.viewRuleData={},this.viewRuleFlag=!1,this.conv={},this.ruleId="",this.addIndexForm=this.fb.group({tableName:["",ee.required],indexName:["",[ee.required,ee.pattern("^[A-Za-z][A-Za-z0-9_]{0,127}$")]],ColsArray:this.fb.array([])})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name)}}),this.sidenav.sidenavAddIndexTable.subscribe({next:e=>{this.addIndexForm.controls.tableName.setValue(e),""!==e&&this.selectedTableChange(e)}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.viewRuleFlag&&this.getRuleData(this.viewRuleData)})})}getRuleData(e){this.ruleId=e?.Id;let i=this.conv.SpSchema[e?.Data?.TableId]?.Name;this.addIndexForm.controls.tableName.setValue(i),this.addIndexForm.controls.indexName.setValue(e?.Data?.Name),this.selectedTableChange(i),this.setColArraysForViewRules(e?.Data?.TableId,e?.Data?.Keys),this.addIndexForm.disable()}setColArraysForViewRules(e,i){if(this.ColsArray.clear(),i)for(let o=0;oo.ColDefs[r].Name)}this.ColsArray.clear(),this.commonColumns=[],this.addColumnsList=[],this.updateCommonColumns()}addNewColumnForm(){let e=this.fb.group({columnName:["",ee.required],sort:["",ee.required]});this.ColsArray.push(e),this.updateCommonColumns(),this.addColumnsList.push([...this.commonColumns])}selectedColumnChange(){this.updateCommonColumns(),this.addColumnsList=this.addColumnsList.map((e,i)=>{const o=[...this.commonColumns];return""!==this.ColsArray.value[i].columnName&&o.push(this.ColsArray.value[i].columnName),o})}updateCommonColumns(){this.commonColumns=this.totalColumns.filter(e=>{let i=!0;return this.ColsArray.value.forEach(o=>{o.columnName===e&&(i=!1)}),i})}removeColumnForm(e){this.ColsArray.removeAt(e),this.addColumnsList=this.addColumnsList.filter((i,o)=>o!==e),this.selectedColumnChange()}addIndex(){let e=this.addIndexForm.value,i=[],o=this.conversion.getTableIdFromSpName(e.tableName,this.conv);i.push({Name:e.indexName,TableId:o,Unique:!1,Keys:e.ColsArray.map((r,a)=>({ColId:this.conversion.getColIdFromSpannerColName(r.columnName,o,this.conv),Desc:"true"===r.sort,Order:a+1})),Id:""}),this.applyRule(i[0]),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}applyRule(e){let o=this.conversion.getTableIdFromSpName(this.addIndexForm.value.tableName,this.conv);this.data.applyRule({Name:this.ruleName,Type:"add_index",ObjectType:"Table",AssociatedObjects:o,Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-index-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:7,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","formControlName","indexName",1,"input-field"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["align","end"],["formArrayName","ColsArray",1,"addcol-form"],[4,"ngFor","ngForOf"],["mat-button","","color","primary","class","add-column-btn","type","button",3,"click",4,"ngIf"],[4,"ngIf"],[3,"value"],[1,"column-form-card"],[3,"formGroupName"],["matSelect","","formControlName","columnName","required","true",1,"input-field",3,"selectionChange"],["formControlName","sort","required","true",1,"input-field"],["value","false"],["value","true"],["mat-button","","color","primary",3,"click",4,"ngIf"],["mat-button","","color","primary",3,"click"],["mat-button","","color","primary","type","button",1,"add-column-btn",3,"click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"disabled","click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For Table"),l(),d(4,"mat-select",2),A("selectionChange",function(a){return o.selectedTableChange(a.value)}),y(5,Ope,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"Index Name"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Max. 128 characters, and starts with a letter. "),d(13,"a",6),h(14,"More Details"),l()()(),d(15,"mat-hint",7),h(16),l()(),pe(17,8),y(18,Rpe,17,3,"ng-container",9)(19,Npe,5,0,"button",10),D(20,"br"),y(21,Fpe,3,1,"div",11)(22,Lpe,3,0,"div",11),fe(),l()),2&i&&(f("formGroup",o.addIndexForm),m(5),f("ngForOf",o.tableNames),m(11),De("",(null==o.addIndexForm.value.indexName?null:o.addIndexForm.value.indexName.length)||0,"/128"),m(2),f("ngForOf",o.ColsArray.controls),m(),f("ngIf",o.addColumnsList.length{class t{constructor(e,i,o,r,a){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.fetch=a,this.ruleNameValid=!1,this.ruleType="",this.ruleName="",this.resetRuleType=new Ne,this.conversionType={},this.sourceType=[],this.destinationType=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.pgSQLToStandardTypeTypemap=new Map,this.standardTypeToPGSQLTypemap=new Map,this.conv={},this.isPostgreSQLDialect=!1,this.addGlobalDataTypeForm=this.fb.group({objectType:["column",ee.required],table:["allTable",ee.required],column:["allColumn",ee.required],sourceType:["",ee.required],destinationType:["",ee.required]})}ngOnInit(){this.data.typeMap.subscribe({next:e=>{this.conversionType=e,this.sourceType=Object.keys(this.conversionType)}}),this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conversion.pgSQLToStandardTypeTypeMap.subscribe(e=>{this.pgSQLToStandardTypeTypemap=e}),this.conversion.standardTypeToPGSQLTypeMap.subscribe(e=>{this.standardTypeToPGSQLTypemap=e}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)})})}setViewRuleData(e){if(this.ruleId=e?.Id,this.addGlobalDataTypeForm.controls.sourceType.setValue(Object.keys(e?.Data)[0]),this.updateDestinationType(Object.keys(e?.Data)[0]),this.isPostgreSQLDialect){let i=this.standardTypeToPGSQLTypemap.get(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.controls.destinationType.setValue(void 0===i?Object.values(this.viewRuleData?.Data)[0]:i)}else this.addGlobalDataTypeForm.controls.destinationType.setValue(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.disable()}formSubmit(){const e=this.addGlobalDataTypeForm.value,i=e.sourceType,o={};if(this.isPostgreSQLDialect){let r=this.pgSQLToStandardTypeTypemap.get(e.destinationType);o[i]=void 0===r?e.destinationType:r}else o[i]=e.destinationType;this.applyRule(o),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}updateDestinationType(e){const i=this.conversionType[e],o=[];i?.forEach(r=>{o.push(r.DisplayT)}),this.destinationType=o}applyRule(e){this.data.applyRule({Name:this.ruleName,Type:"global_datatype_change",ObjectType:"Column",AssociatedObjects:"All Columns",Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(eo),_(pc),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-global-datatype-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleType:"ruleType",ruleName:"ruleName"},outputs:{resetRuleType:"resetRuleType"},decls:34,vars:5,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","objectType","required","true",1,"input-field"],["value","column"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","sourceType","required","true",1,"input-field",3,"selectionChange"],["sourceField",""],[3,"value",4,"ngFor","ngForOf"],["appearance","outline",4,"ngIf"],[4,"ngIf"],[3,"value"],["matSelect","","formControlName","destinationType","required","true",1,"input-field"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For object type"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"Column"),l()()(),d(7,"h3"),h(8,"When"),l(),d(9,"mat-form-field",1)(10,"mat-label"),h(11,"Table is"),l(),d(12,"mat-select",4)(13,"mat-option",5),h(14,"All tables"),l()()(),d(15,"mat-form-field",1)(16,"mat-label"),h(17,"and column is"),l(),d(18,"mat-select",6)(19,"mat-option",7),h(20,"All column"),l()()(),d(21,"h3"),h(22,"Convert from"),l(),d(23,"mat-form-field",1)(24,"mat-label"),h(25,"Source data type"),l(),d(26,"mat-select",8,9),A("selectionChange",function(){ie(r);const s=Ft(27);return ne(o.updateDestinationType(s.value))}),y(28,Vpe,2,2,"mat-option",10),l()(),d(29,"h3"),h(30,"Convert to"),l(),y(31,zpe,5,1,"mat-form-field",11)(32,Hpe,3,1,"div",12)(33,Upe,3,0,"div",12),l()}if(2&i){const r=Ft(27);f("formGroup",o.addGlobalDataTypeForm),m(28),f("ngForOf",o.sourceType),m(3),f("ngIf",r.selected),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag)}},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;padding:0}"]})}return t})();function Gpe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function qpe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.name)}}function Wpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",11),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.editColMaxLengthForm.valid&&e.ruleNameValid))}}function Kpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",12),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let Zpe=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.ruleId="",this.tableNames=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.conv={},this.spTypes=[],this.hintlabel="",this.editColMaxLengthForm=this.fb.group({tableName:["",ee.required],column:["allColumn",ee.required],spDataType:["",ee.required],maxColLength:["",[ee.required,ee.pattern("([1-9][0-9]*|MAX)")]]})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name),this.tableNames.push("All tables"),"postgresql"===this.conv.SpDialect?(this.spTypes=[{name:"VARCHAR",value:"STRING"}],this.hintlabel="Max "+In.StringMaxLength+" for VARCHAR"):(this.spTypes=[{name:"STRING",value:"STRING"},{name:"BYTES",value:"BYTES"}],this.hintlabel="Max "+In.StringMaxLength+" for STRING and "+In.ByteMaxLength+" for BYTES")}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{if(this.viewRuleData=i,this.viewRuleData){this.ruleId=this.viewRuleData?.Id;let o=this.viewRuleData?.AssociatedObjects;this.editColMaxLengthForm.controls.tableName.setValue(o),this.editColMaxLengthForm.controls.spDataType.setValue(this.viewRuleData?.Data?.spDataType),this.editColMaxLengthForm.controls.maxColLength.setValue(this.viewRuleData?.Data?.spColMaxLength),this.editColMaxLengthForm.disable()}})})}formSubmit(){const e=this.editColMaxLengthForm.value;(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&e.spColMaxLength>In.ByteMaxLength)&&(e.spColMaxLength=In.StorageMaxLength);const i={spDataType:e.spDataType,spColMaxLength:e.maxColLength};let r=this.conversion.getTableIdFromSpName(e.tableName,this.conv);""===r&&(r="All tables"),this.data.applyRule({Name:this.ruleName,Type:"edit_column_max_length",ObjectType:"Table",AssociatedObjects:r,Enabled:!0,Data:i,Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-column-max-length"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:6,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","spDataType","required","true",1,"input-field"],["appearance","outline",3,"hintLabel"],["matInput","","formControlName","maxColLength",1,"input-field"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2),y(5,Gpe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"and column is"),l(),d(9,"mat-select",4)(10,"mat-option",5),h(11,"All column"),l()()(),d(12,"mat-form-field",1)(13,"mat-label"),h(14,"and Spanner Type is"),l(),d(15,"mat-select",6),y(16,qpe,2,2,"mat-option",3),l()(),d(17,"mat-form-field",7)(18,"mat-label"),h(19,"Max column length"),l(),D(20,"input",8),l(),y(21,Wpe,3,1,"div",9)(22,Kpe,3,0,"div",9),l()),2&i&&(f("formGroup",o.editColMaxLengthForm),m(5),f("ngForOf",o.tableNames),m(11),f("ngForOf",o.spTypes),m(),f("hintLabel",o.hintlabel),m(4),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,Ci,_i,Bi,Do,wi,zi]})}return t})();function Ype(t,n){if(1&t&&(d(0,"mat-option",7),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.display)}}function Qpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",8),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addShardIdPrimaryKeyForm.valid&&e.ruleNameValid))}}function Xpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",9),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let Jpe=(()=>{class t{constructor(e,i,o){this.fb=e,this.data=i,this.sidenav=o,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.viewRuleFlag=!1,this.viewRuleData={},this.primaryKeyOrder=[{value:!0,display:"At the beginning"},{value:!1,display:"At the end"}],this.addShardIdPrimaryKeyForm=this.fb.group({table:["allTable",ee.required],primaryKeyOrder:["",ee.required]})}ngOnInit(){this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&(this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)}),this.addShardIdPrimaryKeyForm.disable())})}formSubmit(){this.data.applyRule({Name:this.ruleName,Type:"add_shard_id_primary_key",AssociatedObjects:"All Tables",Enabled:!0,Data:{AddedAtTheStart:this.addShardIdPrimaryKeyForm.value.primaryKeyOrder},Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}setViewRuleData(e){this.ruleId=e?.Id,this.addShardIdPrimaryKeyForm.controls.primaryKeyOrder.setValue(e?.Data?.AddedAtTheStart)}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-shard-id-primary-key"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:14,vars:4,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","primaryKeyOrder","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"All tables"),l()()(),d(7,"mat-form-field",1)(8,"mat-label"),h(9,"Order in Primary Key"),l(),d(10,"mat-select",4),y(11,Ype,2,2,"mat-option",5),l()(),y(12,Qpe,3,1,"div",6)(13,Xpe,3,0,"div",6),l()),2&i&&(f("formGroup",o.addShardIdPrimaryKeyForm),m(11),f("ngForOf",o.primaryKeyOrder),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi]})}return t})();function efe(t,n){1&t&&(d(0,"mat-option",18),h(1,"Add shard id column as primary key"),l())}function tfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-global-datatype-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function ife(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-index-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function nfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-column-max-length",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function ofe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-shard-id-primary-key",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}let rfe=(()=>{class t{constructor(e,i){this.sidenav=e,this.data=i,this.currentRules=[],this.ruleForm=new ti({ruleName:new q("",[ee.required,ee.pattern("^[a-zA-Z].{0,59}$")]),ruleType:new q("",[ee.required])}),this.rulename="",this.ruletype="",this.viewRuleData=[],this.viewRuleFlag=!1,this.shardedMigration=!1}ngOnInit(){this.data.conv.subscribe({next:e=>{Object.keys(e.SpSchema),this.shardedMigration=!!e.IsSharded}}),this.ruleForm.valueChanges.subscribe(()=>{this.rulename=this.ruleForm.controls.ruleName?.value,this.ruletype=this.ruleForm.controls.ruleType?.value}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag?this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.setViewRuleData(this.viewRuleData)}):(this.ruleForm.enable(),this.ruleForm.controls.ruleType.setValue(""),this.sidenav.sidenavRuleType.subscribe(i=>{"addIndex"===i&&this.ruleForm.controls.ruleType.setValue("addIndex")}))})}setViewRuleData(e){this.ruleForm.disable(),this.ruleForm.controls.ruleName.setValue(e?.Name),this.ruleForm.controls.ruleType.setValue(this.getViewRuleType(this.viewRuleData?.Type))}closeSidenav(){this.sidenav.closeSidenav()}get ruleType(){return this.ruleForm.get("ruleType")?.value}resetRuleType(){this.ruleForm.controls.ruleType.setValue(""),this.ruleForm.controls.ruleName.setValue(""),this.ruleForm.markAsUntouched()}getViewRuleType(e){switch(e){case"add_index":return"addIndex";case"global_datatype_change":return"globalDataType";case"edit_column_max_length":return"changeMaxLength";case"add_shard_id_primary_key":return"addShardIdPrimaryKey"}return""}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Hi))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-rule"]],inputs:{currentRules:"currentRules"},decls:36,vars:8,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[3,"formGroup"],["hintLabel","Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","formControlName","ruleName",1,"input-field"],["align","end"],["appearance","outline"],["matSelect","","formControlName","ruleType","required","true",1,"input-field"],["ruleType",""],["value","globalDataType"],["value","addIndex"],["value","changeMaxLength"],["value","addShardIdPrimaryKey",4,"ngIf"],[4,"ngIf"],["value","addShardIdPrimaryKey"],[3,"ruleNameValid","ruleName","ruleType","resetRuleType"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"form",6)(9,"h3"),h(10,"Rule info"),l(),d(11,"mat-form-field",7)(12,"mat-label"),h(13,"Rule name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),d(17,"h3"),h(18,"Rule definition"),l(),d(19,"mat-form-field",10)(20,"mat-label"),h(21,"Rule type"),l(),d(22,"mat-select",11,12)(24,"mat-option",13),h(25,"Change global data type"),l(),d(26,"mat-option",14),h(27,"Add Index"),l(),d(28,"mat-option",15),h(29,"Change default max column length"),l(),y(30,efe,2,0,"mat-option",16),l()(),D(31,"br"),l(),y(32,tfe,2,3,"div",17)(33,ife,2,3,"div",17)(34,nfe,2,3,"div",17)(35,ofe,2,3,"div",17),l()()),2&i){const r=Ft(23);m(3),Pe(o.viewRuleFlag?"View Rule":"Add Rule"),m(5),f("formGroup",o.ruleForm),m(8),De("",(null==o.ruleForm.value.ruleName?null:o.ruleForm.value.ruleName.length)||0,"/60"),m(14),f("ngIf",o.shardedMigration),m(2),f("ngIf","globalDataType"===r.value),m(),f("ngIf","addIndex"===r.value),m(),f("ngIf","changeMaxLength"===r.value),m(),f("ngIf","addShardIdPrimaryKey"===r.value)}},dependencies:[It,ba,Mi,Di,xi,sc,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Bpe,$pe,Zpe,Jpe],styles:["mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:0} .mat-mdc-form-field-wrapper{padding-bottom:14px}"]})}return t})();function afe(t,n){1&t&&(d(0,"th",39),h(1,"Total tables"),l())}function sfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.total)}}function cfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",41),h(2," error "),l(),h(3,"Converted with many issues "),l())}function lfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.bad)}}function dfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",42),h(2," warning"),l(),h(3,"Conversion some warnings & suggestions "),l())}function ufe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ok)}}function hfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",43),h(2," check_circle "),l(),h(3,"100% conversion "),l())}function mfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.good)}}function pfe(t,n){1&t&&D(0,"tr",44)}function ffe(t,n){1&t&&D(0,"tr",45)}function gfe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function _fe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.position," ")}}function bfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function vfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.description," ")}}function yfe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Cfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.tableCount," ")}}function wfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function xfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Dfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Sfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,xfe,2,0,"mat-icon",37)(3,Dfe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function kfe(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Je("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),De(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Mfe(t,n){1&t&&D(0,"tr",44)}function Tfe(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function Ife(t,n){1&t&&D(0,"tr",75)}const Eg=()=>["expandedDetail"];function Efe(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",46),h(4," error "),l(),h(5," ERRORS "),l()(),d(6,"table",47),pe(7,48),y(8,gfe,2,0,"th",49)(9,_fe,2,1,"td",50),fe(),pe(10,51),y(11,bfe,2,0,"th",52)(12,vfe,2,1,"td",53),fe(),pe(13,54),y(14,yfe,2,0,"th",55)(15,Cfe,2,1,"td",56),fe(),pe(16,57),y(17,wfe,2,0,"th",58)(18,Sfe,4,2,"td",59),fe(),pe(19,60),y(20,kfe,4,3,"td",59),fe(),y(21,Mfe,1,0,"tr",34)(22,Tfe,1,2,"tr",61)(23,Ife,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Errors),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Ofe(t,n){1&t&&D(0,"br")}function Afe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Pfe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.position," ")}}function Rfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Nfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.description," ")}}function Ffe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Lfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.tableCount," ")}}function Bfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Vfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function jfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function zfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Vfe,2,0,"mat-icon",37)(3,jfe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Hfe(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Je("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),De(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Ufe(t,n){1&t&&D(0,"tr",44)}function $fe(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function Gfe(t,n){1&t&&D(0,"tr",75)}function qfe(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",76),h(4," warning "),l(),h(5," WARNINGS "),l()(),d(6,"table",47),pe(7,48),y(8,Afe,2,0,"th",49)(9,Pfe,2,1,"td",50),fe(),pe(10,51),y(11,Rfe,2,0,"th",52)(12,Nfe,2,1,"td",53),fe(),pe(13,54),y(14,Ffe,2,0,"th",55)(15,Lfe,2,1,"td",56),fe(),pe(16,57),y(17,Bfe,2,0,"th",58)(18,zfe,4,2,"td",59),fe(),pe(19,60),y(20,Hfe,4,3,"td",59),fe(),y(21,Ufe,1,0,"tr",34)(22,$fe,1,2,"tr",61)(23,Gfe,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Warnings),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Wfe(t,n){1&t&&D(0,"br")}function Kfe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Zfe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.position," ")}}function Yfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Qfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.description," ")}}function Xfe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Jfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.tableCount," ")}}function ege(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function tge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function ige(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function nge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,tge,2,0,"mat-icon",37)(3,ige,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function oge(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Je("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),De(" TABLES: ",e.tableNamesJoinedByComma,"")}}function rge(t,n){1&t&&D(0,"tr",44)}function age(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function sge(t,n){1&t&&D(0,"tr",75)}function cge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",77),h(4," wb_incandescent "),l(),h(5," SUGGESTIONS "),l()(),d(6,"table",47),pe(7,48),y(8,Kfe,2,0,"th",49)(9,Zfe,2,1,"td",50),fe(),pe(10,51),y(11,Yfe,2,0,"th",52)(12,Qfe,2,1,"td",53),fe(),pe(13,54),y(14,Xfe,2,0,"th",55)(15,Jfe,2,1,"td",56),fe(),pe(16,57),y(17,ege,2,0,"th",58)(18,nge,4,2,"td",59),fe(),pe(19,60),y(20,oge,4,3,"td",59),fe(),y(21,rge,1,0,"tr",34)(22,age,1,2,"tr",61)(23,sge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Suggestions),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function lge(t,n){1&t&&D(0,"br")}function dge(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function uge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.position," ")}}function hge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function mge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.description," ")}}function pge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function fge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),De(" ",e.tableCount," ")}}function gge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function _ge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function bge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function vge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,_ge,2,0,"mat-icon",37)(3,bge,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function yge(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Je("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),De(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Cge(t,n){1&t&&D(0,"tr",44)}function wge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function xge(t,n){1&t&&D(0,"tr",75)}function Dge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",78),h(4," check_circle "),l(),h(5," NOTES "),l()(),d(6,"table",47),pe(7,48),y(8,dge,2,0,"th",49)(9,uge,2,1,"td",50),fe(),pe(10,51),y(11,hge,2,0,"th",52)(12,mge,2,1,"td",53),fe(),pe(13,54),y(14,pge,2,0,"th",55)(15,fge,2,1,"td",56),fe(),pe(16,57),y(17,gge,2,0,"th",58)(18,vge,4,2,"td",59),fe(),pe(19,60),y(20,yge,4,3,"td",59),fe(),y(21,Cge,1,0,"tr",34)(22,wge,1,2,"tr",61)(23,xge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Notes),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Sge(t,n){1&t&&D(0,"br")}function kge(t,n){1&t&&(d(0,"div",79)(1,"div",80),ei(),d(2,"svg",81),D(3,"path",82),l()(),mr(),d(4,"div",83),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l(),D(8,"br"),l())}const Sw=t=>({"width.%":t});let Mge=(()=>{class t{toggleRow(e){this.isRowExpanded(e)?this.expandedElements.delete(e):this.expandedElements.add(e)}isRowExpanded(e){return this.expandedElements.has(e)}constructor(e,i,o){this.sidenav=e,this.clickEvent=i,this.fetch=o,this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],this.issueTableData_Notes=[],this.columnsToDisplay=["position","description","tableCount"],this.columnsToDisplayWithExpand=[...this.columnsToDisplay,"expand"],this.expandedElements=new Set,this.srcDbType="",this.connectionDetail="",this.summaryText="",this.issueDescription={},this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentage={good:0,ok:0,bad:0},this.rateCountDataSource=[],this.rateCountDisplayedColumns=["total","bad","ok","good"],this.ratePcDataSource=[],this.ratePcDisplayedColumns=["bad","ok","good"]}ngOnInit(){this.clickEvent.viewAssesment.subscribe(e=>{this.srcDbType=e.srcDbType,this.connectionDetail=e.connectionDetail,this.conversionRateCount=e.conversionRates;let i=this.conversionRateCount.good+this.conversionRateCount.ok+this.conversionRateCount.bad;if(i>0)for(let o in this.conversionRatePercentage)this.conversionRatePercentage[o]=Number((this.conversionRateCount[o]/i*100).toFixed(2));i>0&&this.setRateCountDataSource(i),this.fetch.getDStructuredReport().subscribe({next:o=>{this.summaryText=o.summary.text}}),this.issueTableData={position:0,description:"",tableCount:0,tableNamesJoinedByComma:""},this.fetch.getIssueDescription().subscribe({next:o=>{this.issueDescription=o,this.generateIssueReport()}})})}closeSidenav(){this.sidenav.closeSidenav()}setRateCountDataSource(e){this.rateCountDataSource=[],this.rateCountDataSource.push({total:e,bad:this.conversionRateCount.bad,ok:this.conversionRateCount.ok,good:this.conversionRateCount.good})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text;charset=utf-8,"+encodeURIComponent(o),e.download=`${i.summary.dbName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{let o=this.connectionDetail;e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${o}_migration_textReport.txt`,e.click()}})}downloadReports(){let e=new RN;this.fetch.getDStructuredReport().subscribe({next:i=>{let o=i.summary.dbName,r=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.file(o+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(o+"_migration_textReport.txt",s),e.generateAsync({type:"blob"}).then(c=>{var u=document.createElement("a");u.href=URL.createObjectURL(c),u.download=`${o}_reports`,u.click()})}})}})}generateIssueReport(){this.fetch.getDStructuredReport().subscribe({next:e=>{let i=e.tableReports;var o={errors:new Map,warnings:new Map,suggestions:new Map,notes:new Map};for(var r of i){let c=r.issues;if(null==c)return this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],void(this.issueTableData_Notes=[]);for(var a of c){let u={tableCount:0,tableNames:new Set};switch(a.issueType){case"Error":case"Errors":this.appendIssueWithTableInformation(a.issueList,o.errors,u,r);break;case"Warnings":case"Warning":this.appendIssueWithTableInformation(a.issueList,o.warnings,u,r);break;case"Suggestion":case"Suggestions":this.appendIssueWithTableInformation(a.issueList,o.suggestions,u,r);break;case"Note":case"Notes":this.appendIssueWithTableInformation(a.issueList,o.notes,u,r)}}}let s=o.warnings;this.issueTableData_Warnings=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Warnings),s=o.errors,this.issueTableData_Errors=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Errors),s=o.suggestions,this.issueTableData_Suggestions=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Suggestions),s=o.notes,this.issueTableData_Notes=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Notes)}})}populateTableData(e,i){let o=1;for(let[r,a]of e.entries()){let s=[...a.tableNames.keys()];i.push({position:o,description:this.issueDescription[r],tableCount:a.tableCount,tableNamesJoinedByComma:s.join(", ")}),o+=1}}appendIssueWithTableInformation(e,i,o,r){for(var a of e)if(i.has(a.category)){let c=i.get(a.category),u={tableNames:new Set(c.tableNames),tableCount:c.tableNames.size};u.tableNames.add(r.srcTableName),u.tableCount=u.tableNames.size,i.set(a.category,u)}else{let c=o;c.tableNames.add(r.srcTableName),c.tableCount=c.tableNames.size,i.set(a.category,c)}}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(nr),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-view-assessment"]],decls:87,vars:25,consts:[[1,"sidenav-view-assessment-container"],[1,"sidenav-view-assessment-header"],[1,"mat-h2","header-title"],[1,"btn-source-select"],[1,"reportsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"content"],[1,"summaryHeader"],[1,"databaseName"],[1,"migrationDetails"],[1,"summaryText"],[1,"sidenav-percentage-bar"],[1,"danger-background",3,"ngStyle"],[1,"warning-background",3,"ngStyle"],[1,"success-background",3,"ngStyle"],[1,"sidenav-percentage-indent"],[1,"icon","danger"],[1,"icon","warning"],[1,"icon","success"],[1,"sidenav-title"],["mat-table","",1,"sidenav-conversionByTable",3,"dataSource"],["matColumnDef","total"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","","class","cells",4,"matCellDef"],["matColumnDef","bad",1,"bad"],["matColumnDef","ok"],["matColumnDef","good"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"issue-report"],[4,"ngIf"],["class","no-issue-container",4,"ngIf"],["mat-header-cell",""],["mat-cell","",1,"cells"],[1,"icon","danger","icon-size","icons"],[1,"icon","warning","icon-size","icons"],[1,"icon","success","icon-size","icons"],["mat-header-row",""],["mat-row",""],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["mat-table","","multiTemplateDataRows","",1,"sidenav-databaseDefinitions",3,"dataSource"],["matColumnDef","position"],["mat-header-cell","","class","mat-position",4,"matHeaderCellDef"],["mat-cell","","class","mat-position",4,"matCellDef"],["matColumnDef","description"],["mat-header-cell","","class","mat-description",4,"matHeaderCellDef"],["mat-cell","","class","mat-description",4,"matCellDef"],["matColumnDef","tableCount"],["mat-header-cell","","class","mat-tableCount",4,"matHeaderCellDef"],["mat-cell","","class","mat-tableCount",4,"matCellDef"],["matColumnDef","expand"],["mat-header-cell","","aria-label","row actions",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","expandedDetail"],["mat-row","","class","example-element-row",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","example-detail-row",4,"matRowDef","matRowDefColumns"],["mat-header-cell","",1,"mat-position"],["mat-cell","",1,"mat-position"],["mat-header-cell","",1,"mat-description"],["mat-cell","",1,"mat-description"],["mat-header-cell","",1,"mat-tableCount"],["mat-cell","",1,"mat-tableCount"],["mat-header-cell","","aria-label","row actions"],["mat-cell",""],["mat-icon-button","","aria-label","expand row",3,"click"],[1,"example-element-detail",3,"ngClass"],[1,"example-element-description"],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you don't need to do anything.","matTooltipPosition","above",1,"success"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Assessment report"),l(),d(4,"div",3)(5,"span",4)(6,"button",5),A("click",function(){return o.downloadReports()}),h(7," DOWNLOAD REPORTS "),l(),d(8,"button",6)(9,"mat-icon",7),h(10,"expand_more"),l()(),d(11,"mat-menu",8,9)(13,"button",10),A("click",function(){return o.downloadTextReport()}),h(14," Download Text Report "),l(),d(15,"button",10),A("click",function(){return o.downloadStructuredReport()}),h(16," Download Structured Report "),l()()(),d(17,"button",11),A("click",function(){return o.closeSidenav()}),d(18,"mat-icon",12),h(19,"close"),l()()()(),d(20,"div",13)(21,"div",14)(22,"p",15),h(23),l(),d(24,"p",16),h(25),d(26,"mat-icon"),h(27,"arrow_right_alt"),l(),h(28," Spanner)"),l()(),d(29,"p",17),h(30),l(),d(31,"mat-card")(32,"div",18),D(33,"div",19)(34,"div",20)(35,"div",21),l(),D(36,"hr")(37,"br"),d(38,"div",22)(39,"span")(40,"mat-icon",23),h(41," circle "),l(),d(42,"span"),h(43," Not a great conversion"),l()(),d(44,"span")(45,"mat-icon",24),h(46," circle "),l(),d(47,"span"),h(48," Converted with warnings"),l()(),d(49,"span")(50,"mat-icon",25),h(51," circle "),l(),d(52,"span"),h(53," Converted automatically"),l()()()(),D(54,"br"),d(55,"h3",26),h(56,"Conversion status by table"),l(),d(57,"table",27),pe(58,28),y(59,afe,2,0,"th",29)(60,sfe,2,1,"td",30),fe(),pe(61,31),y(62,cfe,4,0,"th",29)(63,lfe,2,1,"td",30),fe(),pe(64,32),y(65,dfe,4,0,"th",29)(66,ufe,2,1,"td",30),fe(),pe(67,33),y(68,hfe,4,0,"th",29)(69,mfe,2,1,"td",30),fe(),y(70,pfe,1,0,"tr",34)(71,ffe,1,0,"tr",35),l(),D(72,"br"),d(73,"h3"),h(74,"Summarized Table Report"),l(),d(75,"div",36),y(76,Efe,24,5,"mat-expansion-panel",37)(77,Ofe,1,0,"br",37)(78,qfe,24,5,"mat-expansion-panel",37)(79,Wfe,1,0,"br",37)(80,cge,24,5,"mat-expansion-panel",37)(81,lge,1,0,"br",37)(82,Dge,24,5,"mat-expansion-panel",37)(83,Sge,1,0,"br",37)(84,kge,9,0,"div",38),D(85,"br"),l(),D(86,"br"),l()()),2&i){const r=Ft(12);m(8),f("matMenuTriggerFor",r),m(15),Pe(o.connectionDetail),m(2),De(" \xa0 (",o.srcDbType," "),m(5),Pe(o.summaryText),m(3),f("ngStyle",hi(19,Sw,o.conversionRatePercentage.bad)),m(),f("ngStyle",hi(21,Sw,o.conversionRatePercentage.ok)),m(),f("ngStyle",hi(23,Sw,o.conversionRatePercentage.good)),m(22),f("dataSource",o.rateCountDataSource),m(13),f("matHeaderRowDef",o.rateCountDisplayedColumns),m(),f("matRowDefColumns",o.rateCountDisplayedColumns),m(5),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",!(o.issueTableData_Notes.length||o.issueTableData_Suggestions.length||o.issueTableData_Warnings.length||o.issueTableData_Errors.length))}},dependencies:[vr,It,w2,Yt,ba,Mi,Gu,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,DC,bP,JQ,vn],styles:["table.mat-mdc-table[_ngcontent-%COMP%]{width:100%}.icon-size[_ngcontent-%COMP%]{font-size:1.2em;text-align:center;margin-top:8px;margin-left:10px;vertical-align:inherit}.mat-mdc-header-cell[_ngcontent-%COMP%]{border-style:none}.icons[_ngcontent-%COMP%]{border-left:1px solid rgb(208,204,204);padding-left:10px}.cells[_ngcontent-%COMP%]{text-align:center}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%]{padding:7px 16px;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #d0cccc;justify-content:space-between}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%]{margin:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .reportsButtons[_ngcontent-%COMP%]{white-space:nowrap;vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 8px 0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:1.25px;padding:0;height:10px;vertical-align:text-top}"]})}return t})(),Tge=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.snack=o,this.sidenav=r,this.errMessage="",this.saveSessionForm=new ti({SessionName:new q("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),EditorName:new q("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),DatabaseName:new q("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_-]{0,59}$")]),Notes:new q("")})}saveSession(){let e=this.saveSessionForm.value,i={SessionName:e.SessionName.trim(),EditorName:e.EditorName.trim(),DatabaseName:e.DatabaseName.trim(),Notes:""===e.Notes?.trim()||null===e.Notes?[""]:e.Notes?.split("\n")};this.fetch.saveSession(i).subscribe({next:o=>{this.data.getAllSessions(),this.snack.openSnackBar("Session saved successfully","Close",5)},error:o=>{this.snack.openSnackBar(o.error,"Close")}}),this.saveSessionForm.reset(),this.saveSessionForm.markAsUntouched(),this.closeSidenav()}ngOnInit(){this.sidenav.sidenavDatabaseName.subscribe({next:e=>{this.saveSessionForm.controls.DatabaseName.setValue(e)}})}closeSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(ir),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-save-session"]],decls:40,vars:5,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[1,"save-session-form",3,"formGroup"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","placeholder","mysession","type","text","formControlName","SessionName","matTooltip","User can view saved sessions under session history section","matTooltipPosition","above"],["align","end"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","placeholder","editor name","type","text","formControlName","EditorName"],["hintLabel","Letters, numbers, hyphen and underscores allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","type","text","formControlName","DatabaseName"],["appearance","outline",1,"full-width"],["rows","7","matInput","","placeholder","added new index","type","text","formControlName","Notes"],[1,"sidenav-footer"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Save Session"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"h3"),h(9,"Session Details"),l(),d(10,"form",6)(11,"mat-form-field",7)(12,"mat-label"),h(13,"Session Name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),D(17,"br"),d(18,"mat-form-field",10)(19,"mat-label"),h(20,"Editor Name"),l(),D(21,"input",11),d(22,"mat-hint",9),h(23),l()(),D(24,"br"),d(25,"mat-form-field",12)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",13),d(29,"mat-hint",9),h(30),l()(),D(31,"br"),d(32,"mat-form-field",14)(33,"mat-label"),h(34,"Notes"),l(),D(35,"textarea",15),l(),D(36,"br"),l()(),d(37,"div",16)(38,"button",17),A("click",function(){return o.saveSession()}),h(39," Save Session "),l()()()),2&i&&(m(10),f("formGroup",o.saveSessionForm),m(6),De("",(null==o.saveSessionForm.value.SessionName?null:o.saveSessionForm.value.SessionName.length)||0,"/60"),m(7),De("",(null==o.saveSessionForm.value.EditorName?null:o.saveSessionForm.value.EditorName.length)||0,"/60"),m(7),De("",(null==o.saveSessionForm.value.DatabaseName?null:o.saveSessionForm.value.DatabaseName.length)||0,"/60"),m(8),f("disabled",!o.saveSessionForm.valid))},dependencies:[Yt,ba,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:10px}"]})}return t})();function Ige(t,n){1&t&&(d(0,"th",9),h(1,"Column"),l())}function Ege(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ColumnName)}}function Oge(t,n){1&t&&(d(0,"th",9),h(1,"Type"),l())}function Age(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Type)}}function Pge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Column"),l())}function Rge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateColumnName)}}function Nge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Type"),l())}function Fge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateType)}}function Lge(t,n){1&t&&D(0,"tr",11)}function Bge(t,n){1&t&&D(0,"tr",12)}let Vge=(()=>{class t{constructor(){this.tableChange={InterleaveColumnChanges:[],Table:""},this.dataSource=[],this.displayedColumns=["ColumnName","Type","UpdateColumnName","UpdateType"]}ngOnInit(){}ngOnChanges(e){this.tableChange=e.tableChange?.currentValue||this.tableChange,this.dataSource=this.tableChange.InterleaveColumnChanges}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-table-column-changes-preview"]],inputs:{tableChange:"tableChange"},features:[fi],decls:15,vars:3,consts:[["mat-table","",1,"object-full-width","margin-bot-1",3,"dataSource"],["matColumnDef","ColumnName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Type"],["matColumnDef","UpdateColumnName"],["matColumnDef","UpdateType"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(i,o){1&i&&(d(0,"table",0),pe(1,1),y(2,Ige,2,0,"th",2)(3,Ege,2,1,"td",3),fe(),pe(4,4),y(5,Oge,2,0,"th",2)(6,Age,2,1,"td",3),fe(),pe(7,5),y(8,Pge,2,0,"th",2)(9,Rge,2,1,"td",3),fe(),pe(10,6),y(11,Nge,2,0,"th",2)(12,Fge,2,1,"td",3),fe(),y(13,Lge,1,0,"tr",7)(14,Bge,1,0,"tr",8),l()),2&i&&(f("dataSource",o.dataSource),m(13),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns))},dependencies:[ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs],styles:[".margin-bot-1[_ngcontent-%COMP%]{margin-bottom:1rem}.mat-mdc-header-row[_ngcontent-%COMP%]{background-color:#f5f5f5}.mat-mdc-column-ColumnName[_ngcontent-%COMP%], .mat-mdc-column-UpdateColumnName[_ngcontent-%COMP%]{width:30%;max-width:30%}.mat-mdc-column-Type[_ngcontent-%COMP%], .mat-mdc-column-UpdateType[_ngcontent-%COMP%]{width:20%;max-width:20%}.mat-mdc-cell[_ngcontent-%COMP%]{padding-right:1rem;word-break:break-all}"]})}return t})();function jge(t,n){1&t&&(d(0,"p"),h(1,"Review the DDL changes below."),l())}function zge(t,n){if(1&t&&(d(0,"p"),h(1," Changing an interleaved table will have an impact on the following tables : "),d(2,"b"),h(3),l()()),2&t){const e=C();m(3),Pe(e.tableList)}}function Hge(t,n){if(1&t&&(d(0,"div",11)(1,"pre")(2,"code"),h(3),l()()()),2&t){const e=C();m(3),Pe(e.ddl)}}function Uge(t,n){if(1&t&&(pe(0),d(1,"h4"),h(2),l(),D(3,"app-table-column-changes-preview",14),fe()),2&t){const e=n.$implicit,i=n.index,o=C(2);m(2),Pe(o.tableNames[i]),m(),f("tableChange",e)}}function $ge(t,n){if(1&t&&(d(0,"div",12),y(1,Uge,4,2,"ng-container",13),l()),2&t){const e=C();m(),f("ngForOf",e.tableChanges)}}let Gge=(()=>{class t{constructor(e,i,o,r){this.sidenav=e,this.tableUpdatePubSub=i,this.data=o,this.snackbar=r,this.ddl="",this.showDdl=!0,this.tableUpdateData={tableName:"",tableId:"",updateDetail:{UpdateCols:{}}},this.tableChanges=[],this.tableNames=[],this.tableList=""}ngOnInit(){this.tableUpdatePubSub.reviewTableChanges.subscribe(e=>{if(e.Changes&&e.Changes.length>0){this.showDdl=!1,this.tableChanges=e.Changes;const i=[];this.tableList="",this.tableChanges.forEach((o,r)=>{i.push(o.Table),this.tableList+=0==r?o.Table:", "+o.Table}),this.tableList+=".",this.tableNames=i}else this.showDdl=!0,this.ddl=e.DDL}),this.tableUpdatePubSub.tableUpdateDetail.subscribe(e=>{this.tableUpdateData=e})}updateTable(){this.data.updateTable(this.tableUpdateData.tableId,this.tableUpdateData.updateDetail).subscribe({next:e=>{""==e?(this.snackbar.openSnackBar(`Schema changes to table ${this.tableUpdateData.tableName} saved successfully`,"Close",5),0==this.showDdl&&1!=this.tableNames.length&&this.snackbar.openSnackBar(`Schema changes to tables ${this.tableNames[0]} and ${this.tableNames[1]} saved successfully`,"Close",5),this.closeSidenav()):this.snackbar.openSnackBar(e,"Close",5)}})}closeSidenav(){this.ddl="",this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Cw),_(Hi),_(ir))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-review-changes"]],decls:17,vars:4,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[4,"ngIf"],["class","ddl-display",4,"ngIf"],["class","table-changes-display",4,"ngIf"],[1,"sidenav-footer"],["mat-raised-button","","color","primary",3,"click"],[1,"ddl-display"],[1,"table-changes-display"],[4,"ngFor","ngForOf"],[3,"tableChange"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Review changes to your schema"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),D(7,"mat-divider"),d(8,"div",5),y(9,jge,2,0,"p",6)(10,zge,4,1,"p",6)(11,Hge,4,1,"div",7)(12,$ge,2,1,"div",8),l(),D(13,"mat-divider"),d(14,"div",9)(15,"button",10),A("click",function(){return o.updateTable()}),h(16,"Confirm Conversion"),l()()()),2&i&&(m(9),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl),m(),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl))},dependencies:[rn,It,Yt,ba,Mi,wO,Vge],styles:[".sidenav-content[_ngcontent-%COMP%]{height:82%}.sidenav-content[_ngcontent-%COMP%] .ddl-display[_ngcontent-%COMP%]{height:90%;background-color:#dadada;padding:10px;overflow:auto}.sidenav-content[_ngcontent-%COMP%] .table-changes-display[_ngcontent-%COMP%]{height:90%;overflow:auto}"]})}return t})();function qge(t,n){1&t&&D(0,"app-sidenav-rule")}function Wge(t,n){1&t&&D(0,"app-sidenav-save-session")}function Kge(t,n){1&t&&D(0,"app-sidenav-review-changes")}function Zge(t,n){1&t&&D(0,"app-sidenav-view-assessment")}function Yge(t,n){1&t&&D(0,"app-instruction")}const Qge=(t,n,e)=>({"width-40pc":t,"width-50pc":n,"width-60pc":e});let Xge=(()=>{class t{constructor(e){this.sidenavService=e,this.title="ui",this.showSidenav=!1,this.sidenavComponent=""}ngOnInit(){this.sidenavService.isSidenav.subscribe(e=>{this.showSidenav=e}),this.sidenavService.sidenavComponent.subscribe(e=>{this.sidenavComponent=e})}closeSidenav(){this.showSidenav=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-root"]],decls:14,vars:11,consts:[[1,"sidenav-container",3,"backdropClick"],["position","end","mode","over",3,"opened","ngClass"],["sidenav",""],[4,"ngIf"],[1,"sidenav-content"],[1,"appLoader"],[1,"padding-20"]],template:function(i,o){1&i&&(d(0,"mat-sidenav-container",0),A("backdropClick",function(){return o.closeSidenav()}),d(1,"mat-sidenav",1,2),y(3,qge,1,0,"app-sidenav-rule",3)(4,Wge,1,0,"app-sidenav-save-session",3)(5,Kge,1,0,"app-sidenav-review-changes",3)(6,Zge,1,0,"app-sidenav-view-assessment",3)(7,Yge,1,0,"app-instruction",3),l(),d(8,"mat-sidenav-content",4),D(9,"app-header"),d(10,"div",5),D(11,"app-loader"),l(),d(12,"div",6),D(13,"router-outlet"),l()()()),2&i&&(m(),f("opened",o.showSidenav)("ngClass",HM(7,Qge,"rule"===o.sidenavComponent||"saveSession"===o.sidenavComponent,"reviewChanges"===o.sidenavComponent,"assessment"===o.sidenavComponent||"instruction"===o.sidenavComponent)),m(2),f("ngIf","rule"===o.sidenavComponent),m(),f("ngIf","saveSession"==o.sidenavComponent),m(),f("ngIf","reviewChanges"==o.sidenavComponent),m(),f("ngIf","assessment"===o.sidenavComponent),m(),f("ngIf","instruction"===o.sidenavComponent))},dependencies:[vr,It,Cg,hR,mR,qC,AN,Tpe,Epe,rfe,Mge,Tge,Gge],styles:[".padding-20[_ngcontent-%COMP%]{padding:5px 0}.progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%], .appLoader[_ngcontent-%COMP%]{height:2px}mat-mdc-sidenav[_ngcontent-%COMP%]{width:30%;min-width:350px}.sidenav-container[_ngcontent-%COMP%]{height:100vh}.sidenav-container[_ngcontent-%COMP%] mat-mdc-sidenav[_ngcontent-%COMP%]{min-width:350px;border-radius:3px}.width-40pc[_ngcontent-%COMP%]{width:40%}.width-50pc[_ngcontent-%COMP%]{width:50%}.width-60pc[_ngcontent-%COMP%]{width:60%}"]})}return t})(),Jge=(()=>{class t{constructor(e){this.loader=e,this.count=0}intercept(e,i){let o=!e.url.includes("/connect");return o&&(this.loader.startLoader(),this.count++),i.handle(e).pipe(ec(()=>{o&&this.count--,0==this.count&&this.loader.stopLoader()}))}static#e=this.\u0275fac=function(i){return new(i||t)(X(Mg))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),e_e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t,bootstrap:[Xge]});static#i=this.\u0275inj=at({providers:[{provide:ZE,useClass:Jge,multi:!0}],imports:[Y2,Cpe,b$,mte,mW,RK,xte,Mte,rre,OC]})}return t})();bH().bootstrapModule(e_e).catch(t=>console.error(t))},304:ld=>{ld.exports=function G(Re,Y,F){function R(U,W){if(!Y[U]){if(!Re[U]){if(S)return S(U,!0);var $=new Error("Cannot find module '"+U+"'");throw $.code="MODULE_NOT_FOUND",$}var I=Y[U]={exports:{}};Re[U][0].call(I.exports,function(B){return R(Re[U][1][B]||B)},I,I.exports,G,Re,Y,F)}return Y[U].exports}for(var S=void 0,P=0;P>4,B=1>6:64,M=2>2)+S.charAt(I)+S.charAt(B)+S.charAt(M));return N.join("")},Y.decode=function(P){var U,W,V,$,I,B,M=0,N=0,E="data:";if(P.substr(0,5)===E)throw new Error("Invalid base64 input, it looks like a data url.");var j,K=3*(P=P.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(P.charAt(P.length-1)===S.charAt(64)&&K--,P.charAt(P.length-2)===S.charAt(64)&&K--,K%1!=0)throw new Error("Invalid base64 input, bad content length.");for(j=R.uint8array?new Uint8Array(0|K):new Array(0|K);M>4,W=(15&$)<<4|(I=S.indexOf(P.charAt(M++)))>>2,V=(3&I)<<6|(B=S.indexOf(P.charAt(M++))),j[N++]=U,64!==I&&(j[N++]=W),64!==B&&(j[N++]=V);return j}},{"./support":30,"./utils":32}],2:[function(G,Re,Y){"use strict";var F=G("./external"),R=G("./stream/DataWorker"),S=G("./stream/Crc32Probe"),P=G("./stream/DataLengthProbe");function U(W,V,$,I,B){this.compressedSize=W,this.uncompressedSize=V,this.crc32=$,this.compression=I,this.compressedContent=B}U.prototype={getContentWorker:function(){var W=new R(F.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new P("data_length")),V=this;return W.on("end",function(){if(this.streamInfo.data_length!==V.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),W},getCompressedWorker:function(){return new R(F.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},U.createWorkerFrom=function(W,V,$){return W.pipe(new S).pipe(new P("uncompressedSize")).pipe(V.compressWorker($)).pipe(new P("compressedSize")).withStreamInfo("compression",V)},Re.exports=U},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(G,Re,Y){"use strict";var F=G("./stream/GenericWorker");Y.STORE={magic:"\0\0",compressWorker:function(){return new F("STORE compression")},uncompressWorker:function(){return new F("STORE decompression")}},Y.DEFLATE=G("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(G,Re,Y){"use strict";var F=G("./utils"),R=function(){for(var S,P=[],U=0;U<256;U++){S=U;for(var W=0;W<8;W++)S=1&S?3988292384^S>>>1:S>>>1;P[U]=S}return P}();Re.exports=function(S,P){return void 0!==S&&S.length?"string"!==F.getTypeOf(S)?function(U,W,V,$){var I=R,B=0+V;U^=-1;for(var M=0;M>>8^I[255&(U^W[M])];return-1^U}(0|P,S,S.length):function(U,W,V,$){var I=R,B=0+V;U^=-1;for(var M=0;M>>8^I[255&(U^W.charCodeAt(M))];return-1^U}(0|P,S,S.length):0}},{"./utils":32}],5:[function(G,Re,Y){"use strict";Y.base64=!1,Y.binary=!1,Y.dir=!1,Y.createFolders=!0,Y.date=null,Y.compression=null,Y.compressionOptions=null,Y.comment=null,Y.unixPermissions=null,Y.dosPermissions=null},{}],6:[function(G,Re,Y){"use strict";var F;F=typeof Promise<"u"?Promise:G("lie"),Re.exports={Promise:F}},{lie:37}],7:[function(G,Re,Y){"use strict";var F=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",R=G("pako"),S=G("./utils"),P=G("./stream/GenericWorker"),U=F?"uint8array":"array";function W(V,$){P.call(this,"FlateWorker/"+V),this._pako=null,this._pakoAction=V,this._pakoOptions=$,this.meta={}}Y.magic="\b\0",S.inherits(W,P),W.prototype.processChunk=function(V){this.meta=V.meta,null===this._pako&&this._createPako(),this._pako.push(S.transformTo(U,V.data),!1)},W.prototype.flush=function(){P.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},W.prototype.cleanUp=function(){P.prototype.cleanUp.call(this),this._pako=null},W.prototype._createPako=function(){this._pako=new R[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var V=this;this._pako.onData=function($){V.push({data:$,meta:V.meta})}},Y.compressWorker=function(V){return new W("Deflate",V)},Y.uncompressWorker=function(){return new W("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(G,Re,Y){"use strict";function F(I,B){var M,N="";for(M=0;M>>=8;return N}function R(I,B,M,N,E,j){var K,oe,te=I.file,Te=I.compression,we=j!==U.utf8encode,Fe=S.transformTo("string",j(te.name)),ye=S.transformTo("string",U.utf8encode(te.name)),Ge=te.comment,ht=S.transformTo("string",j(Ge)),H=S.transformTo("string",U.utf8encode(Ge)),Ce=ye.length!==te.name.length,x=H.length!==Ge.length,Me="",Rt="",Le="",Vt=te.dir,Ve=te.date,Tt={crc32:0,compressedSize:0,uncompressedSize:0};B&&!M||(Tt.crc32=I.crc32,Tt.compressedSize=I.compressedSize,Tt.uncompressedSize=I.uncompressedSize);var me=0;B&&(me|=8),we||!Ce&&!x||(me|=2048);var Qe,Fn,le=0,bt=0;Vt&&(le|=16),"UNIX"===E?(bt=798,le|=(Fn=Qe=te.unixPermissions,Qe||(Fn=Vt?16893:33204),(65535&Fn)<<16)):(bt=20,le|=function(Qe){return 63&(Qe||0)}(te.dosPermissions)),K=Ve.getUTCHours(),K<<=6,K|=Ve.getUTCMinutes(),K<<=5,K|=Ve.getUTCSeconds()/2,oe=Ve.getUTCFullYear()-1980,oe<<=4,oe|=Ve.getUTCMonth()+1,oe<<=5,oe|=Ve.getUTCDate(),Ce&&(Rt=F(1,1)+F(W(Fe),4)+ye,Me+="up"+F(Rt.length,2)+Rt),x&&(Le=F(1,1)+F(W(ht),4)+H,Me+="uc"+F(Le.length,2)+Le);var it="";return it+="\n\0",it+=F(me,2),it+=Te.magic,it+=F(K,2),it+=F(oe,2),it+=F(Tt.crc32,4),it+=F(Tt.compressedSize,4),it+=F(Tt.uncompressedSize,4),it+=F(Fe.length,2),it+=F(Me.length,2),{fileRecord:V.LOCAL_FILE_HEADER+it+Fe+Me,dirRecord:V.CENTRAL_FILE_HEADER+F(bt,2)+it+F(ht.length,2)+"\0\0\0\0"+F(le,4)+F(N,4)+Fe+Me+ht}}var S=G("../utils"),P=G("../stream/GenericWorker"),U=G("../utf8"),W=G("../crc32"),V=G("../signature");function $(I,B,M,N){P.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=B,this.zipPlatform=M,this.encodeFileName=N,this.streamFiles=I,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}S.inherits($,P),$.prototype.push=function(I){var B=I.meta.percent||0,M=this.entriesCount,N=this._sources.length;this.accumulate?this.contentBuffer.push(I):(this.bytesWritten+=I.data.length,P.prototype.push.call(this,{data:I.data,meta:{currentFile:this.currentFile,percent:M?(B+100*(M-N-1))/M:100}}))},$.prototype.openedSource=function(I){this.currentSourceOffset=this.bytesWritten,this.currentFile=I.file.name;var B=this.streamFiles&&!I.file.dir;if(B){var M=R(I,B,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:M.fileRecord,meta:{percent:0}})}else this.accumulate=!0},$.prototype.closedSource=function(I){this.accumulate=!1;var N,B=this.streamFiles&&!I.file.dir,M=R(I,B,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(M.dirRecord),B)this.push({data:(N=I,V.DATA_DESCRIPTOR+F(N.crc32,4)+F(N.compressedSize,4)+F(N.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:M.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},$.prototype.flush=function(){for(var I=this.bytesWritten,B=0;B=this.index;P--)U=(U<<8)+this.byteAt(P);return this.index+=S,U},readString:function(S){return F.transformTo("string",this.readData(S))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var S=this.readInt(4);return new Date(Date.UTC(1980+(S>>25&127),(S>>21&15)-1,S>>16&31,S>>11&31,S>>5&63,(31&S)<<1))}},Re.exports=R},{"../utils":32}],19:[function(G,Re,Y){"use strict";var F=G("./Uint8ArrayReader");function R(S){F.call(this,S)}G("../utils").inherits(R,F),R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(G,Re,Y){"use strict";var F=G("./DataReader");function R(S){F.call(this,S)}G("../utils").inherits(R,F),R.prototype.byteAt=function(S){return this.data.charCodeAt(this.zero+S)},R.prototype.lastIndexOfSignature=function(S){return this.data.lastIndexOf(S)-this.zero},R.prototype.readAndCheckSignature=function(S){return S===this.readData(4)},R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./DataReader":18}],21:[function(G,Re,Y){"use strict";var F=G("./ArrayReader");function R(S){F.call(this,S)}G("../utils").inherits(R,F),R.prototype.readData=function(S){if(this.checkOffset(S),0===S)return new Uint8Array(0);var P=this.data.subarray(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./ArrayReader":17}],22:[function(G,Re,Y){"use strict";var F=G("../utils"),R=G("../support"),S=G("./ArrayReader"),P=G("./StringReader"),U=G("./NodeBufferReader"),W=G("./Uint8ArrayReader");Re.exports=function(V){var $=F.getTypeOf(V);return F.checkSupport($),"string"!==$||R.uint8array?"nodebuffer"===$?new U(V):R.uint8array?new W(F.transformTo("uint8array",V)):new S(F.transformTo("array",V)):new P(V)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(G,Re,Y){"use strict";Y.LOCAL_FILE_HEADER="PK\x03\x04",Y.CENTRAL_FILE_HEADER="PK\x01\x02",Y.CENTRAL_DIRECTORY_END="PK\x05\x06",Y.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Y.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Y.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(G,Re,Y){"use strict";var F=G("./GenericWorker"),R=G("../utils");function S(P){F.call(this,"ConvertWorker to "+P),this.destType=P}R.inherits(S,F),S.prototype.processChunk=function(P){this.push({data:R.transformTo(this.destType,P.data),meta:P.meta})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],25:[function(G,Re,Y){"use strict";var F=G("./GenericWorker"),R=G("../crc32");function S(){F.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}G("../utils").inherits(S,F),S.prototype.processChunk=function(P){this.streamInfo.crc32=R(P.data,this.streamInfo.crc32||0),this.push(P)},Re.exports=S},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(G,Re,Y){"use strict";var F=G("../utils"),R=G("./GenericWorker");function S(P){R.call(this,"DataLengthProbe for "+P),this.propName=P,this.withStreamInfo(P,0)}F.inherits(S,R),S.prototype.processChunk=function(P){P&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+P.data.length),R.prototype.processChunk.call(this,P)},Re.exports=S},{"../utils":32,"./GenericWorker":28}],27:[function(G,Re,Y){"use strict";var F=G("../utils"),R=G("./GenericWorker");function S(P){R.call(this,"DataWorker");var U=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,P.then(function(W){U.dataIsReady=!0,U.data=W,U.max=W&&W.length||0,U.type=F.getTypeOf(W),U.isPaused||U._tickAndRepeat()},function(W){U.error(W)})}F.inherits(S,R),S.prototype.cleanUp=function(){R.prototype.cleanUp.call(this),this.data=null},S.prototype.resume=function(){return!!R.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,F.delay(this._tickAndRepeat,[],this)),!0)},S.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(F.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},S.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var P=null,U=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":P=this.data.substring(this.index,U);break;case"uint8array":P=this.data.subarray(this.index,U);break;case"array":case"nodebuffer":P=this.data.slice(this.index,U)}return this.index=U,this.push({data:P,meta:{percent:this.max?this.index/this.max*100:0}})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],28:[function(G,Re,Y){"use strict";function F(R){this.name=R||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}F.prototype={push:function(R){this.emit("data",R)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(R){this.emit("error",R)}return!0},error:function(R){return!this.isFinished&&(this.isPaused?this.generatedError=R:(this.isFinished=!0,this.emit("error",R),this.previous&&this.previous.error(R),this.cleanUp()),!0)},on:function(R,S){return this._listeners[R].push(S),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(R,S){if(this._listeners[R])for(var P=0;P "+R:R}},Re.exports=F},{}],29:[function(G,Re,Y){"use strict";var F=G("../utils"),R=G("./ConvertWorker"),S=G("./GenericWorker"),P=G("../base64"),U=G("../support"),W=G("../external"),V=null;if(U.nodestream)try{V=G("../nodejs/NodejsStreamOutputAdapter")}catch{}function I(B,M,N){var E=M;switch(M){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=M,this._mimeType=N,F.checkSupport(E),this._worker=B.pipe(new R(E)),B.lock()}catch(j){this._worker=new S("error"),this._worker.error(j)}}I.prototype={accumulate:function(B){return function $(B,M){return new W.Promise(function(N,E){var j=[],K=B._internalType,oe=B._outputType,te=B._mimeType;B.on("data",function(Te,we){j.push(Te),M&&M(we)}).on("error",function(Te){j=[],E(Te)}).on("end",function(){try{var Te=function(we,Fe,ye){switch(we){case"blob":return F.newBlob(F.transformTo("arraybuffer",Fe),ye);case"base64":return P.encode(Fe);default:return F.transformTo(we,Fe)}}(oe,function(we,Fe){var ye,Ge=0,ht=null,H=0;for(ye=0;ye"u")Y.blob=!1;else{var F=new ArrayBuffer(0);try{Y.blob=0===new Blob([F],{type:"application/zip"}).size}catch{try{var R=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);R.append(F),Y.blob=0===R.getBlob("application/zip").size}catch{Y.blob=!1}}}try{Y.nodestream=!!G("readable-stream").Readable}catch{Y.nodestream=!1}},{"readable-stream":16}],31:[function(G,Re,Y){"use strict";for(var F=G("./utils"),R=G("./support"),S=G("./nodejsUtils"),P=G("./stream/GenericWorker"),U=new Array(256),W=0;W<256;W++)U[W]=252<=W?6:248<=W?5:240<=W?4:224<=W?3:192<=W?2:1;function V(){P.call(this,"utf-8 decode"),this.leftOver=null}function $(){P.call(this,"utf-8 encode")}U[254]=U[254]=1,Y.utf8encode=function(I){return R.nodebuffer?S.newBufferFrom(I,"utf-8"):function(B){var M,N,E,j,K,oe=B.length,te=0;for(j=0;j>>6:(N<65536?M[K++]=224|N>>>12:(M[K++]=240|N>>>18,M[K++]=128|N>>>12&63),M[K++]=128|N>>>6&63),M[K++]=128|63&N);return M}(I)},Y.utf8decode=function(I){return R.nodebuffer?F.transformTo("nodebuffer",I).toString("utf-8"):function(B){var M,N,E,j,K=B.length,oe=new Array(2*K);for(M=N=0;M>10&1023,oe[N++]=56320|1023&E)}return oe.length!==N&&(oe.subarray?oe=oe.subarray(0,N):oe.length=N),F.applyFromCharCode(oe)}(I=F.transformTo(R.uint8array?"uint8array":"array",I))},F.inherits(V,P),V.prototype.processChunk=function(I){var B=F.transformTo(R.uint8array?"uint8array":"array",I.data);if(this.leftOver&&this.leftOver.length){if(R.uint8array){var M=B;(B=new Uint8Array(M.length+this.leftOver.length)).set(this.leftOver,0),B.set(M,this.leftOver.length)}else B=this.leftOver.concat(B);this.leftOver=null}var N=function(j,K){var oe;for((K=K||j.length)>j.length&&(K=j.length),oe=K-1;0<=oe&&128==(192&j[oe]);)oe--;return oe<0||0===oe?K:oe+U[j[oe]]>K?oe:K}(B),E=B;N!==B.length&&(R.uint8array?(E=B.subarray(0,N),this.leftOver=B.subarray(N,B.length)):(E=B.slice(0,N),this.leftOver=B.slice(N,B.length))),this.push({data:Y.utf8decode(E),meta:I.meta})},V.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Y.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Y.Utf8DecodeWorker=V,F.inherits($,P),$.prototype.processChunk=function(I){this.push({data:Y.utf8encode(I.data),meta:I.meta})},Y.Utf8EncodeWorker=$},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(G,Re,Y){"use strict";var F=G("./support"),R=G("./base64"),S=G("./nodejsUtils"),P=G("./external");function U(M){return M}function W(M,N){for(var E=0;E>8;this.dir=!!(16&this.externalFileAttributes),0==I&&(this.dosPermissions=63&this.externalFileAttributes),3==I&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var I=F(this.extraFields[1].value);this.uncompressedSize===R.MAX_VALUE_32BITS&&(this.uncompressedSize=I.readInt(8)),this.compressedSize===R.MAX_VALUE_32BITS&&(this.compressedSize=I.readInt(8)),this.localHeaderOffset===R.MAX_VALUE_32BITS&&(this.localHeaderOffset=I.readInt(8)),this.diskNumberStart===R.MAX_VALUE_32BITS&&(this.diskNumberStart=I.readInt(4))}},readExtraFields:function(I){var B,M,N,E=I.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});I.index+4>>6:(I<65536?$[N++]=224|I>>>12:($[N++]=240|I>>>18,$[N++]=128|I>>>12&63),$[N++]=128|I>>>6&63),$[N++]=128|63&I);return $},Y.buf2binstring=function(V){return W(V,V.length)},Y.binstring2buf=function(V){for(var $=new F.Buf8(V.length),I=0,B=$.length;I>10&1023,j[B++]=56320|1023&M)}return W(j,B)},Y.utf8border=function(V,$){var I;for(($=$||V.length)>V.length&&($=V.length),I=$-1;0<=I&&128==(192&V[I]);)I--;return I<0||0===I?$:I+P[V[I]]>$?I:$}},{"./common":41}],43:[function(G,Re,Y){"use strict";Re.exports=function(F,R,S,P){for(var U=65535&F|0,W=F>>>16&65535|0,V=0;0!==S;){for(S-=V=2e3>>1:R>>>1;S[P]=R}return S}();Re.exports=function(R,S,P,U){var W=F,V=U+P;R^=-1;for(var $=U;$>>8^W[255&(R^S[$])];return-1^R}},{}],46:[function(G,Re,Y){"use strict";var F,R=G("../utils/common"),S=G("./trees"),P=G("./adler32"),U=G("./crc32"),W=G("./messages"),V=0,I=0,B=-2,E=2,j=8,oe=286,te=30,Te=19,we=2*oe+1,Fe=15,ye=3,Ge=258,ht=Ge+ye+1,H=42,Ce=113;function Vt(v,Se){return v.msg=W[Se],Se}function Ve(v){return(v<<1)-(4v.avail_out&&(J=v.avail_out),0!==J&&(R.arraySet(v.output,Se.pending_buf,Se.pending_out,J,v.next_out),v.next_out+=J,Se.pending_out+=J,v.total_out+=J,v.avail_out-=J,Se.pending-=J,0===Se.pending&&(Se.pending_out=0))}function le(v,Se){S._tr_flush_block(v,0<=v.block_start?v.block_start:-1,v.strstart-v.block_start,Se),v.block_start=v.strstart,me(v.strm)}function bt(v,Se){v.pending_buf[v.pending++]=Se}function it(v,Se){v.pending_buf[v.pending++]=Se>>>8&255,v.pending_buf[v.pending++]=255&Se}function Qe(v,Se){var J,L,O=v.max_chain_length,Z=v.strstart,de=v.prev_length,Ee=v.nice_match,ce=v.strstart>v.w_size-ht?v.strstart-(v.w_size-ht):0,je=v.window,Xe=v.w_mask,ze=v.prev,ut=v.strstart+Ge,oi=je[Z+de-1],Kt=je[Z+de];v.prev_length>=v.good_match&&(O>>=2),Ee>v.lookahead&&(Ee=v.lookahead);do{if(je[(J=Se)+de]===Kt&&je[J+de-1]===oi&&je[J]===je[Z]&&je[++J]===je[Z+1]){Z+=2,J++;do{}while(je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&Zce&&0!=--O);return de<=v.lookahead?de:v.lookahead}function Zi(v){var Se,J,L,O,Z,de,Ee,ce,je,Xe,ze=v.w_size;do{if(O=v.window_size-v.lookahead-v.strstart,v.strstart>=ze+(ze-ht)){for(R.arraySet(v.window,v.window,ze,ze,0),v.match_start-=ze,v.strstart-=ze,v.block_start-=ze,Se=J=v.hash_size;L=v.head[--Se],v.head[Se]=ze<=L?L-ze:0,--J;);for(Se=J=ze;L=v.prev[--Se],v.prev[Se]=ze<=L?L-ze:0,--J;);O+=ze}if(0===v.strm.avail_in)break;if(Ee=v.window,ce=v.strstart+v.lookahead,Xe=void 0,(je=O)<(Xe=(de=v.strm).avail_in)&&(Xe=je),J=0===Xe?0:(de.avail_in-=Xe,R.arraySet(Ee,de.input,de.next_in,Xe,ce),1===de.state.wrap?de.adler=P(de.adler,Ee,Xe,ce):2===de.state.wrap&&(de.adler=U(de.adler,Ee,Xe,ce)),de.next_in+=Xe,de.total_in+=Xe,Xe),v.lookahead+=J,v.lookahead+v.insert>=ye)for(v.ins_h=v.window[Z=v.strstart-v.insert],v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye)if(L=S._tr_tally(v,v.strstart-v.match_start,v.match_length-ye),v.lookahead-=v.match_length,v.match_length<=v.max_lazy_match&&v.lookahead>=ye){for(v.match_length--;v.strstart++,v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye&&v.match_length<=v.prev_length){for(O=v.strstart+v.lookahead-ye,L=S._tr_tally(v,v.strstart-1-v.prev_match,v.prev_length-ye),v.lookahead-=v.prev_length-1,v.prev_length-=2;++v.strstart<=O&&(v.ins_h=(v.ins_h<v.pending_buf_size-5&&(J=v.pending_buf_size-5);;){if(v.lookahead<=1){if(Zi(v),0===v.lookahead&&Se===V)return 1;if(0===v.lookahead)break}v.strstart+=v.lookahead,v.lookahead=0;var L=v.block_start+J;if((0===v.strstart||v.strstart>=L)&&(v.lookahead=v.strstart-L,v.strstart=L,le(v,!1),0===v.strm.avail_out)||v.strstart-v.block_start>=v.w_size-ht&&(le(v,!1),0===v.strm.avail_out))return 1}return v.insert=0,4===Se?(le(v,!0),0===v.strm.avail_out?3:4):(v.strstart>v.block_start&&le(v,!1),1)}),new ni(4,4,8,4,Fn),new ni(4,5,16,8,Fn),new ni(4,6,32,32,Fn),new ni(4,4,16,16,Wt),new ni(8,16,32,32,Wt),new ni(8,16,128,128,Wt),new ni(8,32,128,256,Wt),new ni(32,128,258,1024,Wt),new ni(32,258,258,4096,Wt)],Y.deflateInit=function(v,Se){return fo(v,Se,j,15,8,0)},Y.deflateInit2=fo,Y.deflateReset=rr,Y.deflateResetKeep=Ui,Y.deflateSetHeader=function(v,Se){return v&&v.state?2!==v.state.wrap?B:(v.state.gzhead=Se,I):B},Y.deflate=function(v,Se){var J,L,O,Z;if(!v||!v.state||5>8&255),bt(L,L.gzhead.time>>16&255),bt(L,L.gzhead.time>>24&255),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,255&L.gzhead.os),L.gzhead.extra&&L.gzhead.extra.length&&(bt(L,255&L.gzhead.extra.length),bt(L,L.gzhead.extra.length>>8&255)),L.gzhead.hcrc&&(v.adler=U(v.adler,L.pending_buf,L.pending,0)),L.gzindex=0,L.status=69):(bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,3),L.status=Ce);else{var de=j+(L.w_bits-8<<4)<<8;de|=(2<=L.strategy||L.level<2?0:L.level<6?1:6===L.level?2:3)<<6,0!==L.strstart&&(de|=32),de+=31-de%31,L.status=Ce,it(L,de),0!==L.strstart&&(it(L,v.adler>>>16),it(L,65535&v.adler)),v.adler=1}if(69===L.status)if(L.gzhead.extra){for(O=L.pending;L.gzindex<(65535&L.gzhead.extra.length)&&(L.pending!==L.pending_buf_size||(L.gzhead.hcrc&&L.pending>O&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),me(v),O=L.pending,L.pending!==L.pending_buf_size));)bt(L,255&L.gzhead.extra[L.gzindex]),L.gzindex++;L.gzhead.hcrc&&L.pending>O&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),L.gzindex===L.gzhead.extra.length&&(L.gzindex=0,L.status=73)}else L.status=73;if(73===L.status)if(L.gzhead.name){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),me(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.gzindex=0,L.status=91)}else L.status=91;if(91===L.status)if(L.gzhead.comment){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),me(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=U(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.status=103)}else L.status=103;if(103===L.status&&(L.gzhead.hcrc?(L.pending+2>L.pending_buf_size&&me(v),L.pending+2<=L.pending_buf_size&&(bt(L,255&v.adler),bt(L,v.adler>>8&255),v.adler=0,L.status=Ce)):L.status=Ce),0!==L.pending){if(me(v),0===v.avail_out)return L.last_flush=-1,I}else if(0===v.avail_in&&Ve(Se)<=Ve(J)&&4!==Se)return Vt(v,-5);if(666===L.status&&0!==v.avail_in)return Vt(v,-5);if(0!==v.avail_in||0!==L.lookahead||Se!==V&&666!==L.status){var Ee=2===L.strategy?function(ce,je){for(var Xe;;){if(0===ce.lookahead&&(Zi(ce),0===ce.lookahead)){if(je===V)return 1;break}if(ce.match_length=0,Xe=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++,Xe&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):3===L.strategy?function(ce,je){for(var Xe,ze,ut,oi,Kt=ce.window;;){if(ce.lookahead<=Ge){if(Zi(ce),ce.lookahead<=Ge&&je===V)return 1;if(0===ce.lookahead)break}if(ce.match_length=0,ce.lookahead>=ye&&0ce.lookahead&&(ce.match_length=ce.lookahead)}if(ce.match_length>=ye?(Xe=S._tr_tally(ce,1,ce.match_length-ye),ce.lookahead-=ce.match_length,ce.strstart+=ce.match_length,ce.match_length=0):(Xe=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++),Xe&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):F[L.level].func(L,Se);if(3!==Ee&&4!==Ee||(L.status=666),1===Ee||3===Ee)return 0===v.avail_out&&(L.last_flush=-1),I;if(2===Ee&&(1===Se?S._tr_align(L):5!==Se&&(S._tr_stored_block(L,0,0,!1),3===Se&&(Tt(L.head),0===L.lookahead&&(L.strstart=0,L.block_start=0,L.insert=0))),me(v),0===v.avail_out))return L.last_flush=-1,I}return 4!==Se?I:L.wrap<=0?1:(2===L.wrap?(bt(L,255&v.adler),bt(L,v.adler>>8&255),bt(L,v.adler>>16&255),bt(L,v.adler>>24&255),bt(L,255&v.total_in),bt(L,v.total_in>>8&255),bt(L,v.total_in>>16&255),bt(L,v.total_in>>24&255)):(it(L,v.adler>>>16),it(L,65535&v.adler)),me(v),0=J.w_size&&(0===Z&&(Tt(J.head),J.strstart=0,J.block_start=0,J.insert=0),je=new R.Buf8(J.w_size),R.arraySet(je,Se,Xe-J.w_size,J.w_size,0),Se=je,Xe=J.w_size),de=v.avail_in,Ee=v.next_in,ce=v.input,v.avail_in=Xe,v.next_in=0,v.input=Se,Zi(J);J.lookahead>=ye;){for(L=J.strstart,O=J.lookahead-(ye-1);J.ins_h=(J.ins_h<>>=ye=Fe>>>24,K-=ye,0==(ye=Fe>>>16&255))Me[W++]=65535&Fe;else{if(!(16&ye)){if(!(64&ye)){Fe=oe[(65535&Fe)+(j&(1<>>=ye,K-=ye),K<15&&(j+=x[P++]<>>=ye=Fe>>>24,K-=ye,!(16&(ye=Fe>>>16&255))){if(!(64&ye)){Fe=te[(65535&Fe)+(j&(1<>>=ye,K-=ye,(ye=W-V)>3,j&=(1<<(K-=Ge<<3))-1,F.next_in=P,F.next_out=W,F.avail_in=P>>24&255)+(H>>>8&65280)+((65280&H)<<8)+((255&H)<<24)}function j(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new F.Buf16(320),this.work=new F.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function K(H){var Ce;return H&&H.state?(H.total_in=H.total_out=(Ce=H.state).total=0,H.msg="",Ce.wrap&&(H.adler=1&Ce.wrap),Ce.mode=B,Ce.last=0,Ce.havedict=0,Ce.dmax=32768,Ce.head=null,Ce.hold=0,Ce.bits=0,Ce.lencode=Ce.lendyn=new F.Buf32(M),Ce.distcode=Ce.distdyn=new F.Buf32(N),Ce.sane=1,Ce.back=-1,$):I}function oe(H){var Ce;return H&&H.state?((Ce=H.state).wsize=0,Ce.whave=0,Ce.wnext=0,K(H)):I}function te(H,Ce){var x,Me;return H&&H.state?(Me=H.state,Ce<0?(x=0,Ce=-Ce):(x=1+(Ce>>4),Ce<48&&(Ce&=15)),Ce&&(Ce<8||15=Le.wsize?(F.arraySet(Le.window,Ce,x-Le.wsize,Le.wsize,0),Le.wnext=0,Le.whave=Le.wsize):(Me<(Rt=Le.wsize-Le.wnext)&&(Rt=Me),F.arraySet(Le.window,Ce,x-Me,Rt,Le.wnext),(Me-=Rt)?(F.arraySet(Le.window,Ce,x-Me,Me,0),Le.wnext=Me,Le.whave=Le.wsize):(Le.wnext+=Rt,Le.wnext===Le.wsize&&(Le.wnext=0),Le.whave>>8&255,x.check=S(x.check,Z,2,0),le=me=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&me)<<8)+(me>>8))%31){H.msg="incorrect header check",x.mode=30;break}if(8!=(15&me)){H.msg="unknown compression method",x.mode=30;break}if(le-=4,v=8+(15&(me>>>=4)),0===x.wbits)x.wbits=v;else if(v>x.wbits){H.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(Z[0]=255&me,Z[1]=me>>>8&255,x.check=S(x.check,Z,2,0)),le=me=0,x.mode=3;case 3:for(;le<32;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>8&255,Z[2]=me>>>16&255,Z[3]=me>>>24&255,x.check=S(x.check,Z,4,0)),le=me=0,x.mode=4;case 4:for(;le<16;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>8),512&x.flags&&(Z[0]=255&me,Z[1]=me>>>8&255,x.check=S(x.check,Z,2,0)),le=me=0,x.mode=5;case 5:if(1024&x.flags){for(;le<16;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>8&255,x.check=S(x.check,Z,2,0)),le=me=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(Ve<(Qe=x.length)&&(Qe=Ve),Qe&&(x.head&&(v=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),F.arraySet(x.head.extra,Me,Le,Qe,v)),512&x.flags&&(x.check=S(x.check,Me,Qe,Le)),Ve-=Qe,Le+=Qe,x.length-=Qe),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(0===Ve)break e;for(Qe=0;v=Me[Le+Qe++],x.head&&v&&x.length<65536&&(x.head.name+=String.fromCharCode(v)),v&&Qe>9&1,x.head.done=!0),H.adler=x.check=0,x.mode=12;break;case 10:for(;le<32;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>=7&le,le-=7&le,x.mode=27;break}for(;le<3;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>=1)){case 0:x.mode=14;break;case 1:if(Ge(x),x.mode=20,6!==Ce)break;me>>>=2,le-=2;break e;case 2:x.mode=17;break;case 3:H.msg="invalid block type",x.mode=30}me>>>=2,le-=2;break;case 14:for(me>>>=7&le,le-=7≤le<32;){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>16^65535)){H.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&me,le=me=0,x.mode=15,6===Ce)break e;case 15:x.mode=16;case 16:if(Qe=x.length){if(Ve>>=5)),le-=5,x.ncode=4+(15&(me>>>=5)),me>>>=4,le-=4,286>>=3,le-=3}for(;x.have<19;)x.lens[de[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,Se=U(0,x.lens,0,19,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>=Wt,le-=Wt,x.lens[x.have++]=cn;else{if(16===cn){for(L=Wt+2;le>>=Wt,le-=Wt,0===x.have){H.msg="invalid bit length repeat",x.mode=30;break}v=x.lens[x.have-1],Qe=3+(3&me),me>>>=2,le-=2}else if(17===cn){for(L=Wt+3;le>>=Wt)),me>>>=3,le-=3}else{for(L=Wt+7;le>>=Wt)),me>>>=7,le-=7}if(x.have+Qe>x.nlen+x.ndist){H.msg="invalid bit length repeat",x.mode=30;break}for(;Qe--;)x.lens[x.have++]=v}}if(30===x.mode)break;if(0===x.lens[256]){H.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,Se=U(1,x.lens,0,x.nlen,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,Se=U(2,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,J={bits:x.distbits}),x.distbits=J.bits,Se){H.msg="invalid distances set",x.mode=30;break}if(x.mode=20,6===Ce)break e;case 20:x.mode=21;case 21:if(6<=Ve&&258<=Tt){H.next_out=Vt,H.avail_out=Tt,H.next_in=Le,H.avail_in=Ve,x.hold=me,x.bits=le,P(H,it),Vt=H.next_out,Rt=H.output,Tt=H.avail_out,Le=H.next_in,Me=H.input,Ve=H.avail_in,me=x.hold,le=x.bits,12===x.mode&&(x.back=-1);break}for(x.back=0;ni=(O=x.lencode[me&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,me+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(me>>>=Wt,le-=Wt,x.back+=Wt,x.length=cn,0===ni){x.mode=26;break}if(32&ni){x.back=-1,x.mode=12;break}if(64&ni){H.msg="invalid literal/length code",x.mode=30;break}x.extra=15&ni,x.mode=22;case 22:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;ni=(O=x.distcode[me&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,me+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,me+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(me>>>=Wt,le-=Wt,x.back+=Wt,64&ni){H.msg="invalid distance code",x.mode=30;break}x.offset=cn,x.extra=15&ni,x.mode=24;case 24:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){H.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(0===Tt)break e;if(x.offset>(Qe=it-Tt)){if((Qe=x.offset-Qe)>x.whave&&x.sane){H.msg="invalid distance too far back",x.mode=30;break}Zi=Qe>x.wnext?x.wsize-(Qe-=x.wnext):x.wnext-Qe,Qe>x.length&&(Qe=x.length),Fn=x.window}else Fn=Rt,Zi=Vt-x.offset,Qe=x.length;for(Ttwe?(ye=Zi[Fn+N[Ce]],le[bt+N[Ce]]):(ye=96,0),j=1<>Vt)+(K-=j)]=Fe<<24|ye<<16|Ge|0,0!==K;);for(j=1<>=1;if(0!==j?(me&=j-1,me+=j):me=0,Ce++,0==--it[H]){if(H===Me)break;H=V[$+N[Ce]]}if(Rt>>7)]}function bt(O,Z){O.pending_buf[O.pending++]=255&Z,O.pending_buf[O.pending++]=Z>>>8&255}function it(O,Z,de){O.bi_valid>E-de?(O.bi_buf|=Z<>E-O.bi_valid,O.bi_valid+=de-E):(O.bi_buf|=Z<>>=1,de<<=1,0<--Z;);return de>>>1}function Fn(O,Z,de){var Ee,ce,je=new Array(N+1),Xe=0;for(Ee=1;Ee<=N;Ee++)je[Ee]=Xe=Xe+de[Ee-1]<<1;for(ce=0;ce<=Z;ce++){var ze=O[2*ce+1];0!==ze&&(O[2*ce]=Zi(je[ze]++,ze))}}function Wt(O){var Z;for(Z=0;Z<$;Z++)O.dyn_ltree[2*Z]=0;for(Z=0;Z>1;1<=de;de--)Ui(O,je,de);for(ce=ut;de=O.heap[1],O.heap[1]=O.heap[O.heap_len--],Ui(O,je,1),Ee=O.heap[1],O.heap[--O.heap_max]=de,O.heap[--O.heap_max]=Ee,je[2*ce]=je[2*de]+je[2*Ee],O.depth[ce]=(O.depth[de]>=O.depth[Ee]?O.depth[de]:O.depth[Ee])+1,je[2*de+1]=je[2*Ee+1]=ce,O.heap[1]=ce++,Ui(O,je,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(Kt,go){var ws,_o,Mo,Ti,_c,xs,ar=go.dyn_tree,bc=go.max_code,Ag=go.stat_desc.static_tree,Ds=go.stat_desc.has_stree,vc=go.stat_desc.extra_bits,Sh=go.stat_desc.extra_base,Qr=go.stat_desc.max_length,yc=0;for(Ti=0;Ti<=N;Ti++)Kt.bl_count[Ti]=0;for(ar[2*Kt.heap[Kt.heap_max]+1]=0,ws=Kt.heap_max+1;ws<573;ws++)Qr<(Ti=ar[2*ar[2*(_o=Kt.heap[ws])+1]+1]+1)&&(Ti=Qr,yc++),ar[2*_o+1]=Ti,bc<_o||(Kt.bl_count[Ti]++,_c=0,Sh<=_o&&(_c=vc[_o-Sh]),Kt.opt_len+=(xs=ar[2*_o])*(Ti+_c),Ds&&(Kt.static_len+=xs*(Ag[2*_o+1]+_c)));if(0!==yc){do{for(Ti=Qr-1;0===Kt.bl_count[Ti];)Ti--;Kt.bl_count[Ti]--,Kt.bl_count[Ti+1]+=2,Kt.bl_count[Qr]--,yc-=2}while(0>=7;ce>>=1)if(1&oi&&0!==ze.dyn_ltree[2*ut])return 0;if(0!==ze.dyn_ltree[18]||0!==ze.dyn_ltree[20]||0!==ze.dyn_ltree[26])return 1;for(ut=32;ut>>3)<=(ce=O.opt_len+3+7>>>3)&&(ce=je)):ce=je=de+5,de+4<=ce&&-1!==Z?L(O,Z,de,Ee):4===O.strategy||je===ce?(it(O,2+(Ee?1:0),3),rr(O,ht,H)):(it(O,4+(Ee?1:0),3),function(ze,ut,oi,Kt){var go;for(it(ze,ut-257,5),it(ze,oi-1,5),it(ze,Kt-4,4),go=0;go>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&Z,O.pending_buf[O.l_buf+O.last_lit]=255&de,O.last_lit++,0===Z?O.dyn_ltree[2*de]++:(O.matches++,Z--,O.dyn_ltree[2*(x[de]+V+1)]++,O.dyn_dtree[2*le(Z)]++),O.last_lit===O.lit_bufsize-1},Y._tr_align=function(O){var Z;it(O,2,3),Qe(O,256,ht),16===(Z=O).bi_valid?(bt(Z,Z.bi_buf),Z.bi_buf=0,Z.bi_valid=0):8<=Z.bi_valid&&(Z.pending_buf[Z.pending++]=255&Z.bi_buf,Z.bi_buf>>=8,Z.bi_valid-=8)}},{"../utils/common":41}],53:[function(G,Re,Y){"use strict";Re.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(G,Re,Y){(function(F){!function(R,S){"use strict";if(!R.setImmediate){var P,U,W,V,$=1,I={},B=!1,M=R.document,N=Object.getPrototypeOf&&Object.getPrototypeOf(R);N=N&&N.setTimeout?N:R,P="[object process]"==={}.toString.call(R.process)?function(oe){process.nextTick(function(){j(oe)})}:function(){if(R.postMessage&&!R.importScripts){var oe=!0,te=R.onmessage;return R.onmessage=function(){oe=!1},R.postMessage("","*"),R.onmessage=te,oe}}()?(V="setImmediate$"+Math.random()+"$",R.addEventListener?R.addEventListener("message",K,!1):R.attachEvent("onmessage",K),function(oe){R.postMessage(V+oe,"*")}):R.MessageChannel?((W=new MessageChannel).port1.onmessage=function(oe){j(oe.data)},function(oe){W.port2.postMessage(oe)}):M&&"onreadystatechange"in M.createElement("script")?(U=M.documentElement,function(oe){var te=M.createElement("script");te.onreadystatechange=function(){j(oe),te.onreadystatechange=null,U.removeChild(te),te=null},U.appendChild(te)}):function(oe){setTimeout(j,0,oe)},N.setImmediate=function(oe){"function"!=typeof oe&&(oe=new Function(""+oe));for(var te=new Array(arguments.length-1),Te=0;Te"u"?void 0===F?this:F:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)}},ld=>{ld(ld.s=536)}]); \ No newline at end of file +(self.webpackChunkui=self.webpackChunkui||[]).push([[590],{536:(ld,q,Re)=>{"use strict";let S=null,$=1;const W=Symbol("SIGNAL");function V(t){const n=S;return S=t,n}function j(t){if((!H(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==$)){if(!t.producerMustRecompute(t)&&!Fe(t))return t.dirty=!1,void(t.lastCleanEpoch=$);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=$}}function Fe(t){Ce(t);for(let n=0;n0}function Ce(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}let fe=null;function J(t){return"function"==typeof t}function L(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const O=L(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Z(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class de{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(J(i))try{i()}catch(r){n=r instanceof O?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{je(r)}catch(a){n=n??[],a instanceof O?n=[...n,...a.errors]:n.push(a)}}if(n)throw new O(n)}}add(n){var e;if(n&&n!==this)if(this.closed)je(n);else{if(n instanceof de){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Z(e,n)}remove(n){const{_finalizers:e}=this;e&&Z(e,n),n instanceof de&&n._removeParent(this)}}de.EMPTY=(()=>{const t=new de;return t.closed=!0,t})();const Ee=de.EMPTY;function ce(t){return t instanceof de||t&&"closed"in t&&J(t.remove)&&J(t.add)&&J(t.unsubscribe)}function je(t){J(t)?t():t.unsubscribe()}const Je={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ze={setTimeout(t,n,...e){const{delegate:i}=ze;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=ze;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function ut(t){ze.setTimeout(()=>{const{onUnhandledError:n}=Je;if(!n)throw t;n(t)})}function oi(){}const Kt=_o("C",void 0,void 0);function _o(t,n,e){return{kind:t,value:n,error:e}}let Mo=null;function Ti(t){if(Je.useDeprecatedSynchronousErrorHandling){const n=!Mo;if(n&&(Mo={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Mo;if(Mo=null,e)throw i}}else t()}class xs extends de{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ce(n)&&n.add(this)):this.destination=yc}static create(n,e,i){return new Ds(n,e,i)}next(n){this.isStopped?Qr(function ws(t){return _o("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qr(function go(t){return _o("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qr(Kt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const sr=Function.prototype.bind;function bc(t,n){return sr.call(t,n)}class Ag{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){vc(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){vc(i)}else vc(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){vc(e)}}}class Ds extends xs{constructor(n,e,i){let o;if(super(),J(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Je.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&bc(n.next,r),error:n.error&&bc(n.error,r),complete:n.complete&&bc(n.complete,r)}):o=n}this.destination=new Ag(o)}}function vc(t){Je.useDeprecatedSynchronousErrorHandling?function _c(t){Je.useDeprecatedSynchronousErrorHandling&&Mo&&(Mo.errorThrown=!0,Mo.error=t)}(t):ut(t)}function Qr(t,n){const{onStoppedNotification:e}=Je;e&&ze.setTimeout(()=>e(t,n))}const yc={closed:!0,next:oi,error:function Sh(t){throw t},complete:oi},Pg="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ra(t){return t}function Tw(t){return 0===t.length?Ra:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let li=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function ZN(t){return t&&t instanceof xs||function KN(t){return t&&J(t.next)&&J(t.error)&&J(t.complete)}(t)&&ce(t)}(e)?e:new Ds(e,i,o);return Ti(()=>{const{operator:a,source:s}=this;r.add(a?a.call(r,s):s?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Iw(i))((o,r)=>{const a=new Ds({next:s=>{try{e(s)}catch(c){r(c),a.unsubscribe()}},error:r,complete:o});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Pg](){return this}pipe(...e){return Tw(e)(this)}toPromise(e){return new(e=Iw(e))((i,o)=>{let r;this.subscribe(a=>r=a,a=>o(a),()=>i(r))})}}return t.create=n=>new t(n),t})();function Iw(t){var n;return null!==(n=t??Je.Promise)&&void 0!==n?n:Promise}const YN=L(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let qe=(()=>{class t extends li{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Ew(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new YN}next(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?Ee:(this.currentObservers=null,r.push(e),new de(()=>{this.currentObservers=null,Z(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new li;return e.source=this,e}}return t.create=(n,e)=>new Ew(n,e),t})();class Ew extends qe{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:Ee}}class mt extends qe{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Ow(t){return J(t?.lift)}function $i(t){return n=>{if(Ow(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Fi(t,n,e,i,o){return new QN(t,n,e,i,o)}class QN extends xs{constructor(n,e,i,o,r,a){super(n),this.onFinalize=r,this.shouldUnsubscribe=a,this._next=e?function(s){try{e(s)}catch(c){n.error(c)}}:super._next,this._error=o?function(s){try{o(s)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function nt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{i.next(t.call(n,r,o++))}))})}const Aw="https://g.co/ng/security#xss";class ue extends Error{constructor(n,e){super(function Cc(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function Rg(t){return n=>{setTimeout(t,void 0,n)}}const Ne=class XN extends qe{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,r=e||(()=>null),a=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(r=Rg(r),o&&(o=Rg(o)),a&&(a=Rg(a)));const s=super.subscribe({next:o,error:r,complete:a});return n instanceof de&&n.add(s),s}};var $t=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}($t||{});function yn(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(yn).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function Ng(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}var Mh=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(Mh||{}),cr=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}(cr||{});function Xr(t){return{toString:t}.toString()}const di=globalThis,kr={},Jt=[];function mi(t){for(let n in t)if(t[n]===mi)return n;throw Error("Could not find renamed property on target object.")}function iF(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}const dd=mi({\u0275cmp:mi}),Fg=mi({\u0275dir:mi}),Lg=mi({\u0275pipe:mi}),Nw=mi({\u0275mod:mi}),Jr=mi({\u0275fac:mi}),ud=mi({__NG_ELEMENT_ID__:mi}),Fw=mi({__NG_ENV_ID__:mi});var ge=function(t){return t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",t}(ge||{});function Lw(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const r=n.length;if(o+r===i||t.charCodeAt(o+r)<=32)return o}e=o+1}}function Bg(t,n,e){let i=0;for(;in){a=r-1;break}}}for(;rr?"":o[g+1].toLowerCase();const w=8&i?b:null;if(w&&-1!==Lw(w,u,0)||2&i&&u!==b){if(lr(i))return!1;a=!0}}}}else{if(!a&&!lr(i)&&!lr(c))return!1;if(a&&lr(c))continue;a=!1,i=c|1&i}}return lr(i)||a}function lr(t){return 0==(1&t)}function aF(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+s+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!lr(a)&&(n+=$w(r,o),o=""),i=a,r=r||!lr(i);e++}return""!==o&&(n+=$w(r,o)),n}function Ie(t){return Xr(()=>{const n=qw(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Mh.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||cr.Emulated,styles:t.styles||Jt,_:null,schemas:t.schemas||null,tView:null,id:""};Ww(e);const i=t.dependencies;return e.directiveDefs=Th(i,!1),e.pipeDefs=Th(i,!0),e.id=function _F(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function pF(t){return Ht(t)||Cn(t)}function fF(t){return null!==t}function st(t){return Xr(()=>({type:t.type,bootstrap:t.bootstrap||Jt,declarations:t.declarations||Jt,imports:t.imports||Jt,exports:t.exports||Jt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Gw(t,n){if(null==t)return kr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,a,s=ge.None;Array.isArray(o)?(s=o[0],r=o[1],a=o[2]??r):(r=o,a=o),n?(e[r]=s!==ge.None?[i,s]:i,n[r]=a):e[r]=i}return e}function Q(t){return Xr(()=>{const n=qw(t);return Ww(n),n})}function bo(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ht(t){return t[dd]||null}function Cn(t){return t[Fg]||null}function Ln(t){return t[Lg]||null}function Un(t,n){const e=t[Nw]||null;if(!e&&!0===n)throw new Error(`Type ${yn(t)} does not have '\u0275mod' property.`);return e}function qw(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||kr,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Jt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Gw(t.inputs,n),outputs:Gw(t.outputs),debugInfo:null}}function Ww(t){t.features?.forEach(n=>n(t))}function Th(t,n){if(!t)return null;const e=n?Ln:pF;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(fF)}const Vi=0,He=1,ct=2,Ji=3,dr=4,$n=5,ur=6,wc=7,Ii=8,Gn=9,ea=10,Et=11,md=12,Kw=13,xc=14,Gi=15,pd=16,Dc=17,ta=18,fd=19,Zw=20,La=21,Ih=22,Ss=23,Ot=25,Vg=1,Mr=7,Sc=9,en=10;var jg=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(jg||{});function qn(t){return Array.isArray(t)&&"object"==typeof t[Vg]}function Wn(t){return Array.isArray(t)&&!0===t[Vg]}function zg(t){return 0!=(4&t.flags)}function ks(t){return t.componentOffset>-1}function Oh(t){return 1==(1&t.flags)}function hr(t){return!!t.template}function Hg(t){return 0!=(512&t[ct])}const Jw="svg";let tx=!1;function bi(t){for(;Array.isArray(t);)t=t[Vi];return t}function _d(t,n){return bi(n[t])}function io(t,n){return bi(n[t.index])}function bd(t,n){return t.data[n]}function kc(t,n){return t[n]}function Eo(t,n){const e=n[t];return qn(e)?e:e[Vi]}function qg(t){return 128==(128&t[ct])}function Tr(t,n){return null==n?null:t[n]}function ix(t){t[Dc]=0}function SF(t){1024&t[ct]||(t[ct]|=1024,qg(t)&&vd(t))}function Wg(t){return!!(9216&t[ct]||t[Ss]?.dirty)}function Kg(t){Wg(t)?vd(t):64&t[ct]&&(function CF(){return tx}()?(t[ct]|=1024,vd(t)):t[ea].changeDetectionScheduler?.notify())}function vd(t){t[ea].changeDetectionScheduler?.notify();let n=Ms(t);for(;null!==n&&!(8192&n[ct])&&(n[ct]|=8192,qg(n));)n=Ms(n)}function Ah(t,n){if(256==(256&t[ct]))throw new ue(911,!1);null===t[La]&&(t[La]=[]),t[La].push(n)}function Ms(t){const n=t[Ji];return Wn(n)?n[Ji]:n}const Dt={lFrame:hx(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function rx(){return Dt.bindingsEnabled}function Mc(){return null!==Dt.skipHydrationRootTNode}function be(){return Dt.lFrame.lView}function Gt(){return Dt.lFrame.tView}function ie(t){return Dt.lFrame.contextLView=t,t[Ii]}function ne(t){return Dt.lFrame.contextLView=null,t}function pi(){let t=ax();for(;null!==t&&64===t.type;)t=t.parent;return t}function ax(){return Dt.lFrame.currentTNode}function Ir(t,n){const e=Dt.lFrame;e.currentTNode=t,e.isParent=n}function Yg(){return Dt.lFrame.isParent}function Qg(){Dt.lFrame.isParent=!1}function no(){const t=Dt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ia(){return Dt.lFrame.bindingIndex}function mr(){return Dt.lFrame.bindingIndex++}function na(t){const n=Dt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function FF(t,n){const e=Dt.lFrame;e.bindingIndex=e.bindingRootIndex=t,Xg(n)}function Xg(t){Dt.lFrame.currentDirectiveIndex=t}function Jg(t){const n=Dt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e_(){return Dt.lFrame.currentQueryIndex}function Ph(t){Dt.lFrame.currentQueryIndex=t}function BF(t){const n=t[He];return 2===n.type?n.declTNode:1===n.type?t[$n]:null}function dx(t,n,e){if(e&$t.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&$t.Host||(o=BF(r),null===o||(r=r[xc],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Dt.lFrame=ux();return i.currentTNode=n,i.lView=t,!0}function t_(t){const n=ux(),e=t[He];Dt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function ux(){const t=Dt.lFrame,n=null===t?null:t.child;return null===n?hx(t):n}function hx(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function mx(){const t=Dt.lFrame;return Dt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const px=mx;function i_(){const t=mx();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Kn(){return Dt.lFrame.selectedIndex}function Ts(t){Dt.lFrame.selectedIndex=t}function Ei(){const t=Dt.lFrame;return bd(t.tView,t.selectedIndex)}function ei(){Dt.lFrame.currentNamespace=Jw}function pr(){!function zF(){Dt.lFrame.currentNamespace=null}()}let gx=!0;function Rh(){return gx}function Ba(t){gx=t}function HF(){return Tc(pi(),be())}function Tc(t,n){return new Be(io(t,n))}let r_,Be=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=HF}return t})();function _x(t){return t instanceof Be?t.nativeElement:t}function Ic(t,n){t.forEach(e=>Array.isArray(e)?Ic(e,n):n(e))}function bx(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Nh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Oo(t,n,e){let i=Ec(t,n);return i>=0?t[1|i]=e:(i=~i,function vx(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function o_(t,n){const e=Ec(t,n);if(e>=0)return t[1|e]}function Ec(t,n){return function yx(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),a=t[r<n?o=r:i=r+1}return~(o<YF}),YF="ng",Sx=new se(""),ra=new se("",{providedIn:"platform",factory:()=>"unknown"}),ui=new se(""),s_=new se("",{providedIn:"root",factory:()=>Va().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),JF=mi({__forward_ref__:mi});function Qt(t){return t.__forward_ref__=Qt,t.toString=function(){return yn(this())},t}function wt(t){return Hh(t)?t():t}function Hh(t){return"function"==typeof t&&t.hasOwnProperty(JF)&&t.__forward_ref__===Qt}function h_(t){return t&&!!t.\u0275providers}function At(t){return"string"==typeof t?t:null==t?"":String(t)}function m_(t,n){throw new ue(-201,!1)}let p_;function Mx(){return p_}function yo(t){const n=p_;return p_=t,n}function Tx(t,n,e){const i=Vh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&$t.Optional?null:void 0!==n?n:void m_()}const xd={},f_="__NG_DI_FLAG__",Uh="ngTempTokenPath",a3=/\n/gm,Ix="__source";let Oc;function ja(t){const n=Oc;return Oc=t,n}function l3(t,n=$t.Default){if(void 0===Oc)throw new ue(-203,!1);return null===Oc?Tx(t,void 0,n):Oc.get(t,n&$t.Optional?null:void 0,n)}function X(t,n=$t.Default){return(Mx()||l3)(wt(t),n)}function De(t,n=$t.Default){return X(t,$h(n))}function $h(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function g_(t){const n=[];for(let e=0;enull;function D_(t,n,e=!1){return Ox(t,n,e)}const Fc="__parameters__";function Bc(t,n,e){return Xr(()=>{const i=function T_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const a=new o(...r);return s.annotation=a,s;function s(c,u,p){const g=c.hasOwnProperty(Fc)?c[Fc]:Object.defineProperty(c,Fc,{value:[]})[Fc];for(;g.length<=p;)g.push(null);return(g[p]=g[p]||[]).push(a),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const za=Dd(Bc("Optional"),8),Vc=Dd(Bc("SkipSelf"),4);function Is(t,n){return t.hasOwnProperty(Jr)?t[Jr]:null}const Es=new se(""),Lx=new se("",-1),I_=new se("");class Yh{get(n,e=xd){if(e===xd){const i=new Error(`NullInjectorError: No provider for ${yn(n)}!`);throw i.name="NullInjectorError",i}return e}}function D3(...t){return{\u0275providers:Bx(0,t),\u0275fromNgModule:!0}}function Bx(t,...n){const e=[],i=new Set;let o;const r=a=>{e.push(a)};return Ic(n,a=>{const s=a;Xh(s,r,[],i)&&(o||=[],o.push(s))}),void 0!==o&&Vx(o,r),e}function Vx(t,n){for(let e=0;e{n(r,i)})}}function Xh(t,n,e,i){if(!(t=wt(t)))return!1;let o=null,r=jh(t);const a=!r&&Ht(t);if(r||a){if(a&&!a.standalone)return!1;o=t}else{const c=t.ngModule;if(r=jh(c),!r)return!1;o=c}const s=i.has(o);if(a){if(s)return!1;if(i.add(o),a.dependencies){const c="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const u of c)Xh(u,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!s){let u;i.add(o);try{Ic(r.imports,p=>{Xh(p,n,e,i)&&(u||=[],u.push(p))})}finally{}void 0!==u&&Vx(u,n)}if(!s){const u=Is(o)||(()=>new o);n({provide:o,useFactory:u,deps:Jt},o),n({provide:I_,useValue:o,multi:!0},o),n({provide:Es,useValue:()=>X(o),multi:!0},o)}const c=r.providers;if(null!=c&&!s){const u=t;E_(c,p=>{n(p,u)})}}}return o!==t&&void 0!==t.providers}function E_(t,n){for(let e of t)h_(e)&&(e=e.\u0275providers),Array.isArray(e)?E_(e,n):n(e)}const S3=mi({provide:String,useValue:mi});function O_(t){return null!==t&&"object"==typeof t&&S3 in t}function Os(t){return"function"==typeof t}const A_=new se(""),Jh={},M3={};let P_;function em(){return void 0===P_&&(P_=new Yh),P_}class Ao{}class jc extends Ao{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,N_(n,a=>this.processProvider(a)),this.records.set(Lx,zc(void 0,this)),o.has("environment")&&this.records.set(Ao,zc(void 0,this));const r=this.records.get(A_);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(I_,Jt,$t.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=ja(this),i=yo(void 0);try{return n()}finally{ja(e),yo(i)}}get(n,e=xd,i=$t.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Fw))return n[Fw](this);i=$h(i);const r=ja(this),a=yo(void 0);try{if(!(i&$t.SkipSelf)){let c=this.records.get(n);if(void 0===c){const u=function A3(t){return"function"==typeof t||"object"==typeof t&&t instanceof se}(n)&&Vh(n);c=u&&this.injectableDefInScope(u)?zc(R_(n),Jh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&$t.Self?em():this.parent).get(n,e=i&$t.Optional&&e===xd?null:e)}catch(s){if("NullInjectorError"===s.name){if((s[Uh]=s[Uh]||[]).unshift(yn(n)),r)throw s;return function u3(t,n,e,i){const o=t[Uh];throw n[Ix]&&o.unshift(n[Ix]),t.message=function h3(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=yn(n);if(Array.isArray(n))o=n.map(yn).join(" -> ");else if("object"==typeof n){let r=[];for(let a in n)if(n.hasOwnProperty(a)){let s=n[a];r.push(a+":"+("string"==typeof s?JSON.stringify(s):yn(s)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(a3,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[Uh]=null,t}(s,n,"R3InjectorError",this.source)}throw s}finally{yo(a),ja(r)}}resolveInjectorInitializers(){const n=ja(this),e=yo(void 0);try{const o=this.get(Es,Jt,$t.Self);for(const r of o)r()}finally{ja(n),yo(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(yn(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ue(205,!1)}processProvider(n){let e=Os(n=wt(n))?n:wt(n&&n.provide);const i=function I3(t){return O_(t)?zc(void 0,t.useValue):zc(Hx(t),Jh)}(n);if(!Os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=zc(void 0,Jh,!0),o.factory=()=>g_(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===Jh&&(e.value=M3,e.value=e.factory()),"object"==typeof e.value&&e.value&&function O3(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=wt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function R_(t){const n=Vh(t),e=null!==n?n.factory:Is(t);if(null!==e)return e;if(t instanceof se)throw new ue(204,!1);if(t instanceof Function)return function T3(t){if(t.length>0)throw new ue(204,!1);const e=function KF(t){return t&&(t[zh]||t[Dx])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new ue(204,!1)}function Hx(t,n,e){let i;if(Os(t)){const o=wt(t);return Is(o)||R_(o)}if(O_(t))i=()=>wt(t.useValue);else if(function zx(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...g_(t.deps||[]));else if(function jx(t){return!(!t||!t.useExisting)}(t))i=()=>X(wt(t.useExisting));else{const o=wt(t&&(t.useClass||t.provide));if(!function E3(t){return!!t.deps}(t))return Is(o)||R_(o);i=()=>new o(...g_(t.deps))}return i}function zc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function N_(t,n){for(const e of t)Array.isArray(e)?N_(e,n):e&&h_(e)?N_(e.\u0275providers,n):n(e)}function Ha(t,n){t instanceof jc&&t.assertNotDestroyed();const i=ja(t),o=yo(void 0);try{return n()}finally{ja(i),yo(o)}}class H3{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function $x(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function fi(){return Gx}function Gx(t){return t.type.prototype.ngOnChanges&&(t.setInput=$3),U3}function U3(){const t=Wx(this),n=t?.current;if(n){const e=t.previous;if(e===kr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function $3(t,n,e,i,o){const r=this.declaredInputs[i],a=Wx(t)||function G3(t,n){return t[qx]=n}(t,{previous:kr,current:null}),s=a.current||(a.current={}),c=a.previous,u=c[r];s[r]=new H3(u&&u.currentValue,e,c===kr),$x(t,n,o,e)}fi.ngInherit=!0;const qx="__ngSimpleChanges__";function Wx(t){return t[qx]||null}const Er=function(t,n,e){};function im(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[Dc]+=65536),(s>14>16&&(3&t[ct])===n&&(t[ct]+=16384,Zx(s,r)):Zx(s,r)}const Uc=-1;class Id{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function z_(t){return t!==Uc}function Ed(t){return 32767&t}function Od(t,n){let e=function J3(t){return t>>16}(t),i=n;for(;e>0;)i=i[xc],e--;return i}let H_=!0;function rm(t){const n=H_;return H_=t,n}const Yx=255,Qx=5;let eL=0;const Or={};function am(t,n){const e=Xx(t,n);if(-1!==e)return e;const i=n[He];i.firstCreatePass&&(t.injectorIndex=n.length,U_(i.data,t),U_(n,null),U_(i.blueprint,null));const o=sm(t,n),r=t.injectorIndex;if(z_(o)){const a=Ed(o),s=Od(o,n),c=s[He].data;for(let u=0;u<8;u++)n[r+u]=s[a+u]|c[a+u]}return n[r+8]=o,r}function U_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function Xx(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function sm(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=a1(o),null===i)return Uc;if(e++,o=o[xc],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Uc}function $_(t,n,e){!function tL(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ud)&&(i=e[ud]),null==i&&(i=e[ud]=eL++);const o=i&Yx;n.data[t+(o>>Qx)]|=1<=0?n&Yx:rL:n}(e);if("function"==typeof r){if(!dx(n,t,i))return i&$t.Host?Jx(o,0,i):e1(n,e,i,o);try{let a;if(a=r(i),null!=a||i&$t.Optional)return a;m_()}finally{px()}}else if("number"==typeof r){let a=null,s=Xx(t,n),c=Uc,u=i&$t.Host?n[Gi][$n]:null;for((-1===s||i&$t.SkipSelf)&&(c=-1===s?sm(t,n):n[s+8],c!==Uc&&r1(i,!1)?(a=n[He],s=Ed(c),n=Od(c,n)):s=-1);-1!==s;){const p=n[He];if(o1(r,s,p.data)){const g=nL(s,n,e,a,i,u);if(g!==Or)return g}c=n[s+8],c!==Uc&&r1(i,n[He].data[s+8]===u)&&o1(r,s,n)?(a=p,s=Ed(c),n=Od(c,n)):s=-1}}return o}function nL(t,n,e,i,o,r){const a=n[He],s=a.data[t+8],p=cm(s,a,e,null==i?ks(s)&&H_:i!=a&&0!=(3&s.type),o&$t.Host&&r===s);return null!==p?As(n,a,p,s):Or}function cm(t,n,e,i,o){const r=t.providerIndexes,a=n.data,s=1048575&r,c=t.directiveStart,p=r>>20,b=o?s+p:t.directiveEnd;for(let w=i?s:s+p;w=c&&k.type===e)return w}if(o){const w=a[c];if(w&&hr(w)&&w.type===e)return c}return null}function As(t,n,e,i){let o=t[e];const r=n.data;if(function Z3(t){return t instanceof Id}(o)){const a=o;a.resolving&&function n3(t,n){throw n&&n.join(" > "),new ue(-200,t)}(function ri(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():At(t)}(r[e]));const s=rm(a.canSeeViewProviders);a.resolving=!0;const u=a.injectImpl?yo(a.injectImpl):null;dx(t,i,$t.Default);try{o=t[e]=a.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function W3(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const a=Gx(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==u&&yo(u),rm(s),a.resolving=!1,px()}}return o}function o1(t,n,e){return!!(e[n+(t>>Qx)]&1<{const n=t.prototype.constructor,e=n[Jr]||G_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Jr]||G_(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function G_(t){return Hh(t)?()=>{const n=G_(wt(t));return n&&n()}:Is(t)}function a1(t){const n=t[He],e=n.type;return 2===e?n.declTNode:1===e?t[$n]:null}function oo(t){return function iL(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{static#e=this.THROW_IF_NOT_FOUND=xd;static#t=this.NULL=new Yh;static create(e,i){if(Array.isArray(e))return u1({name:""},i,e,"");{const o=e.name??"";return u1({name:o},e.parent,e.providers,o)}}static#i=this.\u0275prov=ke({token:t,providedIn:"any",factory:()=>X(Lx)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function W_(t){return t.ngOriginalError}class Go{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&W_(n);for(;e&&W_(e);)e=W_(e);return e||null}}const p1=new se("",{providedIn:"root",factory:()=>De(Go).handleError.bind(void 0)}),g1=new se("",{providedIn:"root",factory:()=>!1});let um,hm;function qc(t){return function K_(){if(void 0===um&&(um=null,di.trustedTypes))try{um=di.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return um}()?.createHTML(t)||t}function Z_(){if(void 0===hm&&(hm=null,di.trustedTypes))try{hm=di.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hm}function _1(t){return Z_()?.createHTML(t)||t}function v1(t){return Z_()?.createScriptURL(t)||t}class Ps{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Aw})`}}class gL extends Ps{getTypeName(){return"HTML"}}class _L extends Ps{getTypeName(){return"Style"}}class bL extends Ps{getTypeName(){return"Script"}}class vL extends Ps{getTypeName(){return"URL"}}class yL extends Ps{getTypeName(){return"ResourceURL"}}function Po(t){return t instanceof Ps?t.changingThisBreaksApplicationSecurity:t}function Ar(t,n){const e=function CL(t){return t instanceof Ps&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${Aw})`)}return e===n}class ML{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(qc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=qc(n),e}}const EL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function mm(t){return(t=String(t)).match(EL)?t:"unsafe:"+t}function aa(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Ad(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const C1=aa("area,br,col,hr,img,wbr"),w1=aa("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x1=aa("rp,rt"),Y_=Ad(C1,Ad(w1,aa("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ad(x1,aa("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ad(x1,w1)),Q_=aa("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),D1=Ad(Q_,aa("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),aa("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),OL=aa("script,style,template");class AL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!Y_.hasOwnProperty(e))return this.sanitizedSomething=!0,!OL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();Y_.hasOwnProperty(e)&&!C1.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(S1(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const PL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,RL=/([^\#-~ |!])/g;function S1(t){return t.replace(/&/g,"&").replace(PL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(RL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pm;function k1(t,n){let e=null;try{pm=pm||function y1(t){const n=new TL(t);return function IL(){try{return!!(new window.DOMParser).parseFromString(qc(""),"text/html")}catch{return!1}}()?new ML(n):n}(t);let i=n?String(n):"";e=pm.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=pm.getInertBodyElement(i)}while(i!==r);return qc((new AL).sanitizeChildren(X_(e)||e))}finally{if(e){const i=X_(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function X_(t){return"content"in t&&function NL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Bn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Bn||{});function M1(t){const n=Pd();return n?_1(n.sanitize(Bn.HTML,t)||""):Ar(t,"HTML")?_1(Po(t)):k1(Va(),At(t))}function qo(t){const n=Pd();return n?n.sanitize(Bn.URL,t)||"":Ar(t,"URL")?Po(t):mm(At(t))}function T1(t){const n=Pd();if(n)return v1(n.sanitize(Bn.RESOURCE_URL,t)||"");if(Ar(t,"ResourceURL"))return v1(Po(t));throw new ue(904,!1)}function Pd(){const t=be();return t&&t[ea].sanitizer}const zL=/^>|^->||--!>|)/g,UL="\u200b$1\u200b";const J_=new Map;let KL=0;const tb="__ngContext__";function Zn(t,n){qn(n)?(t[tb]=n[fd],function YL(t){J_.set(t[fd],t)}(n)):t[tb]=n}function Ro(t){return t instanceof Function?t():t}var $a=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}($a||{});let rb;function ab(t,n){return rb(t,n)}function Kc(t,n,e,i,o){if(null!=i){let r,a=!1;Wn(i)?r=i:qn(i)&&(a=!0,i=i[Vi]);const s=bi(i);0===t&&null!==e?null==o?K1(n,e,s):Rs(n,e,s,o||null,!0):1===t&&null!==e?Rs(n,e,s,o||null,!0):2===t?function wm(t,n,e){const i=ym(t,n);i&&function v4(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,s,a):3===t&&n.destroyNode(s),null!=r&&function w4(t,n,e,i,o){const r=e[Mr];r!==bi(e)&&Kc(n,t,i,r,o);for(let s=en;sn.replace(HL,UL))}(n))}function bm(t,n,e){return t.createElement(n,e)}function G1(t,n){xm(t,n,n[Et],2,null,null)}function q1(t,n){const e=t[Sc],i=e.indexOf(n);e.splice(i,1)}function Nd(t,n){if(t.length<=en)return;const e=en+n,i=t[e];if(i){const o=i[pd];null!==o&&o!==t&&q1(o,i),n>0&&(t[e-1][dr]=i[dr]);const r=Nh(t,en+n);!function h4(t,n){G1(t,n),n[Vi]=null,n[$n]=null}(i[He],i);const a=r[ta];null!==a&&a.detachView(r[He]),i[Ji]=null,i[dr]=null,i[ct]&=-129}return i}function vm(t,n){if(!(256&n[ct])){const e=n[Et];e.destroyNode&&xm(t,n,e,3,null,null),function p4(t){let n=t[md];if(!n)return cb(t[He],t);for(;n;){let e=null;if(qn(n))e=n[md];else{const i=n[en];i&&(e=i)}if(!e){for(;n&&!n[dr]&&n!==t;)qn(n)&&cb(n[He],n),n=n[Ji];null===n&&(n=t),qn(n)&&cb(n[He],n),e=n&&n[dr]}n=e}}(n)}}function cb(t,n){if(!(256&n[ct])){n[ct]&=-129,n[ct]|=256,n[Ss]&&function ye(t){if(Ce(t),H(t))for(let n=0;n=0?i[a]():i[-a].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[wc]=null);const o=n[La];if(null!==o){n[La]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===cr.None||r===cr.Emulated)return null}return io(i,e)}}(t,n.parent,e)}function Rs(t,n,e,i,o){t.insertBefore(n,e,i,o)}function K1(t,n,e){t.appendChild(n,e)}function Z1(t,n,e,i,o){null!==i?Rs(t,n,e,i,o):K1(t,n,e)}function ym(t,n){return t.parentNode(n)}function Y1(t,n,e){return X1(t,n,e)}let db,X1=function Q1(t,n,e){return 40&t.type?io(t,e):null};function Cm(t,n,e,i){const o=lb(t,i,n),r=n[Et],s=Y1(i.parent||n[$n],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cOt&&rD(t,n,Ot,!1),Er(a?2:0,o),e(i,o)}finally{Ts(r),Er(a?3:1,o)}}function pb(t,n,e){if(zg(n)){const i=V(null);try{const r=n.directiveEnd;for(let a=n.directiveStart;anull;function dD(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const a=n[r];if(void 0===a)continue;i??={};let s,c=ge.None;Array.isArray(a)?(s=a[0],c=a[1]):s=a;let u=r;if(null!==o){if(!o.hasOwnProperty(r))continue;u=o[r]}0===t?uD(i,e,u,s,c):uD(i,e,u,s)}return i}function uD(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function wo(t,n,e,i,o,r,a,s){const c=io(n,e);let p,u=n.inputs;!s&&null!=u&&(p=u[i])?(wb(t,e,p,i,o),ks(n)&&function N4(t,n){const e=Eo(n,t);16&e[ct]||(e[ct]|=64)}(e,n.index)):3&n.type&&(i=function R4(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,r.setProperty(c,i,o))}function bb(t,n,e,i){if(rx()){const o=null===i?null:{"":-1},r=function z4(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=s&&a.push(s),a.push(e,i,r)}}(t,n,i,Ld(t,e,o.hostVars,Nt),o)}function Rr(t,n,e,i,o,r){const a=io(t,n);!function yb(t,n,e,i,o,r,a){if(null==r)t.removeAttribute(n,o,e);else{const s=null==a?At(r):a(r,i||"",o);t.setAttribute(n,o,s,e)}}(n[Et],a,r,t.value,e,i,o)}function W4(t,n,e,i,o,r){const a=r[n];if(null!==a)for(let s=0;s0&&(e[o-1][dr]=n),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{vd(t.lView)},consumerOnSignalRead(){this.lView[Ss]=this}};function wD(t){return DD(t[md])}function xD(t){return DD(t[dr])}function DD(t){for(;null!==t&&!Wn(t);)t=t[dr];return t}function Mm(t,n=!0,e=0){const i=t[ea],o=i.rendererFactory;o.begin?.();try{!function r5(t,n){Sb(t,n);let e=0;for(;Wg(t);){if(100===e)throw new ue(103,!1);e++,Sb(t,1)}}(t,e)}catch(a){throw n&&km(t,a),a}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function a5(t,n,e,i){const o=n[ct];if(256==(256&o))return;n[ea].inlineEffectRunner?.flush(),t_(n);let a=null,s=null;(function s5(t){return 2!==t.type})(t)&&(s=function X4(t){return t[Ss]??function J4(t){const n=CD.pop()??Object.create(t5);return n.lView=t,n}(t)}(n),a=function Te(t){return t&&(t.nextProducerIndex=0),V(t)}(s));try{ix(n),function cx(t){return Dt.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&sD(t,n,e,2,i);const c=3==(3&o);if(c){const g=t.preOrderCheckHooks;null!==g&&nm(n,g,null)}else{const g=t.preOrderHooks;null!==g&&om(n,g,0,null),V_(n,0)}if(function c5(t){for(let n=wD(t);null!==n;n=xD(n)){if(!(n[ct]&jg.HasTransplantedViews))continue;const e=n[Sc];for(let i=0;it.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}(s,a),function e5(t){t.lView[Ss]!==t&&(t.lView=null,CD.push(t))}(s)),i_()}}function kD(t,n){for(let e=wD(t);null!==e;e=xD(e))for(let i=en;i-1&&(Nd(n,i),Nh(e,i))}this._attachedToViewContainer=!1}vm(this._lView[He],this._lView)}onDestroy(n){Ah(this._lView,n)}markForCheck(){zd(this._cdRefInjectingView||this._lView)}detach(){this._lView[ct]&=-129}reattach(){Kg(this._lView),this._lView[ct]|=128}detectChanges(){this._lView[ct]|=1024,Mm(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ue(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,G1(this._lView[He],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new ue(902,!1);this._appRef=n,Kg(this._lView)}}let gi=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=h5}return t})();const d5=gi,u5=class extends d5{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=function Bd(t,n,e,i){const o=n.tView,s=Dm(t,o,e,4096&t[ct]?4096:16,null,n,null,null,null,i?.injector??null,i?.dehydratedView??null);s[pd]=t[n.index];const u=t[ta];return null!==u&&(s[ta]=u.createEmbeddedView(o)),xb(o,s,e),s}(this._declarationLView,this._declarationTContainer,n,{injector:e,dehydratedView:i});return new Hd(o)}};function h5(){return Tm(pi(),be())}function Tm(t,n){return 4&t.type?new u5(n,t,Tc(t,n)):null}class Ob{}class R5{}class ND{}class F5{resolveComponentFactory(n){throw function N5(t){const n=Error(`No component factory found for ${yn(t)}.`);return n.ngComponent=t,n}(n)}}let Ns=(()=>{class t{static#e=this.NULL=new F5}return t})();class Ab{}let ca=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function L5(){const t=be(),e=Eo(pi().index,t);return(qn(e)?e:t)[Et]}()}return t})(),B5=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>null})}return t})();const Pb={};function BD(t){return function LD(t){return"function"==typeof t&&void 0!==t[W]}(t)&&"function"==typeof t.set}function VD(t){const n=V(null);try{return t()}finally{V(n)}}function Pm(t){return!!Rb(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Rb(t){return null!==t&&("function"==typeof t||"object"==typeof t)}class jD{constructor(){}supports(n){return Pm(n)}create(n){return new $5(n)}}const U5=(t,n)=>n;class $5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||U5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,s),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,s,a,o)),Object.is(e.item,s)||this._addIdentityChange(e,s)):(e=this._mismatch(e,s,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new G5(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new zD),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new zD),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class G5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class q5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class zD{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new q5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function HD(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,a=o._next;return r&&(r._next=a),a&&(a._prev=r),o._next=null,o._prev=null,o}const i=new K5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class K5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function $D(){return new fr([new jD])}let fr=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:$D});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||$D()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new ue(901,!1)}}return t})();function GD(){return new Rm([new UD])}let Rm=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:GD});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||GD()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new ue(901,!1)}}return t})(),Lt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=Y5}return t})();function Y5(t){return function Q5(t,n,e){if(ks(t)&&!e){const i=Eo(t.index,n);return new Hd(i,i)}return 47&t.type?new Hd(n[Gi],n):null}(pi(),be(),16==(16&t))}let Nm=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=t8;static#t=this.__NG_ENV_ID__=e=>e}return t})();class e8 extends Nm{constructor(n){super(),this._lView=n}onDestroy(n){return Ah(this._lView,n),()=>function Zg(t,n){if(null===t[La])return;const e=t[La].indexOf(n);-1!==e&&t[La].splice(e,1)}(this._lView,n)}}function t8(){return new e8(be())}const qD=new Set;function Fs(t){qD.has(t)||(qD.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function WD(...t){}class We{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new ue(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function s8(){const t="function"==typeof di.requestAnimationFrame;let n=di[t?"requestAnimationFrame":"setTimeout"],e=di[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&e){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const o=e[Zone.__symbol__("OriginalDelegate")];o&&(e=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function d8(t){const n=()=>{!function l8(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(di,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Fb(t),t.isCheckStableRunning=!0,Nb(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Fb(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,a,s)=>{if(function u8(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(s))return e.invokeTask(o,r,a,s);try{return KD(t),e.invokeTask(o,r,a,s)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),ZD(t)}},onInvoke:(e,i,o,r,a,s,c)=>{try{return KD(t),e.invoke(o,r,a,s,c)}finally{t.shouldCoalesceRunChangeDetection&&n(),ZD(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,Fb(t),Nb(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!We.isInAngularZone())throw new ue(909,!1)}static assertNotInAngularZone(){if(We.isInAngularZone())throw new ue(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,a=r.scheduleEventTask("NgZoneEvent: "+o,n,c8,WD,WD);try{return r.runTask(a,e,i)}finally{r.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const c8={};function Nb(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Fb(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function KD(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ZD(t){t._nesting--,Nb(t)}class YD{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ne,this.onMicrotaskEmpty=new Ne,this.onStable=new Ne,this.onError=new Ne}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}var Ls=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Ls||{});const QD={destroy(){}};function JD(t,n){!n&&function F_(t){if(!Mx()&&!function c3(){return Oc}())throw new ue(-203,!1)}();const e=n?.injector??De(ji);if(!function Ua(t){return"browser"===(t??De(ji)).get(ra)}(e))return QD;Fs("NgAfterNextRender");const i=e.get(Wd),o=i.handler??=new tS,r=n?.phase??Ls.MixedReadWrite,a=()=>{o.unregister(c),s()},s=e.get(Nm).onDestroy(a),c=new eS(e,r,()=>{a(),t()});return o.register(c),{destroy:a}}class eS{constructor(n,e,i){this.phase=e,this.callbackFn=i,this.zone=n.get(We),this.errorHandler=n.get(Go,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class tS{constructor(){this.executingCallbacks=!1,this.buckets={[Ls.EarlyRead]:new Set,[Ls.Write]:new Set,[Ls.MixedReadWrite]:new Set,[Ls.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Wd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i();this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>new t})}return t})();function Lm(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let a=0;a0&&nD(t,e,r.join(" "))}}(b,ft,k,i),void 0!==e&&function D8(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=k8}return t})();function k8(){return cS(pi(),be())}const M8=vi,aS=class extends M8{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Tc(this._hostTNode,this._hostLView)}get injector(){return new xn(this._hostTNode,this._hostLView)}get parentInjector(){const n=sm(this._hostTNode,this._hostLView);if(z_(n)){const e=Od(n,this._hostLView),i=Ed(n);return new xn(e[He].data[i+8],e)}return new xn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=sS(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-en}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(s,o,Yc(this._hostTNode,null)),s}createComponent(n,e,i,o,r){const a=n&&!function Td(t){return"function"==typeof t}(n);let s;if(a)s=e;else{const k=e||{};s=k.index,i=k.injector,o=k.projectableNodes,r=k.environmentInjector||k.ngModuleRef}const c=a?n:new Yd(Ht(n)),u=i||this.parentInjector;if(!r&&null==c.ngModule){const T=(a?u:this.parentInjector).get(Ao,null);T&&(r=T)}Ht(c.componentType??{});const w=c.create(u,o,null,r);return this.insertImpl(w.hostView,s,Yc(this._hostTNode,null)),w}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function DF(t){return Wn(t[Ji])}(o)){const s=this.indexOf(n);if(-1!==s)this.detach(s);else{const c=o[Ji],u=new aS(c,c[$n],c[Ji]);u.detach(u.indexOf(n))}}const r=this._adjustIndex(e),a=this._lContainer;return Vd(a,o,r,i),n.attachToViewContainerRef(),bx(Vb(a),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=sS(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);i&&(Nh(Vb(this._lContainer),e),vm(i[He],i))}detach(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);return i&&null!=Nh(Vb(this._lContainer),e)?new Hd(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function sS(t){return t[8]}function Vb(t){return t[8]||(t[8]=[])}function cS(t,n){let e;const i=n[t.index];return Wn(i)?e=i:(e=pD(i,n,null,t),n[t.index]=e,Sm(n,e)),lS(e,n,t,i),new aS(e,t,n)}let lS=function uS(t,n,e,i){if(t[Mr])return;let o;o=8&e.type?bi(i):function T8(t,n){const e=t[Et],i=e.createComment(""),o=io(n,t);return Rs(e,ym(e,o),i,function y4(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[Mr]=o},jb=()=>!1;class zb{constructor(n){this.queryList=n,this.matches=null}clone(){return new zb(this.queryList)}setDirty(){this.queryList.setDirty()}}class Hb{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Ub{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(a[s/2]);else{const u=r[s+1],p=n[-c];for(let g=en;g=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=hd(o.hostAttrs,e=hd(e,o.hostAttrs))}}(i)}function W8(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function Vm(t){return t===kr?{}:t===Jt?[]:t}function Z8(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Y8(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Q8(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function PS(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class Bs{}class RS{}class Zb extends Bs{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new oS(this);const o=Un(n);this._bootstrapComponents=Ro(o.bootstrap),this._r3Injector=h1(n,e,[{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver},...i],yn(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Yb extends RS{constructor(n){super(),this.moduleType=n}create(n){return new Zb(this.moduleType,n,[])}}class NS extends Bs{constructor(n){super(),this.componentFactoryResolver=new oS(this),this.instance=null;const e=new jc([...n.providers,{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver}],n.parent||em(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Qb(t,n,e=null){return new NS({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Vs=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new mt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Nr(t,n,e){return t[n]=e}function Xd(t,n){return t[n]}function tn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function js(t,n,e,i){const o=tn(t,n,e);return tn(t,n+1,i)||o}function zm(t,n,e,i,o){const r=js(t,n,e,i);return tn(t,n+2,o)||r}function Wo(t,n,e,i,o,r){const a=js(t,n,e,i);return js(t,n+2,o,r)||a}function y(t,n,e,i,o,r,a,s){const c=be(),u=Gt(),p=t+Ot,g=u.firstCreatePass?function aB(t,n,e,i,o,r,a,s,c){const u=n.consts,p=Zc(n,t,4,a||null,Tr(u,s));bb(n,e,p,Tr(u,c)),im(n,p);const g=p.tView=_b(2,p,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,u,null);return null!==n.queries&&(n.queries.template(n,p),g.queries=n.queries.embeddedTView(p)),p}(p,u,c,n,e,i,o,r,a):u.data[p];Ir(g,!1);const b=FS(u,c,g,t);Rh()&&Cm(u,c,b,g),Zn(b,c);const w=pD(b,c,b,g);return c[p]=w,Sm(c,w),function dS(t,n,e){return jb(t,n,e)}(w,g,c),Oh(g)&&fb(u,c,g),null!=a&&gb(c,g,s),y}let FS=function LS(t,n,e,i){return Ba(!0),n[Et].createComment("")};function Xe(t,n,e,i){const o=be();return tn(o,mr(),n)&&(Gt(),Rr(Ei(),o,t,n,e,i)),Xe}function al(t,n,e,i){return tn(t,mr(),e)?n+At(e)+i:Nt}function Wm(t,n){return t<<17|n<<2}function Ka(t){return t>>17&32767}function sv(t){return 2|t}function Hs(t){return(131068&t)>>2}function cv(t,n){return-131069&t|n<<2}function lv(t){return 1|t}function pk(t,n,e,i){const o=t[e+1],r=null===n;let a=i?Ka(o):Hs(o),s=!1;for(;0!==a&&(!1===s||r);){const u=t[a+1];$B(t[a],n)&&(s=!0,t[a+1]=i?lv(u):sv(u)),a=i?Ka(u):Hs(u)}s&&(t[e+1]=i?sv(o):lv(o))}function $B(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Ec(t,n)>=0}const Dn={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function fk(t){return t.substring(Dn.key,Dn.keyEnd)}function gk(t,n){const e=Dn.textEnd;return e===n?-1:(n=Dn.keyEnd=function KB(t,n,e){for(;n32;)n++;return n}(t,Dn.key=n,e),pl(t,n,e))}function pl(t,n,e){for(;n=0;e=gk(n,e))Oo(t,fk(n),!0)}function gr(t,n,e,i){const o=be(),r=Gt(),a=na(2);r.firstUpdatePass&&wk(r,t,a,i),n!==Nt&&tn(o,a,n)&&Dk(r,r.data[Kn()],o,o[Et],t,o[a+1]=function a6(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=yn(Po(t)))),t}(n,e),i,a)}function Ck(t,n){return n>=t.expandoStartIndex}function wk(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Kn()],a=Ck(t,e);kk(r,i)&&null===n&&!a&&(n=!1),n=function JB(t,n,e,i){const o=Jg(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=iu(e=uv(null,t,n,e,i),n.attrs,i),r=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=uv(o,t,n,e,i),null===r){let c=function e6(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Hs(i))return t[Ka(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=uv(null,t,n,c[1],i),c=iu(c,n.attrs,i),function t6(t,n,e,i){t[Ka(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function i6(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(u=!0)):p=e,o)if(0!==c){const b=Ka(t[s+1]);t[i+1]=Wm(b,s),0!==b&&(t[b+1]=cv(t[b+1],i)),t[s+1]=function jB(t,n){return 131071&t|n<<17}(t[s+1],i)}else t[i+1]=Wm(s,0),0!==s&&(t[s+1]=cv(t[s+1],i)),s=i;else t[i+1]=Wm(c,0),0===s?s=i:t[c+1]=cv(t[c+1],i),c=i;u&&(t[i+1]=sv(t[i+1])),pk(t,p,i,!0),pk(t,p,i,!1),function UB(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Ec(r,n)>=0&&(e[i+1]=lv(e[i+1]))}(n,p,t,i,r),a=Wm(s,c),r?n.classBindings=a:n.styleBindings=a}(o,r,n,e,a,i)}}function uv(t,n,e,i,o){let r=null;const a=e.directiveEnd;let s=e.directiveStylingLast;for(-1===s?s=e.directiveStart:s++;s0;){const c=t[o],u=Array.isArray(c),p=u?c[1]:c,g=null===p;let b=e[o+1];b===Nt&&(b=g?Jt:void 0);let w=g?o_(b,i):p===i?b:void 0;if(u&&!Km(w)&&(w=o_(c,i)),Km(w)&&(s=w,a))return s;const k=t[o+1];o=a?Ka(k):Hs(k)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(s=o_(c,i))}return s}function Km(t){return void 0!==t}function kk(t,n){return 0!=(t.flags&(n?8:16))}function Mk(t,n,e){!function _r(t,n,e,i){const o=Gt(),r=na(2);o.firstUpdatePass&&wk(o,null,r,i);const a=be();if(e!==Nt&&tn(a,r,e)){const s=o.data[Kn()];if(kk(s,i)&&!Ck(o,r)){let c=i?s.classesWithoutHost:s.stylesWithoutHost;null!==c&&(e=Ng(c,e||"")),dv(o,s,a,e,i)}else!function r6(t,n,e,i,o,r,a,s){o===Nt&&(o=Jt);let c=0,u=0,p=0(Ba(!0),bm(i,o,function fx(){return Dt.lFrame.currentNamespace}()));function me(t,n,e){const i=be(),o=Gt(),r=t+Ot,a=o.firstCreatePass?function O6(t,n,e,i,o){const r=n.consts,a=Tr(r,i),s=Zc(n,t,8,"ng-container",a);return null!==a&&Lm(s,a,!0),bb(n,e,s,Tr(r,o)),null!==n.queries&&n.queries.elementStart(n,s),s}(r,o,i,n,e):o.data[r];Ir(a,!0);const s=Ak(o,i,a,t);return i[r]=s,Rh()&&Cm(o,i,s,a),Zn(s,i),Oh(a)&&(fb(o,i,a),pb(o,a,i)),null!=e&&gb(i,a),me}function pe(){let t=pi();const n=Gt();return Yg()?Qg():(t=t.parent,Ir(t,!1)),n.firstCreatePass&&(im(n,t),zg(t)&&n.queries.elementEnd(t)),pe}function ro(t,n,e){return me(t,n,e),pe(),ro}let Ak=(t,n,e,i)=>(Ba(!0),sb(n[Et],""));function _e(){return be()}function ao(t,n,e){const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!0),ao}function Zm(t,n,e){const i=be();if(tn(i,mr(),n)){const r=Gt(),a=Ei();wo(r,a,i,t,n,bD(Jg(r.data),a,i),e,!0)}return Zm}const gl="en-US";let Nk=gl;function A(t,n,e,i){const o=be(),r=Gt(),a=pi();return bv(r,o,o[Et],a,t,n,i),A}function ep(t,n){const e=pi(),i=be(),o=Gt();return bv(o,i,bD(Jg(o.data),e,i),e,t,n),ep}function bv(t,n,e,i,o,r,a){const s=Oh(i),u=t.firstCreatePass&&_D(t),p=n[Ii],g=gD(n);let b=!0;if(3&i.type||a){const T=io(i,n),z=a?a(T):T,re=g.length,ae=a?tt=>a(bi(tt[i.index])):i.index;let Ue=null;if(!a&&s&&(Ue=function EV(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?s[c]:null}"string"==typeof a&&(r+=2)}return null}(t,n,o,i.index)),null!==Ue)(Ue.__ngLastListenerFn__||Ue).__ngNextListenerFn__=r,Ue.__ngLastListenerFn__=r,b=!1;else{r=sM(i,n,p,r,!1);const tt=e.listen(z,o,r);g.push(r,tt),u&&u.push(o,ae,re,re+1)}}else r=sM(i,n,p,r,!1);const w=i.outputs;let k;if(b&&null!==w&&(k=w[o])){const T=k.length;if(T)for(let z=0;z-1?Eo(t.index,n):n);let c=aM(n,e,i,a),u=r.__ngNextListenerFn__;for(;u;)c=aM(n,e,u,a)&&c,u=u.__ngNextListenerFn__;return o&&!1===c&&a.preventDefault(),c}}function C(t=1){return function VF(t){return(Dt.lFrame.contextLView=function nx(t,n){for(;t>0;)n=n[xc],t--;return n}(t,Dt.lFrame.contextLView))[Ii]}(t)}function OV(t,n){let e=null;const i=function sF(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(Ba(!0),function _m(t,n){return t.createText(n)}(n[Et],i));function Pe(t){return xe("",t,""),Pe}function xe(t,n,e){const i=be(),o=al(i,t,n,e);return o!==Nt&&sa(i,Kn(),o),xe}function _l(t,n,e,i,o){const r=be(),a=function sl(t,n,e,i,o,r){const s=js(t,ia(),e,o);return na(2),s?n+At(e)+i+At(o)+r:Nt}(r,t,n,e,i,o);return a!==Nt&&sa(r,Kn(),a),_l}function Cv(t,n,e,i,o,r,a){const s=be(),c=function cl(t,n,e,i,o,r,a,s){const u=zm(t,ia(),e,o,a);return na(3),u?n+At(e)+i+At(o)+r+At(a)+s:Nt}(s,t,n,e,i,o,r,a);return c!==Nt&&sa(s,Kn(),c),Cv}function wv(t,n,e,i,o,r,a,s,c){const u=be(),p=function ll(t,n,e,i,o,r,a,s,c,u){const g=Wo(t,ia(),e,o,a,c);return na(4),g?n+At(e)+i+At(o)+r+At(a)+s+At(c)+u:Nt}(u,t,n,e,i,o,r,a,s,c);return p!==Nt&&sa(u,Kn(),p),wv}function dn(t,n,e){BD(n)&&(n=n());const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!1),dn}function kn(t,n){const e=BD(t);return e&&t.set(n),e}function un(t,n){const e=be(),i=Gt(),o=pi();return bv(i,e,e[Et],o,t,n),un}function xv(t,n,e,i,o){if(t=wt(t),Array.isArray(t))for(let r=0;r>20;if(Os(t)||!t.multi){const w=new Id(u,o,_),k=Sv(c,n,o?p:p+b,g);-1===k?($_(am(s,a),r,c),Dv(r,t,n.length),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(w),a.push(w)):(e[k]=w,a[k]=w)}else{const w=Sv(c,n,p+b,g),k=Sv(c,n,p,p+b),z=k>=0&&e[k];if(o&&!z||!o&&!(w>=0&&e[w])){$_(am(s,a),r,c);const re=function YV(t,n,e,i,o){const r=new Id(t,e,_);return r.multi=[],r.index=n,r.componentProviders=0,OM(r,o,i&&!e),r}(o?ZV:KV,e.length,o,i,u);!o&&z&&(e[k].providerFactory=re),Dv(r,t,n.length,0),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(re),a.push(re)}else Dv(r,t,w>-1?w:k,OM(e[o?k:w],u,!o&&i));!o&&i&&z&&e[k].componentProviders++}}}function Dv(t,n,e,i){const o=Os(n),r=function k3(t){return!!t.useClass}(n);if(o||r){const c=(r?wt(n.useClass):n).prototype.ngOnDestroy;if(c){const u=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const p=u.indexOf(e);-1===p?u.push(e,[i,c]):u[p+1].push(i,c)}else u.push(e,c)}}}function OM(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function Sv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function WV(t,n,e){const i=Gt();if(i.firstCreatePass){const o=hr(t);xv(e,i.data,i.blueprint,o,!0),xv(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let QV=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Bx(0,e.type),o=i.length>0?Qb([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ke({token:t,providedIn:"environment",factory:()=>new t(X(Ao))})}return t})();function AM(t){Fs("NgStandalone"),t.getStandaloneInjector=n=>n.get(QV).getOrCreateStandaloneInjector(t)}function No(t,n,e){const i=no()+t,o=be();return o[i]===Nt?Nr(o,i,e?n.call(e):n()):Xd(o,i)}function hi(t,n,e,i){return GM(be(),no(),t,n,e,i)}function zM(t,n,e,i,o){return function qM(t,n,e,i,o,r,a){const s=n+e;return js(t,s,o,r)?Nr(t,s+2,a?i.call(a,o,r):i(o,r)):cu(t,s+2)}(be(),no(),t,n,e,i,o)}function HM(t,n,e,i,o,r){return function WM(t,n,e,i,o,r,a,s){const c=n+e;return zm(t,c,o,r,a)?Nr(t,c+3,s?i.call(s,o,r,a):i(o,r,a)):cu(t,c+3)}(be(),no(),t,n,e,i,o,r)}function cu(t,n){const e=t[n];return e===Nt?void 0:e}function GM(t,n,e,i,o,r){const a=n+e;return tn(t,a,o)?Nr(t,a+1,r?i.call(r,o):i(o)):cu(t,a+1)}function lu(t,n){const e=Gt();let i;const o=t+Ot;e.firstCreatePass?(i=function uj(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Is(i.type)),s=yo(_);try{const c=rm(!1),u=r();return rm(c),function NV(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,be(),o,u),u}finally{yo(s)}}function du(t,n,e){const i=t+Ot,o=be(),r=kc(o,i);return function uu(t,n){return t[He].data[n].pure}(o,i)?GM(o,no(),n,r.transform,e,r):r.transform(e)}function br(t,n){return Tm(t,n)}let uT=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const gT=new se(""),op=new se("");let Nv,Pv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Nv||(function cz(t){Nv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(Rv),X(op))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Rv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Nv?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pu(t){return!!t&&"function"==typeof t.then}function _T(t){return!!t&&"function"==typeof t.subscribe}const Fv=new se("");let Lv=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=De(Fv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(pu(r))e.push(r);else if(_T(r)){const a=new Promise((s,c)=>{r.subscribe({complete:s,error:c})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Bv=new se("");function yT(t,n){return Array.isArray(n)?n.reduce(yT,t):{...t,...n}}let Za=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=De(p1),this.afterRenderEffectManager=De(Wd),this.componentTypes=[],this.components=[],this.isStable=De(Vs).hasPendingTasks.pipe(nt(e=>!e)),this._injector=De(Ao)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof ND;if(!this._injector.get(Lv).done)throw!o&&function Fa(t){const n=Ht(t)||Cn(t)||Ln(t);return null!==n&&n.standalone}(e),new ue(405,!1);let a;a=o?e:this._injector.get(Ns).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const s=function lz(t){return t.isBoundToModule}(a)?void 0:this._injector.get(Bs),u=a.create(ji.NULL,[],i||a.selector,s),p=u.location.nativeElement,g=u.injector.get(gT,null);return g?.registerApplication(p),u.onDestroy(()=>{this.detachView(u.hostView),rp(this.components,u),g?.unregisterApplication(p)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new ue(101,!1);try{this._runningTick=!0,this.detectChangesInAttachedViews()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}detectChangesInAttachedViews(){let e=0;do{if(100===e)throw new ue(103,!1);const i=0===e;for(let{_lView:o,notifyErrorHandler:r}of this._views)!i&&!CT(o)||this.detectChangesInView(o,r,i);this.afterRenderEffectManager.execute(),e++}while(this._views.some(({_lView:i})=>CT(i)))}detectChangesInView(e,i,o){let r;o?(r=0,e[ct]|=1024):r=64&e[ct]?0:1,Mm(e,i,r)}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;rp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Bv,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>rp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ue(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function rp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CT(t){return Wg(t)}class uz{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let wT=(()=>{class t{compileModuleSync(e){return new Yb(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Ro(Un(e).declarations).reduce((a,s)=>{const c=Ht(s);return c&&a.push(new Yd(c)),a},[]);return new uz(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pz=(()=>{class t{constructor(){this.zone=De(We),this.applicationRef=De(Za)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function fz(){const t=De(We),n=De(Go);return e=>t.runOutsideAngular(()=>n.handleError(e))}let _z=(()=>{class t{constructor(){this.subscription=new de,this.initialized=!1,this.zone=De(We),this.pendingTasks=De(Vs)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{We.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Br=new se("",{providedIn:"root",factory:()=>De(Br,$t.Optional|$t.SkipSelf)||function bz(){return typeof $localize<"u"&&$localize.locale||gl}()}),Vv=new se("");let kT=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function h8(t="zone.js",n){return"noop"===t?new YD:"zone.js"===t?new We(n):t}(i?.ngZone,function ST(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=function rB(t,n,e){return new Zb(t,n,e)}(e.moduleType,this.injector,function DT(t){return[{provide:We,useFactory:t},{provide:Es,multi:!0,useFactory:()=>{const n=De(pz,{optional:!0});return()=>n.initialize()}},{provide:Es,multi:!0,useFactory:()=>{const n=De(_z);return()=>{n.initialize()}}},{provide:p1,useFactory:fz}]}(()=>o)),a=r.injector.get(Go,null);return o.runOutsideAngular(()=>{const s=o.onError.subscribe({next:c=>{a.handleError(c)}});r.onDestroy(()=>{rp(this._modules,r),s.unsubscribe()})}),function vT(t,n,e){try{const i=e();return pu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const s=r.injector.get(Lv);return s.runInitializers(),s.donePromise.then(()=>(function Fk(t){"string"==typeof t&&(Nk=t.toLowerCase().replace(/_/g,"-"))}(r.injector.get(Br,gl)||gl),this._moduleDoBootstrap(r),r))})})}bootstrapModule(e,i=[]){const o=yT({},i);return function mz(t,n,e){const i=new Yb(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Za);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new ue(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ue(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Vv,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(X(ji))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Ya=null;const MT=new se("");function TT(t,n,e=[]){const i=`Platform: ${n}`,o=new se(i);return(r=[])=>{let a=jv();if(!a||a.injector.get(MT,!1)){const s=[...e,...r,{provide:o,useValue:!0}];t?t(s):function Cz(t){if(Ya&&!Ya.get(MT,!1))throw new ue(400,!1);(function bT(){!function bt(t){fe=t}(()=>{throw new ue(600,!1)})})(),Ya=t;const n=t.get(kT);(function ET(t){t.get(Sx,null)?.forEach(e=>e())})(t)}(function IT(t=[],n){return ji.create({name:n,providers:[{provide:A_,useValue:"platform"},{provide:Vv,useValue:new Set([()=>Ya=null])},...t]})}(s,i))}return function wz(t){const n=jv();if(!n)throw new ue(401,!1);return n}()}}function jv(){return Ya?.get(kT)??null}const Mz=TT(null,"core",[]);let Tz=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(X(Za))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();function Cl(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let t2=null;function Qa(){return t2}class o7{}const dt=new se("");let Wv=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(a7),providedIn:"platform"})}return t})();const r7=new se("");let a7=(()=>{class t extends Wv{constructor(){super(),this._doc=De(dt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qa().getBaseHref(this._doc)}onPopState(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Kv(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function n2(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function la(t){return t&&"?"!==t[0]?"?"+t:t}let qs=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(r2),providedIn:"root"})}return t})();const o2=new se("");let r2=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??De(dt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Kv(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+la(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),s7=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Kv(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Ws=(()=>{class t{constructor(e){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function d7(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(n2(a2(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+la(i))}normalize(e){return t.stripTrailingSlash(function l7(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,a2(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=la;static#t=this.joinWithSlash=Kv;static#i=this.stripTrailingSlash=n2;static#n=this.\u0275fac=function(i){return new(i||t)(X(qs))};static#o=this.\u0275prov=ke({token:t,factory:()=>function c7(){return new Ws(X(qs))}(),providedIn:"root"})}return t})();function a2(t){return t.replace(/\/index.html$/,"")}function f2(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}const oy=/\s+/,g2=[];let yr=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=g2,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(oy):g2}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(oy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(oy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngClass",""]],inputs:{klass:[ge.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class Z7{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let rn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Z7(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===r?void 0:r);else if(null!==r){const s=i.get(r);i.move(s,a),b2(s,o)}});for(let o=0,r=i.length;o{b2(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function b2(t,n){t.context.$implicit=n.item}let It=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Y7,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){v2("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){v2("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Y7{constructor(){this.$implicit=null,this.ngIf=null}}function v2(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${yn(n)}'.`)}class ry{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let xl=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),Sp=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new ry(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),y2=(()=>{class t{constructor(e,i,o){o._addDefault(new ry(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),w2=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),a=-1===o.indexOf("-")?void 0:$a.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,a):this._renderer.removeStyle(this._ngEl.nativeElement,o,a)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Rm),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),kp=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[fi]})}return t})();function Cr(t,n){return new ue(2100,!1)}class J7{createSubscription(n,e){return VD(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){VD(()=>n.unsubscribe())}}class e9{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const t9=new e9,i9=new J7;let x2=(()=>{class t{constructor(e){this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(pu(e))return t9;if(_T(e))return i9;throw Cr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt,16))};static#t=this.\u0275pipe=bo({name:"async",type:t,pure:!1,standalone:!0})}return t})(),D2=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Cr();return e.toUpperCase()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=bo({name:"uppercase",type:t,pure:!0,standalone:!0})}return t})(),ay=(()=>{class t{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=S2}transform(e,i=S2){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const o=this.differ.diff(e),r=i!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(a=>{this.keyValues.push(function p9(t,n){return{key:t,value:n}}(a.key,a.currentValue))})),(o||r)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rm,16))};static#t=this.\u0275pipe=bo({name:"keyvalue",type:t,pure:!1,standalone:!0})}return t})();function S2(t,n){const e=t.key,i=n.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const k2="browser";function M2(t){return t===k2}function T2(t){return"server"===t}let C9=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>M2(De(ra))?new w9(De(dt),window):new D9})}return t})();class w9{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function x9(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const a=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class D9{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class I2{}class X9 extends o7{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class dy extends X9{static makeCurrent(){!function n7(t){t2??=t}(new dy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function J9(){return yu=yu||document.querySelector("base"),yu?yu.getAttribute("href"):null}();return null==e?null:function eH(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){yu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return f2(document.cookie,n)}}let yu=null,iH=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const uy=new se("");let B2=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new ue(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(uy),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class V2{constructor(n){this._doc=n}}const hy="ng-app-id";let j2=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=T2(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${hy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(hy),r;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(hy,this.appId),e.appendChild(a),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,a=r.get(i)?.elements;a?a.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(wd),X(s_,8),X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const my={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},py=/%COMP%/g,aH=new se("",{providedIn:"root",factory:()=>!0});function H2(t,n){return n.map(e=>e.replace(py,t))}let fy=(()=>{class t{constructor(e,i,o,r,a,s,c,u=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=a,this.platformId=s,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=T2(s),this.defaultRenderer=new gy(e,a,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===cr.ShadowDom&&(i={...i,encapsulation:cr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof $2?o.applyToHost(e):o instanceof _y&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const a=this.doc,s=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,p=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(i.encapsulation){case cr.Emulated:r=new $2(c,u,i,this.appId,p,a,s,g);break;case cr.ShadowDom:return new dH(c,u,e,i,a,s,this.nonce,g);default:r=new _y(c,u,i,p,a,s,g)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(X(B2),X(j2),X(wd),X(aH),X(dt),X(ra),X(We),X(s_))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class gy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(my[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(U2(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(U2(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new ue(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=my[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=my[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&($a.DashCase|$a.Important)?n.style.setProperty(e,i,o&$a.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&$a.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Qa().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function U2(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class dH extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=H2(o.id,o.styles);for(const p of u){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class _y extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,s),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?H2(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class $2 extends _y{constructor(n,e,i,o,r,a,s,c){const u=o+"-"+i.id;super(n,e,i,r,a,s,c,u),this.contentAttr=function sH(t){return"_ngcontent-%COMP%".replace(py,t)}(u),this.hostAttr=function cH(t){return"_nghost-%COMP%".replace(py,t)}(u)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let uH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const G2=["alt","control","meta","shift"],hH={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},mH={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let pH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),a=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qa().onAndCancel(e,r.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let a="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),a="code."),G2.forEach(u=>{const p=i.indexOf(u);p>-1&&(i.splice(p,1),a+=u+".")}),a+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=a,c}static matchEventFullKeyCode(e,i){let o=hH[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),G2.forEach(a=>{a!==o&&(0,mH[a])(e)&&(r+=a+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const bH=TT(Mz,"browser",[{provide:ra,useValue:k2},{provide:Sx,useValue:function fH(){dy.makeCurrent()},multi:!0},{provide:dt,useFactory:function _H(){return function qF(t){r_=t}(document),document},deps:[]}]),vH=new se(""),K2=[{provide:op,useClass:class tH{addToWindow(n){di.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new ue(5103,!1);return r},di.getAllAngularTestabilities=()=>n.getAllTestabilities(),di.getAllAngularRootElements=()=>n.getAllRootElements(),di.frameworkStabilizers||(di.frameworkStabilizers=[]),di.frameworkStabilizers.push(i=>{const o=di.getAllAngularTestabilities();let r=o.length;const a=function(){r--,0==r&&i()};o.forEach(s=>{s.whenStable(a)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Qa().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:gT,useClass:Pv,deps:[We,Rv,op]},{provide:Pv,useClass:Pv,deps:[We,Rv,op]}],Z2=[{provide:A_,useValue:"root"},{provide:Go,useFactory:function gH(){return new Go},deps:[]},{provide:uy,useClass:uH,multi:!0,deps:[dt,We,ra]},{provide:uy,useClass:pH,multi:!0,deps:[dt]},fy,j2,B2,{provide:Ab,useExisting:fy},{provide:I2,useClass:iH,deps:[]},[]];let Y2=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:wd,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(vH,12))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[...Z2,...K2],imports:[Vn,Tz]})}return t})(),yH=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),by=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:function(i){let o=null;return o=i?new(i||t):X(DH),o},providedIn:"root"})}return t})(),DH=(()=>{class t extends by{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Bn.NONE:return i;case Bn.HTML:return Ar(i,"HTML")?Po(i):k1(this._doc,String(i)).toString();case Bn.STYLE:return Ar(i,"Style")?Po(i):i;case Bn.SCRIPT:if(Ar(i,"Script"))return Po(i);throw new ue(5200,!1);case Bn.URL:return Ar(i,"URL")?Po(i):mm(String(i));case Bn.RESOURCE_URL:if(Ar(i,"ResourceURL"))return Po(i);throw new ue(5201,!1);default:throw new ue(5202,!1)}}bypassSecurityTrustHtml(e){return function wL(t){return new gL(t)}(e)}bypassSecurityTrustStyle(e){return function xL(t){return new _L(t)}(e)}bypassSecurityTrustScript(e){return function DL(t){return new bL(t)}(e)}bypassSecurityTrustUrl(e){return function SL(t){return new vL(t)}(e)}bypassSecurityTrustResourceUrl(e){return function kL(t){return new yL(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var St=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(St||{});const ha="*";function Lo(t,n){return{type:St.Trigger,name:t,definitions:n,options:{}}}function Yi(t,n=null){return{type:St.Animate,styles:n,timings:t}}function vy(t,n=null){return{type:St.Group,steps:t,options:n}}function Zt(t){return{type:St.Style,styles:t,offset:null}}function mn(t,n,e){return{type:St.State,name:t,styles:n,options:e}}function Qi(t,n,e=null){return{type:St.Transition,expr:t,animation:n,options:e}}function yy(t=null){return{type:St.AnimateChild,options:t}}function Cy(t,n,e=null){return{type:St.Query,selector:t,animation:n,options:e}}class wu{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eI{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==r&&this._onFinish()}),a.onDestroy(()=>{++i==r&&this._onDestroy()}),a.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((a,s)=>Math.max(a,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function tI(t){return new ue(3e3,!1)}function Xa(t){switch(t.length){case 0:return new wu;case 1:return t[0];default:return new eI(t)}}function iI(t,n,e=new Map,i=new Map){const o=[],r=[];let a=-1,s=null;if(n.forEach(c=>{const u=c.get("offset"),p=u==a,g=p&&s||new Map;c.forEach((b,w)=>{let k=w,T=b;if("offset"!==w)switch(k=t.normalizePropertyName(k,o),T){case"!":T=e.get(w);break;case ha:T=i.get(w);break;default:T=t.normalizeStyleValue(w,k,T,o)}g.set(k,T)}),p||r.push(g),s=g,a=u}),o.length)throw function XH(t){return new ue(3502,!1)}();return r}function xy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Dy(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Dy(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Dy(e,"destroy",t)))}}function Dy(t,n,e){const r=Sy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(r._data=a),r}function Sy(t,n,e,i,o="",r=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!a}}function Bo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function nI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const dU=typeof document>"u"?null:document.documentElement;function ky(t){const n=t.parentNode||t.host||null;return n===dU?null:n}let Ks=null,oI=!1;function rI(t,n){for(;n;){if(n===t)return!0;n=ky(n)}return!1}function aI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let My=(()=>{class t{validateStyleProperty(e){return function hU(t){Ks||(Ks=function mU(){return typeof document<"u"?document.body:null}()||{},oI=!!Ks.style&&"WebkitAppearance"in Ks.style);let n=!0;return Ks.style&&!function uU(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Ks.style,!n&&oI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Ks.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return rI(e,i)}getParentElement(e){return ky(e)}query(e,i,o){return aI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,a,s=[],c){return new wu(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class Ty{static#e=this.NOOP=new My}class Iy{}const fU=1e3,Ey="ng-enter",Ip="ng-leave",Ep="ng-trigger",Op=".ng-trigger",cI="ng-animating",Oy=".ng-animating";function ma(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Ay(parseFloat(n[1]),n[2])}function Ay(t,n){return"s"===n?t*fU:t}function Ap(t,n,e){return t.hasOwnProperty("duration")?t:function _U(t,n,e){let o,r=0,a="";if("string"==typeof t){const s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return n.push(tI()),{duration:0,delay:0,easing:""};o=Ay(parseFloat(s[1]),s[2]);const c=s[3];null!=c&&(r=Ay(parseFloat(c),s[4]));const u=s[5];u&&(a=u)}else o=t;if(!e){let s=!1,c=n.length;o<0&&(n.push(function EH(){return new ue(3100,!1)}()),s=!0),r<0&&(n.push(function OH(){return new ue(3101,!1)}()),s=!0),s&&n.splice(c,0,tI())}return{duration:o,delay:r,easing:a}}(t,n,e)}function Vr(t,n,e){n.forEach((i,o)=>{const r=Ry(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Zs(t,n){n.forEach((e,i)=>{const o=Ry(i);t.style[o]=""})}function xu(t){return Array.isArray(t)?1==t.length?t[0]:function SH(t,n=null){return{type:St.Sequence,steps:t,options:n}}(t):t}const Py=new RegExp("{{\\s*(.+?)\\s*}}","g");function dI(t){let n=[];if("string"==typeof t){let e;for(;e=Py.exec(t);)n.push(e[1]);Py.lastIndex=0}return n}function Du(t,n,e){const i=`${t}`,o=i.replace(Py,(r,a)=>{let s=n[a];return null==s&&(e.push(function PH(t){return new ue(3003,!1)}()),s=""),s.toString()});return o==i?t:o}const yU=/-+([a-z0-9])/g;function Ry(t){return t.replace(yU,(...n)=>n[1].toUpperCase())}function Vo(t,n,e){switch(n.type){case St.Trigger:return t.visitTrigger(n,e);case St.State:return t.visitState(n,e);case St.Transition:return t.visitTransition(n,e);case St.Sequence:return t.visitSequence(n,e);case St.Group:return t.visitGroup(n,e);case St.Animate:return t.visitAnimate(n,e);case St.Keyframes:return t.visitKeyframes(n,e);case St.Style:return t.visitStyle(n,e);case St.Reference:return t.visitReference(n,e);case St.AnimateChild:return t.visitAnimateChild(n,e);case St.AnimateRef:return t.visitAnimateRef(n,e);case St.Query:return t.visitQuery(n,e);case St.Stagger:return t.visitStagger(n,e);default:throw function RH(t){return new ue(3004,!1)}()}}function Ny(t,n){return window.getComputedStyle(t)[n]}const xU=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class uI extends Iy{normalizePropertyName(n,e){return Ry(n)}normalizeStyleValue(n,e,i,o){let r="";const a=i.toString().trim();if(xU.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&o.push(function NH(t,n){return new ue(3005,!1)}())}return a+r}}const Pp="*";const Rp=new Set(["true","1"]),Np=new Set(["false","0"]);function hI(t,n){const e=Rp.has(t)||Np.has(t),i=Rp.has(n)||Np.has(n);return(o,r)=>{let a=t==Pp||t==o,s=n==Pp||n==r;return!a&&e&&"boolean"==typeof o&&(a=o?Rp.has(t):Np.has(t)),!s&&i&&"boolean"==typeof r&&(s=r?Rp.has(n):Np.has(n)),a&&s}}const MU=new RegExp("s*:selfs*,?","g");function Fy(t,n,e,i){return new TU(t).build(n,e,i)}class TU{constructor(n){this._driver=n}build(n,e,i){const o=new OU(e);return this._resetContextStyleTimingState(o),Vo(this,xu(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function FH(){return new ue(3006,!1)}()),n.definitions.forEach(s=>{if(this._resetContextStyleTimingState(e),s.type==St.State){const c=s,u=c.name;u.toString().split(/\s*,\s*/).forEach(p=>{c.name=p,r.push(this.visitState(c,e))}),c.name=u}else if(s.type==St.Transition){const c=this.visitTransition(s,e);i+=c.queryCount,o+=c.depCount,a.push(c)}else e.errors.push(function LH(){return new ue(3007,!1)}())}),{type:St.Trigger,name:n.name,states:r,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,a=o||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(c=>{dI(c).forEach(u=>{a.hasOwnProperty(u)||r.add(u)})})}),r.size&&e.errors.push(function BH(t,n){return new ue(3008,!1)}(0,r.values()))}return{type:St.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Vo(this,xu(n.animation),e),o=function DU(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function SU(t,n,e){if(":"==t[0]){const c=function kU(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function WH(t){return new ue(3015,!1)}()),n;const o=i[1],r=i[2],a=i[3];n.push(hI(o,a)),"<"==r[0]&&(o!=Pp||a!=Pp)&&n.push(hI(a,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:St.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ys(n.options)}}visitSequence(n,e){return{type:St.Sequence,steps:n.steps.map(i=>Vo(this,i,e)),options:Ys(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(a=>{e.currentTime=i;const s=Vo(this,a,e);return o=Math.max(o,e.currentTime),s});return e.currentTime=o,{type:St.Group,steps:r,options:Ys(n.options)}}visitAnimate(n,e){const i=function PU(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Ly(Ap(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Ly(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=Ap(e,n);return Ly(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Zt({});if(r.type==St.Keyframes)o=this.visitKeyframes(r,e);else{let a=n.styles,s=!1;if(!a){s=!0;const u={};i.easing&&(u.easing=i.easing),a=Zt(u)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=s,o=c}return e.currentAnimateTimings=null,{type:St.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let s of o)"string"==typeof s?s===ha?i.push(s):e.errors.push(new ue(3002,!1)):i.push(new Map(Object.entries(s)));let r=!1,a=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(a=s.get("easing"),s.delete("easing")),!r))for(let c of s.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:St.Style,styles:i,easing:a,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((s,c)=>{const u=e.collectedStyles.get(e.currentQuerySelector),p=u.get(c);let g=!0;p&&(r!=o&&r>=p.startTime&&o<=p.endTime&&(e.errors.push(function jH(t,n,e,i,o){return new ue(3010,!1)}()),g=!1),r=p.startTime),g&&u.set(c,{startTime:r,endTime:o}),e.options&&function vU(t,n,e){const i=n.params||{},o=dI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function AH(t){return new ue(3001,!1)}())})}(s,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:St.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function zH(){return new ue(3011,!1)}()),i;let r=0;const a=[];let s=!1,c=!1,u=0;const p=n.steps.map(re=>{const ae=this._makeStyleAst(re,e);let Ue=null!=ae.offset?ae.offset:function AU(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(ae.styles),tt=0;return null!=Ue&&(r++,tt=ae.offset=Ue),c=c||tt<0||tt>1,s=s||tt0&&r{const Ue=b>0?ae==w?1:b*ae:a[ae],tt=Ue*z;e.currentTime=k+T.delay+tt,T.duration=tt,this._validateStyleAst(re,e),re.offset=Ue,i.styles.push(re)}),i}visitReference(n,e){return{type:St.Reference,animation:Vo(this,xu(n.animation),e),options:Ys(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:St.AnimateChild,options:Ys(n.options)}}visitAnimateRef(n,e){return{type:St.AnimateRef,animation:this.visitReference(n.animation,e),options:Ys(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,a]=function IU(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(MU,"")),t=t.replace(/@\*/g,Op).replace(/@\w+/g,e=>Op+"-"+e.slice(1)).replace(/:animating/g,Oy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Bo(e.collectedStyles,e.currentQuerySelector,new Map);const s=Vo(this,xu(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:St.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:s,originalSelector:n.selector,options:Ys(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function GH(){return new ue(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:Ap(n.timings,e.errors,!0);return{type:St.Stagger,animation:Vo(this,xu(n.animation),e),timings:i,options:null}}}class OU{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Ys(t){return t?(t={...t}).params&&(t.params=function EU(t){return t?{...t}:null}(t.params)):t={},t}function Ly(t,n,e){return{duration:t,delay:n,easing:e}}function By(t,n,e,i,o,r,a=null,s=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:a,subTimeline:s}}class Fp{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const FU=new RegExp(":enter","g"),BU=new RegExp(":leave","g");function Vy(t,n,e,i,o,r=new Map,a=new Map,s,c,u=[]){return(new VU).buildKeyframes(t,n,e,i,o,r,a,s,c,u)}class VU{buildKeyframes(n,e,i,o,r,a,s,c,u,p=[]){u=u||new Fp;const g=new jy(n,e,u,o,r,p,[]);g.options=c;const b=c.delay?ma(c.delay):0;g.currentTimeline.delayNextStep(b),g.currentTimeline.setStyles([a],null,g.errors,c),Vo(this,i,g);const w=g.timelines.filter(k=>k.containsAnimation());if(w.length&&s.size){let k;for(let T=w.length-1;T>=0;T--){const z=w[T];if(z.element===e){k=z;break}}k&&!k.allowOnlyTimelineStyles()&&k.setStyles([s],null,g.errors,c)}return w.length?w.map(k=>k.buildKeyframes()):[By(e,[],[],[],0,b,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);r!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const a="number"==typeof r?r:ma(Du(r,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const a=null!=i.duration?ma(i.duration):null,s=null!=i.delay?ma(i.delay):null;return 0!==a&&n.forEach(c=>{const u=e.appendInstructionToTimeline(c,a,s);r=Math.max(r,u.duration+u.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Vo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==St.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Lp);const a=ma(r.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>Vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?ma(n.options.delay):0;n.steps.forEach(a=>{const s=e.createSubContext(n.options);r&&s.delayNextStep(r),Vo(this,a,s),o=Math.max(o,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return Ap(e.params?Du(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==St.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,n.styles.forEach(c=>{s.forwardTime((c.offset||0)*r),s.setStyles(c.styles,c.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?ma(o.delay):0;r&&(e.previousNode.type===St.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Lp);let a=i;const s=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=s.length;let c=null;s.forEach((u,p)=>{e.currentQueryIndex=p;const g=e.createSubContext(n.options,u);r&&g.delayNextStep(r),u===e.element&&(c=g.currentTimeline),Vo(this,n.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,a=Math.abs(r.duration),s=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=s-c;break;case"full":c=i.currentStaggerTime}const p=e.currentTimeline;c&&p.delayNextStep(c);const g=p.currentTime;Vo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-g+(o.startTime-i.currentTimeline.startTime)}}const Lp={};class jy{constructor(n,e,i,o,r,a,s,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=a,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Lp,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Bp(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ma(i.duration)),null!=i.delay&&(o.delay=ma(i.delay));const r=i.params;if(r){let a=o.params;a||(a=this.options.params={}),Object.keys(r).forEach(s=>{(!e||!a.hasOwnProperty(s))&&(a[s]=Du(r[s],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new jy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Lp,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new jU(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,a){let s=[];if(o&&s.push(this.element),n.length>0){n=(n=n.replace(FU,"."+this._enterClassName)).replace(BU,"."+this._leaveClassName);let u=this._driver.query(this.element,n,1!=i);0!==i&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),s.push(...u)}return!r&&0==s.length&&a.push(function qH(t){return new ue(3014,!1)}()),s}}class Bp{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Bp(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ha),this._currentKeyframe.set(e,ha);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},a=function zU(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,ha)}else for(let[r,a]of o)e.set(r,a)}),e}(n,this._globalTimelineStyles);for(let[s,c]of a){const u=Du(c,r,i);this._pendingStyles.set(s,u),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??ha),this._updateStyle(s,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((s,c)=>{const u=new Map([...this._backFill,...s]);u.forEach((p,g)=>{"!"===p?n.add(g):p===ha&&e.add(g)}),i||u.set("offset",c/this.duration),o.push(u)});const r=[...n.values()],a=[...e.values()];if(i){const s=o[0],c=new Map(s);s.set("offset",0),c.set("offset",1),o=[s,c]}return By(this.element,o,r,a,this.duration,this.startTime,this.easing,!1)}}class jU extends Bp{constructor(n,e,i,o,r,a,s=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=s,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],a=i+e,s=e/a,c=new Map(n[0]);c.set("offset",0),r.push(c);const u=new Map(n[0]);u.set("offset",fI(s)),r.push(u);const p=n.length-1;for(let g=1;g<=p;g++){let b=new Map(n[g]);const w=b.get("offset");b.set("offset",fI((e+w*i)/a)),r.push(b)}i=a,e=0,o="",n=r}return By(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function fI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function gI(t,n,e,i,o,r,a,s,c,u,p,g,b){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:a,timelines:s,queriedElements:c,preStyleProps:u,postStyleProps:p,totalTime:g,errors:b}}const zy={};class _I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function HU(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,a,s,c,u,p){const g=[],b=this.ast.options&&this.ast.options.params||zy,k=this.buildStyles(i,s&&s.params||zy,g),T=c&&c.params||zy,z=this.buildStyles(o,T,g),re=new Set,ae=new Map,Ue=new Map,tt="void"===o,ft={params:bI(T,b),delay:this.ast.options?.delay},zt=p?[]:Vy(n,e,this.ast.animation,r,a,k,z,ft,u,g);let Ni=0;return zt.forEach(On=>{Ni=Math.max(On.duration+On.delay,Ni)}),g.length?gI(e,this._triggerName,i,o,tt,k,z,[],[],ae,Ue,Ni,g):(zt.forEach(On=>{const Pa=On.element,cd=Bo(ae,Pa,new Set);On.preStyleProps.forEach(fc=>cd.add(fc));const UN=Bo(Ue,Pa,new Set);On.postStyleProps.forEach(fc=>UN.add(fc)),Pa!==e&&re.add(Pa)}),gI(e,this._triggerName,i,o,tt,k,z,zt,[...re.values()],ae,Ue,Ni))}}function bI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class UU{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=bI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((a,s)=>{a&&(a=Du(a,o,e));const c=this.normalizer.normalizePropertyName(s,e);a=this.normalizer.normalizeStyleValue(s,c,a,e),i.set(s,a)})}),i}}class GU{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new UU(o.style,o.options&&o.options.params||{},i))}),vI(this.states,"true","1"),vI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new _I(n,o,this.states))}),this.fallbackTransition=function qU(t,n,e){return new _I(t,{type:St.Transition,animation:{type:St.Sequence,steps:[],options:null},matchers:[(a,s)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function vI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const WU=new Fp;class KU{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Fy(this._driver,e,i,[]);if(i.length)throw function JH(t){return new ue(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=iI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let a;const s=new Map;if(r?(a=Vy(this._driver,e,r,Ey,Ip,new Map,new Map,i,WU,o),a.forEach(p=>{const g=Bo(s,p.element,new Map);p.postStyleProps.forEach(b=>g.set(b,null))})):(o.push(function eU(){return new ue(3300,!1)}()),a=[]),o.length)throw function tU(t){return new ue(3504,!1)}();s.forEach((p,g)=>{p.forEach((b,w)=>{p.set(w,this._driver.computeStyle(g,w,ha))})});const u=Xa(a.map(p=>{const g=s.get(p.element);return this._buildPlayer(p,new Map,g)}));return this._playersById.set(n,u),u.onDestroy(()=>this.destroy(n)),this.players.push(u),u}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function iU(t){return new ue(3301,!1)}();return e}listen(n,e,i,o){const r=Sy(e,"","","");return xy(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const yI="ng-animate-queued",Hy="ng-animate-disabled",JU=[],CI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},e$={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},wr="__ng_removed";class Uy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function o$(t){return t??null}(i?n.value:n),i){const{value:r,...a}=n;this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const Su="void",$y=new Uy(Su);class t${constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,Qo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function nU(t,n){return new ue(3302,!1)}();if(null==i||0==i.length)throw function oU(t){return new ue(3303,!1)}();if(!function r$(t){return"start"==t||"done"==t}(i))throw function rU(t,n){return new ue(3400,!1)}();const r=Bo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};r.push(a);const s=Bo(this._engine.statesByElement,n,new Map);return s.has(e)||(Qo(n,Ep),Qo(n,Ep+"-"+e),s.set(e,$y)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(a);c>=0&&r.splice(c,1),this._triggers.has(e)||s.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function aU(t){return new ue(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),a=new Gy(this.id,e,n);let s=this._engine.statesByElement.get(n);s||(Qo(n,Ep),Qo(n,Ep+"-"+e),this._engine.statesByElement.set(n,s=new Map));let c=s.get(e);const u=new Uy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&u.absorbOptions(c.options),s.set(e,u),c||(c=$y),u.value!==Su&&c.value===u.value){if(!function c$(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Zs(n,z),Vr(n,re)})}return}const b=Bo(this._engine.playersByElement,n,[]);b.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let w=r.matchTransition(c.value,u.value,n,u.params),k=!1;if(!w){if(!o)return;w=r.fallbackTransition,k=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:w,fromState:c,toState:u,player:a,isFallbackTransition:k}),k||(Qo(n,yI),a.onStart(()=>{Dl(n,yI)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);const z=this._engine.playersByElement.get(n);if(z){let re=z.indexOf(a);re>=0&&z.splice(re,1)}}),this.players.push(a),b.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,Op,!0);i.forEach(o=>{if(o[wr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),a=new Map;if(r){const s=[];if(r.forEach((c,u)=>{if(a.set(u,c.value),this._triggers.has(u)){const p=this.trigger(n,u,Su,o);p&&s.push(p)}}),s.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Xa(s).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const a=r.name;if(o.has(a))return;o.add(a);const c=this._triggers.get(a).fallbackTransition,u=i.get(a)||$y,p=new Uy(Su),g=new Gy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:c,fromState:u,toState:p,player:g,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[wr];(!r||r===CI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Qo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,a=this._elementListeners.get(r);a&&a.forEach(s=>{if(s.name==i.triggerName){const c=Sy(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,xy(i.player,s.phase,c,s.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==r||0==a?r-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class i${_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i,o){this.bodyNode=n,this.driver=e,this._normalizer=i,this.scheduler=o,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(r,a)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new t$(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,s=this.driver.getParentElement(e);for(;s;){const c=o.get(s);if(c){const u=i.indexOf(c);i.splice(u+1,0,n),a=!0;break}s=this.driver.getParentElement(s)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(Vp(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!Vp(e))return;const r=e[wr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),Qo(n,Hy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Dl(n,Hy))}removeNode(n,e,i){if(Vp(e)){this.scheduler?.notify();const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[wr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return Vp(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,Op,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Oy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[wr];if(e&&e.setForRemoval){if(n[wr]=CI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Hy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function sU(t){return new ue(3402,!1)}()}_flushAnimations(n,e){const i=new Fp,o=[],r=new Map,a=[],s=new Map,c=new Map,u=new Map,p=new Set;this.disabledNodes.forEach(rt=>{p.add(rt);const _t=this.driver.query(rt,".ng-animate-queued",!0);for(let xt=0;xt<_t.length;xt++)p.add(_t[xt])});const g=this.bodyNode,b=Array.from(this.statesByElement.keys()),w=DI(b,this.collectedEnterElements),k=new Map;let T=0;w.forEach((rt,_t)=>{const xt=Ey+T++;k.set(_t,xt),rt.forEach(ii=>Qo(ii,xt))});const z=[],re=new Set,ae=new Set;for(let rt=0;rtre.add(ii)):ae.add(_t))}const Ue=new Map,tt=DI(b,Array.from(re));tt.forEach((rt,_t)=>{const xt=Ip+T++;Ue.set(_t,xt),rt.forEach(ii=>Qo(ii,xt))}),n.push(()=>{w.forEach((rt,_t)=>{const xt=k.get(_t);rt.forEach(ii=>Dl(ii,xt))}),tt.forEach((rt,_t)=>{const xt=Ue.get(_t);rt.forEach(ii=>Dl(ii,xt))}),z.forEach(rt=>{this.processLeaveNode(rt)})});const ft=[],zt=[];for(let rt=this._namespaceList.length-1;rt>=0;rt--)this._namespaceList[rt].drainQueuedTransitions(e).forEach(xt=>{const ii=xt.player,Nn=xt.element;if(ft.push(ii),this.collectedEnterElements.length){const to=Nn[wr];if(to&&to.setForMove){if(to.previousTriggersValues&&to.previousTriggersValues.has(xt.triggerName)){const gc=to.previousTriggersValues.get(xt.triggerName),rr=this.statesByElement.get(xt.element);if(rr&&rr.has(xt.triggerName)){const Og=rr.get(xt.triggerName);Og.value=gc,rr.set(xt.triggerName,Og)}}return void ii.destroy()}}const Yr=!g||!this.driver.containsElement(g,Nn),$o=Ue.get(Nn),Cs=k.get(Nn),Ki=this._buildInstruction(xt,i,Cs,$o,Yr);if(Ki.errors&&Ki.errors.length)return void zt.push(Ki);if(Yr)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);if(xt.isFallbackTransition)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);const qN=[];Ki.timelines.forEach(to=>{to.stretchStartingKeyframe=!0,this.disabledNodes.has(to.element)||qN.push(to)}),Ki.timelines=qN,i.append(Nn,Ki.timelines),a.push({instruction:Ki,player:ii,element:Nn}),Ki.queriedElements.forEach(to=>Bo(s,to,[]).push(ii)),Ki.preStyleProps.forEach((to,gc)=>{if(to.size){let rr=c.get(gc);rr||c.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))}}),Ki.postStyleProps.forEach((to,gc)=>{let rr=u.get(gc);rr||u.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))})});if(zt.length){const rt=[];zt.forEach(_t=>{rt.push(function cU(t,n){return new ue(3505,!1)}())}),ft.forEach(_t=>_t.destroy()),this.reportError(rt)}const Ni=new Map,On=new Map;a.forEach(rt=>{const _t=rt.element;i.has(_t)&&(On.set(_t,_t),this._beforeAnimationBuild(rt.player.namespaceId,rt.instruction,Ni))}),o.forEach(rt=>{const _t=rt.element;this._getPreviousPlayers(_t,!1,rt.namespaceId,rt.triggerName,null).forEach(ii=>{Bo(Ni,_t,[]).push(ii),ii.destroy()})});const Pa=z.filter(rt=>kI(rt,c,u)),cd=new Map;xI(cd,this.driver,ae,u,ha).forEach(rt=>{kI(rt,c,u)&&Pa.push(rt)});const fc=new Map;w.forEach((rt,_t)=>{xI(fc,this.driver,new Set(rt),c,"!")}),Pa.forEach(rt=>{const _t=cd.get(rt),xt=fc.get(rt);cd.set(rt,new Map([..._t?.entries()??[],...xt?.entries()??[]]))});const kw=[],$N=[],GN={};a.forEach(rt=>{const{element:_t,player:xt,instruction:ii}=rt;if(i.has(_t)){if(p.has(_t))return xt.onDestroy(()=>Vr(_t,ii.toStyles)),xt.disabled=!0,xt.overrideTotalTime(ii.totalTime),void o.push(xt);let Nn=GN;if(On.size>1){let $o=_t;const Cs=[];for(;$o=$o.parentNode;){const Ki=On.get($o);if(Ki){Nn=Ki;break}Cs.push($o)}Cs.forEach(Ki=>On.set(Ki,Nn))}const Yr=this._buildAnimation(xt.namespaceId,ii,Ni,r,fc,cd);if(xt.setRealPlayer(Yr),Nn===GN)kw.push(xt);else{const $o=this.playersByElement.get(Nn);$o&&$o.length&&(xt.parentPlayer=Xa($o)),o.push(xt)}}else Zs(_t,ii.fromStyles),xt.onDestroy(()=>Vr(_t,ii.toStyles)),$N.push(xt),p.has(_t)&&o.push(xt)}),$N.forEach(rt=>{const _t=r.get(rt.element);if(_t&&_t.length){const xt=Xa(_t);rt.setRealPlayer(xt)}}),o.forEach(rt=>{rt.parentPlayer?rt.syncPlayerEvents(rt.parentPlayer):rt.destroy()});for(let rt=0;rt!Yr.destroyed);Nn.length?a$(this,_t,Nn):this.processLeaveNode(_t)}return z.length=0,kw.forEach(rt=>{this.players.push(rt),rt.onDone(()=>{rt.destroy();const _t=this.players.indexOf(rt);this.players.splice(_t,1)}),rt.play()}),kw}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let a=[];if(e){const s=this.playersByQueriedElement.get(n);s&&(a=s)}else{const s=this.playersByElement.get(n);if(s){const c=!r||r==Su;s.forEach(u=>{u.queued||!c&&u.triggerName!=o||a.push(u)})}}return(i||o)&&(a=a.filter(s=>!(i&&i!=s.namespaceId||o&&o!=s.triggerName))),a}_beforeAnimationBuild(n,e,i){const r=e.element,a=e.isRemovalTransition?void 0:n,s=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const u=c.element,p=u!==r,g=Bo(i,u,[]);this._getPreviousPlayers(u,p,a,s,e.toState).forEach(w=>{const k=w.getRealPlayer();k.beforeDestroy&&k.beforeDestroy(),w.destroy(),g.push(w)})}Zs(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,a){const s=e.triggerName,c=e.element,u=[],p=new Set,g=new Set,b=e.timelines.map(k=>{const T=k.element;p.add(T);const z=T[wr];if(z&&z.removedBeforeQueried)return new wu(k.duration,k.delay);const re=T!==c,ae=function s$(t){const n=[];return SI(t,n),n}((i.get(T)||JU).map(Ni=>Ni.getRealPlayer())).filter(Ni=>!!Ni.element&&Ni.element===T),Ue=r.get(T),tt=a.get(T),ft=iI(this._normalizer,k.keyframes,Ue,tt),zt=this._buildPlayer(k,ft,ae);if(k.subTimeline&&o&&g.add(T),re){const Ni=new Gy(n,s,T);Ni.setRealPlayer(zt),u.push(Ni)}return zt});u.forEach(k=>{Bo(this.playersByQueriedElement,k.element,[]).push(k),k.onDone(()=>function n$(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,k.element,k))}),p.forEach(k=>Qo(k,cI));const w=Xa(b);return w.onDestroy(()=>{p.forEach(k=>Dl(k,cI)),Vr(c,e.toStyles)}),g.forEach(k=>{Bo(o,k,[]).push(w)}),w}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new wu(n.duration,n.delay)}}class Gy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new wu,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>xy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Bo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function Vp(t){return t&&1===t.nodeType}function wI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function xI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(wI(c)));const a=[];i.forEach((c,u)=>{const p=new Map;c.forEach(g=>{const b=n.computeStyle(u,g,o);p.set(g,b),(!b||0==b.length)&&(u[wr]=e$,a.push(u))}),t.set(u,p)});let s=0;return e.forEach(c=>wI(c,r[s++])),a}function DI(t,n){const e=new Map;if(t.forEach(s=>e.set(s,[])),0==n.length)return e;const o=new Set(n),r=new Map;function a(s){if(!s)return 1;let c=r.get(s);if(c)return c;const u=s.parentNode;return c=e.has(u)?u:o.has(u)?1:a(u),r.set(s,c),c}return n.forEach(s=>{const c=a(s);1!==c&&e.get(c).push(s)}),e}function Qo(t,n){t.classList?.add(n)}function Dl(t,n){t.classList?.remove(n)}function a$(t,n,e){Xa(e).onDone(()=>t.processLeaveNode(n))}function SI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class ku{constructor(n,e,i,o){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,a)=>{},this._transitionEngine=new i$(n.body,e,i,o),this._timelineEngine=new KU(n.body,e,i),this._transitionEngine.onRemovalComplete=(r,a)=>this.onRemovalComplete(r,a)}registerTrigger(n,e,i,o,r){const a=n+"-"+o;let s=this._triggerCache[a];if(!s){const c=[],p=Fy(this._driver,r,c,[]);if(c.length)throw function QH(t,n){return new ue(3404,!1)}();s=function $U(t,n,e){return new GU(t,n,e)}(o,p,this._normalizer),this._triggerCache[a]=s}this._transitionEngine.registerTrigger(e,o,s)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,a]=nI(i);this._timelineEngine.command(r,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[a,s]=nI(i);return this._timelineEngine.listen(a,e,s,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class Mu{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=Mu.initialStylesByElement.get(n);o||Mu.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Vr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Vr(this._element,this._initialStyles),this._endStyles&&(Vr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Mu.initialStylesByElement.delete(this._element),this._startStyles&&(Zs(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Zs(this._element,this._endStyles),this._endStyles=null),Vr(this._element,this._initialStyles),this._state=3)}}function qy(t){let n=null;return t.forEach((e,i)=>{(function d$(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class MI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Ny(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class TI{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return rI(n,e)}getParentElement(n){return ky(n)}query(n,e,i){return aI(n,e,i)}computeStyle(n,e,i){return Ny(n,e)}animate(n,e,i,o,r,a=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const u=new Map,p=a.filter(w=>w instanceof MI);(function CU(t,n){return 0===t||0===n})(i,o)&&p.forEach(w=>{w.currentSnapshot.forEach((k,T)=>u.set(T,k))});let g=function bU(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(w=>new Map(w));g=function wU(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,a)=>{i.has(a)||o.push(a),i.set(a,r)}),o.length)for(let r=1;ra.set(s,Ny(t,s)))}}return n}(n,g,u);const b=function l$(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=qy(n[0]),n.length>1&&(i=qy(n[n.length-1]))):n instanceof Map&&(e=qy(n)),e||i?new Mu(t,e,i):null}(n,g);return new MI(n,g,c,b)}}const II="@.disabled";class EI{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==II?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class u$ extends EI{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==II?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function h$(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),a="";return"@"!=r.charAt(0)&&([r,a]=function m$(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,a,s=>{this.factory.scheduleListenerCallback(s._data||-1,i,s)})}return this.delegate.listen(n,e,i)}}class p${constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const a=r?.parentNode(o);a&&r.removeChild(a,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const u=this._rendererCache;let p=u.get(o);return p||(p=new EI("",o,this.engine,()=>u.delete(o)),u.set(o,p)),p}const r=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);const s=u=>{Array.isArray(u)?u.forEach(s):this.engine.registerTrigger(r,a,n,u.name,u)};return e.data.animation.forEach(s),new u$(this,a,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[a,s]=r;a(s)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const OI=[{provide:Iy,useFactory:function g$(){return new uI}},{provide:ku,useClass:(()=>{class t extends ku{constructor(e,i,o){super(e,i,o,De(Ob,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(Ty),X(Iy))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})()},{provide:Ab,useFactory:function _$(t,n,e){return new p$(t,n,e)},deps:[fy,ku,We]}],Wy=[{provide:Ty,useFactory:()=>new TI},{provide:ui,useValue:"BrowserAnimations"},...OI],AI=[{provide:Ty,useClass:My},{provide:ui,useValue:"NoopAnimations"},...OI];let Ky,b$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?AI:Wy}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:Wy,imports:[Y2]})}return t})();try{Ky=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ky=!1}let Sl,ci=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?M2(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!Ky)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const PI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RI(){if(Sl)return Sl;if("object"!=typeof document||!document)return Sl=new Set(PI),Sl;let t=document.createElement("input");return Sl=new Set(PI.filter(n=>(t.setAttribute("type",n),t.type===n))),Sl}let Tu,zp,Qs,Zy;function Ja(t){return function v$(){if(null==Tu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Tu=!0}))}finally{Tu=Tu||!1}return Tu}()?t:!!t.capture}function NI(){if(null==Qs){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Qs=!1,Qs;if("scrollBehavior"in document.documentElement.style)Qs=!0;else{const t=Element.prototype.scrollTo;Qs=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Qs}function Iu(){if("object"!=typeof document||!document)return 0;if(null==zp){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),zp=0,0===t.scrollLeft&&(t.scrollLeft=1,zp=0===t.scrollLeft?1:2),t.remove()}return zp}function Hp(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function pa(t){return t.composedPath?t.composedPath()[0]:t.target}function Yy(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function FI(t){return t&&J(t.schedule)}function Qy(t){return t[t.length-1]}function LI(t){return J(Qy(t))?t.pop():void 0}function Eu(t){return FI(Qy(t))?t.pop():void 0}function es(t){return this instanceof es?(this.v=t,this):new es(t)}function zI(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function t0(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(a){return new Promise(function(s,c){!function o(r,a,s,c){Promise.resolve(c).then(function(u){r({value:u,done:s})},a)}(s,c,(a=t[r](a)).done,a.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const n0=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function HI(t){return J(t?.then)}function UI(t){return J(t[Pg])}function $I(t){return Symbol.asyncIterator&&J(t?.[Symbol.asyncIterator])}function GI(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const qI=function $$(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function WI(t){return J(t?.[qI])}function KI(t){return function jI(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(b){i[b]&&(o[b]=function(w){return new Promise(function(k,T){r.push([b,w,k,T])>1||s(b,w)})})}function s(b,w){try{!function c(b){b.value instanceof es?Promise.resolve(b.value.v).then(u,p):g(r[0][2],b)}(i[b](w))}catch(k){g(r[0][3],k)}}function u(b){s("next",b)}function p(b){s("throw",b)}function g(b,w){b(w),r.shift(),r.length&&s(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield es(e.read());if(o)return yield es(void 0);yield yield es(i)}}finally{e.releaseLock()}})}function ZI(t){return J(t?.getReader)}function Yn(t){if(t instanceof li)return t;if(null!=t){if(UI(t))return function G$(t){return new li(n=>{const e=t[Pg]();if(J(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(n0(t))return function q$(t){return new li(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,ut)})}(t);if($I(t))return YI(t);if(WI(t))return function K$(t){return new li(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(ZI(t))return function Z$(t){return YI(KI(t))}(t)}throw GI(t)}function YI(t){return new li(n=>{(function Y$(t,n){var e,i,o,r;return function BI(t,n,e,i){return new(e||(e=Promise))(function(r,a){function s(p){try{u(i.next(p))}catch(g){a(g)}}function c(p){try{u(i.throw(p))}catch(g){a(g)}}function u(p){p.done?r(p.value):function o(r){return r instanceof e?r:new e(function(a){a(r)})}(p.value).then(s,c)}u((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=zI(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function fa(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function QI(t,n=0){return $i((e,i)=>{e.subscribe(Fi(i,o=>fa(i,t,()=>i.next(o),n),()=>fa(i,t,()=>i.complete(),n),o=>fa(i,t,()=>i.error(o),n)))})}function XI(t,n=0){return $i((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function JI(t,n){if(!t)throw new Error("Iterable cannot be null");return new li(e=>{fa(e,n,()=>{const i=t[Symbol.asyncIterator]();fa(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Xi(t,n){return n?function iG(t,n){if(null!=t){if(UI(t))return function Q$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if(n0(t))return function J$(t,n){return new li(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(HI(t))return function X$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if($I(t))return JI(t,n);if(WI(t))return function eG(t,n){return new li(e=>{let i;return fa(e,n,()=>{i=t[qI](),fa(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(a){return void e.error(a)}r?e.complete():e.next(o)},0,!0)}),()=>J(i?.return)&&i.return()})}(t,n);if(ZI(t))return function tG(t,n){return JI(KI(t),n)}(t,n)}throw GI(t)}(t,n):Yn(t)}function Ke(...t){return Xi(t,Eu(t))}function An(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function qt(t,n,e){const i=J(t)||n||e?{next:t,error:n,complete:e}:t;return i?$i((o,r)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let s=!0;o.subscribe(Fi(r,c=>{var u;null===(u=i.next)||void 0===u||u.call(i,c),r.next(c)},()=>{var c;s=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var u;s=!1,null===(u=i.error)||void 0===u||u.call(i,c),r.error(c)},()=>{var c,u;s&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(u=i.finalize)||void 0===u||u.call(i)}))}):Ra}class gG extends de{constructor(n,e){super()}schedule(n,e=0){return this}}const qp={setInterval(t,n,...e){const{delegate:i}=qp;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=qp;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class a0 extends gG{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){var i;if(this.closed)return this;this.state=n;const o=this.id,r=this.scheduler;return null!=o&&(this.id=this.recycleAsyncId(r,o,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(r,this.id,e),this}requestAsyncId(n,e,i=0){return qp.setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&qp.clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(r){i=!0,o=r||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),o}unsubscribe(){if(!this.closed){const{id:n,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Z(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const s0={now:()=>(s0.delegate||Date).now(),delegate:void 0};class Au{constructor(n,e=Au.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Au.now=s0.now;class c0 extends Au{constructor(n,e=Au.now){super(n,e),this.actions=[],this._active=!1}flush(n){const{actions:e}=this;if(this._active)return void e.push(n);let i;this._active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this._active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Pu=new c0(a0),_G=Pu;function Wp(t,n=Pu){return $i((e,i)=>{let o=null,r=null,a=null;const s=()=>{if(o){o.unsubscribe(),o=null;const u=r;r=null,i.next(u)}};function c(){const u=a+t,p=n.now();if(p{r=u,a=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{s(),i.complete()},void 0,()=>{r=o=null}))})}function kt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>t.call(n,r,o++)&&i.next(r)))})}const jo=new li(t=>t.complete());function Pt(t){return t<=0?()=>jo:$i((n,e)=>{let i=0;n.subscribe(Fi(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function l0(t){return kt((n,e)=>t<=e)}function Ru(t,n=Ra){return t=t??vG,$i((e,i)=>{let o,r=!0;e.subscribe(Fi(i,a=>{const s=n(a);(r||!t(o,s))&&(r=!1,o=s,i.next(a))}))})}function vG(t,n){return t===n}function ot(t){return $i((n,e)=>{Yn(t).subscribe(Fi(e,()=>e.complete(),oi)),!e.closed&&n.subscribe(e)})}function $e(t){return null!=t&&"false"!=`${t}`}function yi(t,n=0){return eE(t)?Number(t):n}function eE(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function Kp(t){return Array.isArray(t)?t:[t]}function pn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _a(t){return t instanceof Be?t.nativeElement:t}let tE=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),CG=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=_a(e);return new li(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new qe,o=this._mutationObserverFactory.create(r=>i.next(r));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(tE))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),iE=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=yi(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new Ne,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(Wp(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(CG),_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[ge.None,"cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),Zp=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[tE]})}return t})();const{isArray:wG}=Array,{getPrototypeOf:xG,prototype:DG,keys:SG}=Object;function nE(t){if(1===t.length){const n=t[0];if(wG(n))return{args:n,keys:null};if(function kG(t){return t&&"object"==typeof t&&xG(t)===DG}(n)){const e=SG(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:MG}=Array;function d0(t){return nt(n=>function TG(t,n){return MG(n)?t(...n):t(n)}(t,n))}function oE(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function Xs(...t){const n=Eu(t),e=LI(t),{args:i,keys:o}=nE(t);if(0===i.length)return Xi([],n);const r=new li(function IG(t,n,e=Ra){return i=>{rE(n,()=>{const{length:o}=t,r=new Array(o);let a=o,s=o;for(let c=0;c{const u=Xi(t[c],n);let p=!1;u.subscribe(Fi(i,g=>{r[c]=g,p||(p=!0,s--),s||i.next(e(r.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,n,o?a=>oE(o,a):Ra));return e?r.pipe(d0(e)):r}function rE(t,n,e){t?fa(e,t,n):n()}function Pn(t,n,e=1/0){return J(n)?Pn((i,o)=>nt((r,a)=>n(i,r,o,a))(Yn(t(i,o))),e):("number"==typeof n&&(e=n),$i((i,o)=>function EG(t,n,e,i,o,r,a,s){const c=[];let u=0,p=0,g=!1;const b=()=>{g&&!c.length&&!u&&n.complete()},w=T=>u{r&&n.next(T),u++;let z=!1;Yn(e(T,p++)).subscribe(Fi(n,re=>{o?.(re),r?w(re):n.next(re)},()=>{z=!0},void 0,()=>{if(z)try{for(u--;c.length&&uk(re)):k(re)}b()}catch(re){n.error(re)}}))};return t.subscribe(Fi(n,w,()=>{g=!0,b()})),()=>{s?.()}}(i,o,t,e)))}function Ml(t=1/0){return Pn(Ra,t)}function Nu(...t){return function OG(){return Ml(1)}()(Xi(t,Eu(t)))}function an(...t){const n=Eu(t);return $i((e,i)=>{(n?Nu(t,e,n):Nu(t,e)).subscribe(i)})}const aE=new Set;let Js,AG=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):RG}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function PG(t,n){if(!aE.has(t))try{Js||(Js=document.createElement("style"),n&&(Js.nonce=n),Js.setAttribute("type","text/css"),document.head.appendChild(Js)),Js.sheet&&(Js.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(s_,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function RG(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let u0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new qe}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return sE(Kp(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=Xs(sE(Kp(e)).map(a=>this._registerQuery(a).observable));return r=Nu(r.pipe(Pt(1)),r.pipe(l0(1),Wp(0))),r.pipe(nt(a=>{const s={matches:!1,breakpoints:{}};return a.forEach(({matches:c,query:u})=>{s.matches=s.matches||c,s.breakpoints[u]=c}),s}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new li(a=>{const s=c=>this._zone.run(()=>a.next(c));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(an(i),nt(({matches:a})=>({query:e,matches:a})),ot(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(X(AG),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function Yp(t,n,e){const i=Qp(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))}function Tl(t,n,e){const o=Qp(t,n).filter(r=>r!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function Qp(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const lE="cdk-describedby-message",Xp="cdk-describedby-host";let h0=0,FG=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+h0++,this._document=e,this._id=De(wd)+"-"+h0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=m0(i,o);"string"!=typeof i?(dE(i,this._id),this._messageRegistry.set(r,{messageElement:i,referenceCount:0})):this._messageRegistry.has(r)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,r)||this._addMessageReference(e,r)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const r=m0(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const a=this._messageRegistry.get(r);a&&0===a.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${Xp}="${this._id}"]`);for(let i=0;i0!=o.indexOf(lE));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);Yp(e,"aria-describedby",o.messageElement.id),e.setAttribute(Xp,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,Tl(e,"aria-describedby",o.messageElement.id),e.removeAttribute(Xp)}_isElementDescribedByMessage(e,i){const o=Qp(e,"aria-describedby"),r=this._messageRegistry.get(i),a=r&&r.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),r=e.getAttribute("aria-label");return!(!o||r&&r.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function m0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function dE(t,n){t.id||(t.id=`${lE}-${n}-${h0++}`)}class uE{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new qe,this._typeaheadSubscription=de.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new qe,this.change=new qe,n instanceof oa&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(qt(e=>this._pressedLetters.push(e)),Wp(n),kt(()=>this._pressedLetters.length>0),nt(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof oa?this._items.toArray():this._items}}class hE extends uE{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Jp extends uE{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let Fu=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function BG(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function LG(t){try{return t.frameElement}catch{return null}}(function qG(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===pE(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=pE(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function $G(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function GG(t){return!function jG(t){return function HG(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function VG(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function zG(t){return function UG(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||mE(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function mE(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function pE(t){if(!mE(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class fE{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Pt(1)).subscribe(n)}}let ef=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new fE(e,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Fu),X(We),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function p0(t){return 0===t.buttons||0===t.detail}function f0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const WG=new se("cdk-input-modality-detector-options"),KG={ignoreKeys:[18,17,224,91,16]},Il=Ja({passive:!0,capture:!0});let ZG=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new mt(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(s=>s===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(p0(a)?"keyboard":"mouse"),this._mostRecentTarget=pa(a))},this._onTouchstart=a=>{f0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pa(a))},this._options={...KG,...r},this.modalityDetected=this._modality.pipe(l0(1)),this.modalityChanged=this.modalityDetected.pipe(Ru()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Il),o.addEventListener("mousedown",this._onMousedown,Il),o.addEventListener("touchstart",this._onTouchstart,Il)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Il),document.removeEventListener("mousedown",this._onMousedown,Il),document.removeEventListener("touchstart",this._onTouchstart,Il))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(dt),X(WG,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const YG=new se("liveAnnouncerElement",{providedIn:"root",factory:function QG(){return null}}),XG=new se("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let JG=0,g0=(()=>{class t{constructor(e,i,o,r){this._ngZone=i,this._defaultOptions=r,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[r,a]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",r),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let r=0;r .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,r,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new qe,this._rootNodeFocusAndBlurListener=s=>{for(let u=pa(s);u;u=u.parentElement)"focus"===s.type?this._onFocus(s,u):this._onBlur(s,u)},this._document=r,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=_a(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ke();const r=function C$(t){if(function y$(){if(null==Zy){const t=typeof document<"u"?document.head:null;Zy=!(!t||!t.createShadowRoot&&!t.attachShadow)}return Zy}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const s={checkChildren:i,subject:new qe,rootNode:r};return this._elementInfo.set(o,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(e){const i=_a(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=_a(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([s,c])=>this._originChanged(s,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=pa(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,tf)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(ot(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,tf),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new Ne}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(zo))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();const _E="cdk-high-contrast-black-on-white",bE="cdk-high-contrast-white-on-black",_0="cdk-high-contrast-active";let vE=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=De(u0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(_0,_E,bE),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(_0,_E):2===i&&e.add(_0,bE)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Zp]})}return t})();const iq=new se("cdk-dir-doc",{providedIn:"root",factory:function nq(){return De(dt)}}),oq=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let fn=(()=>{class t{constructor(e){this.value="ltr",this.change=new Ne,e&&(this.value=function rq(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?oq.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(X(iq,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lu=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const aq=["*",[["mat-option"],["ng-container"]]],sq=["*","mat-option, ng-container"],cq=["text"];function lq(t,n){if(1&t&&D(0,"mat-pseudo-checkbox",6),2&t){const e=C();f("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dq(t,n){1&t&&D(0,"mat-pseudo-checkbox",7),2&t&&f("disabled",C().disabled)}function uq(t,n){if(1&t&&(d(0,"span",8),h(1),l()),2&t){const e=C();m(),xe("(",e.group.label,")")}}const hq=[[["mat-icon"]],"*"],mq=["mat-icon","*"],fq=new se("mat-sanity-checks",{providedIn:"root",factory:function pq(){return!0}});let Mt=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!Yy()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE),X(fq,8),X(dt))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Lu,Lu]})}return t})();function jr(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=$e(n)}constructor(...n){super(...n),this._disabled=!1}}}function is(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function ns(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=$e(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function os(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?yi(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function v0(t){return class extends t{updateErrorState(){const n=this.errorState,r=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);r!==n&&(this.errorState=r,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}function gq(t){return class extends t{constructor(...n){super(...n),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new li(e=>{this._isInitialized?this._notifySubscriber(e):this._pendingSubscribers.push(e)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(n){n.next(),n.complete()}}}let nf=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class bq{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wE=Ja({passive:!0,capture:!0});class vq{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=pa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}addHandler(n,e,i,o){const r=this._events.get(e);if(r){const a=r.get(i);a?a.add(o):r.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wE)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const r=o.get(e);r&&(r.delete(i),0===r.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,wE)))}}const xE={enterDuration:225,exitDuration:150},DE=Ja({passive:!0,capture:!0}),SE=["mousedown","touchstart"],kE=["mouseup","mouseleave","touchend","touchcancel"];class Vu{static#e=this._eventManager=new vq;constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=_a(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...xE,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function Cq(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),s=n-o.left,c=e-o.top,u=r.enterDuration,p=document.createElement("div");p.classList.add("mat-ripple-element"),p.style.left=s-a+"px",p.style.top=c-a+"px",p.style.height=2*a+"px",p.style.width=2*a+"px",null!=i.color&&(p.style.backgroundColor=i.color),p.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(p);const g=window.getComputedStyle(p),w=g.transitionDuration,k="none"===g.transitionProperty||"0s"===w||"0s, 0s"===w||0===o.width&&0===o.height,T=new bq(this,p,i,k);p.style.transform="scale3d(1, 1, 1)",T.state=0,i.persistent||(this._mostRecentTransientRipple=T);let z=null;return!k&&(u||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const re=()=>this._finishRippleTransition(T),ae=()=>this._destroyRipple(T);p.addEventListener("transitionend",re),p.addEventListener("transitioncancel",ae),z={onTransitionEnd:re,onTransitionCancel:ae}}),this._activeRipples.set(T,z),(k||!u)&&this._finishRippleTransition(T),T}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...xE,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=_a(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,SE.forEach(i=>{Vu._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{kE.forEach(e=>{this._triggerElement.addEventListener(e,this,DE)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=p0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(SE.forEach(e=>Vu._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&kE.forEach(e=>n.removeEventListener(e,this,DE)))}}const El=new se("mat-ripple-global-options");let rs=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,r,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new Vu(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(ci),_(El,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-ripple-unbounded",o.unbounded)},inputs:{color:[ge.None,"matRippleColor","color"],unbounded:[ge.None,"matRippleUnbounded","unbounded"],centered:[ge.None,"matRippleCentered","centered"],radius:[ge.None,"matRippleRadius","radius"],animation:[ge.None,"matRippleAnimation","animation"],disabled:[ge.None,"matRippleDisabled","disabled"],trigger:[ge.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),as=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})(),wq=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static#e=this.\u0275fac=function(i){return new(i||t)(_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&et("mat-pseudo-checkbox-indeterminate","indeterminate"===o.state)("mat-pseudo-checkbox-checked","checked"===o.state)("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal","minimal"===o.appearance)("mat-pseudo-checkbox-full","full"===o.appearance)("_mat-animation-noopable","NoopAnimations"===o._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,o){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),ME=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt]})}return t})();const rf=new se("MAT_OPTION_PARENT_COMPONENT"),xq=jr(class{});let Dq=0,Sq=(()=>{class t extends xq{constructor(e){super(),this._labelId="mat-optgroup-label-"+Dq++,this._inert=e?.inertGroups??!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(rf,8))};static#t=this.\u0275dir=Q({type:t,inputs:{label:"label"},features:[ve]})}return t})();const af=new se("MatOptgroup");let TE=(()=>{class t extends Sq{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-mdc-optgroup"],hostVars:3,hostBindings:function(i,o){2&i&&Xe("role",o._inert?null:"group")("aria-disabled",o._inert?null:o.disabled.toString())("aria-labelledby",o._inert?null:o._labelId)},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[Ye([{provide:af,useExisting:t}]),ve],ngContentSelectors:sq,decls:5,vars:4,consts:[["role","presentation",1,"mat-mdc-optgroup-label",3,"id"],[1,"mdc-list-item__primary-text"]],template:function(i,o){1&i&&(Ut(aq),d(0,"span",0)(1,"span",1),h(2),Ze(3),l()(),Ze(4,1)),2&i&&(et("mdc-list-item--disabled",o.disabled),f("id",o._labelId),m(2),xe("",o.label," "))},styles:[".mat-mdc-optgroup{color:var(--mat-optgroup-label-text-color);font-family:var(--mat-optgroup-label-text-font);line-height:var(--mat-optgroup-label-text-line-height);font-size:var(--mat-optgroup-label-text-size);letter-spacing:var(--mat-optgroup-label-text-tracking);font-weight:var(--mat-optgroup-label-text-weight)}.mat-mdc-optgroup-label{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;min-height:48px}.mat-mdc-optgroup-label:focus{outline:none}[dir=rtl] .mat-mdc-optgroup-label,.mat-mdc-optgroup-label[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-optgroup-label.mdc-list-item--disabled{opacity:.38}.mat-mdc-optgroup-label .mdc-list-item__primary-text{font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;white-space:normal}"],encapsulation:2,changeDetection:0})}return t})(),kq=0;class IE{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Mq=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=$e(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,r){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+kq++,this.onSelectionChange=new Ne,this._stateChanges=new qe}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!An(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new IE(this,e))}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(cq,7),2&i){let r;Oe(r=Ae())&&(o._text=r.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}})}return t})(),Tn=(()=>{class t extends Mq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(rf,8),_(af,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&A("click",function(){return o._selectViaInteraction()})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),et("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},exportAs:["matOption"],features:[ve],ngContentSelectors:mq,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox","aria-hidden","true",3,"disabled","state",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","aria-hidden","true","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(i,o){1&i&&(Ut(hq),y(0,lq,1,2,"mat-pseudo-checkbox",0),Ze(1),d(2,"span",1,2),Ze(4,1),l(),y(5,dq,1,1,"mat-pseudo-checkbox",3)(6,uq,2,1,"span",4),D(7,"div",5)),2&i&&(f("ngIf",o.multiple),m(5),f("ngIf",!o.multiple&&o.selected&&!o.hideSingleSelectionIndicator),m(),f("ngIf",o.group&&o.group._inert),m(),f("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[rs,It,wq],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function EE(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}let sf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[as,Vn,Mt,ME]})}return t})();const AE={capture:!0},PE=["focus","click","mouseenter","touchstart"],y0="mat-ripple-loader-uninitialized",C0="mat-ripple-loader-class-name",RE="mat-ripple-loader-centered",cf="mat-ripple-loader-disabled";let NE=(()=>{class t{constructor(){this._document=De(dt,{optional:!0}),this._animationMode=De(ui,{optional:!0}),this._globalRippleOptions=De(El,{optional:!0}),this._platform=De(ci),this._ngZone=De(We),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const o=e.target.closest(`[${y0}]`);o&&this._createRipple(o)},this._ngZone.runOutsideAngular(()=>{for(const e of PE)this._document?.addEventListener(e,this._onInteraction,AE)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of PE)this._document?.removeEventListener(i,this._onInteraction,AE)}configureRipple(e,i){e.setAttribute(y0,""),(i.className||!e.hasAttribute(C0))&&e.setAttribute(C0,i.className||""),i.centered&&e.setAttribute(RE,""),i.disabled&&e.setAttribute(cf,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const o=this._hosts.get(e);o?o.disabled=i:i?e.setAttribute(cf,""):e.removeAttribute(cf)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const o=this._document.createElement("span");o.classList.add("mat-ripple",e.getAttribute(C0)),e.append(o);const r=new rs(new Be(o),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return r._isInitialized=!0,r.trigger=e,r.centered=e.hasAttribute(RE),r.disabled=e.hasAttribute(cf),this.attachRipple(e,r),r}attachRipple(e,i){e.removeAttribute(y0),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Tq=["*",[["mat-toolbar-row"]]],Iq=["*","mat-toolbar-row"],Eq=is(class{constructor(t){this._elementRef=t}});let Oq=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]})}return t})(),Aq=(()=>{class t extends Eq{constructor(e,i,o){super(e),this._platform=i,this._document=o}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(dt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-toolbar"]],contentQueries:function(i,o,r){if(1&i&>(r,Oq,5),2&i){let a;Oe(a=Ae())&&(o._toolbarRows=a)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-toolbar-multiple-rows",o._toolbarRows.length>0)("mat-toolbar-single-row",0===o._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[ve],ngContentSelectors:Iq,decls:2,vars:0,template:function(i,o){1&i&&(Ut(Tq),Ze(0),Ze(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}return t})(),FE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();const LE=["mat-button",""],BE=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],VE=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],jE=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",Rq=["mat-icon-button",""],Nq=["*"],Fq=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Lq=is(jr(ns(class{constructor(t){this._elementRef=t}})));let w0=(()=>{class t extends Lq{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e),this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._updateRippleDisabled()}constructor(e,i,o,r){super(e),this._platform=i,this._ngZone=o,this._animationMode=r,this._focusMonitor=De(zo),this._rippleLoader=De(NE),this._isFab=!1,this._disableRipple=!1,this._disabled=!1,this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-button-ripple"});const a=e.nativeElement.classList;for(const s of Fq)this._hasHostAttributes(s.selector)&&s.mdcClasses.forEach(c=>{a.add(c)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Vq=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Yt=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),zE=(()=>{class t extends Vq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null)("tabindex",o.disabled?-1:o.tabIndex)("aria-disabled",o.disabled.toString()),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',jE],encapsulation:2,changeDetection:0})}return t})(),ba=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:Rq,ngContentSelectors:Nq,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(),D(0,"span",0),Ze(1),D(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',jE],encapsulation:2,changeDetection:0})}return t})(),lf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,as,Mt]})}return t})();function ju(t,n){const e=J(t)?t:()=>t,i=o=>o.error(e());return new li(n?o=>n.schedule(i,0,o):i)}function x0(...t){const n=LI(t),{args:e,keys:i}=nE(t),o=new li(r=>{const{length:a}=e;if(!a)return void r.complete();const s=new Array(a);let c=a,u=a;for(let p=0;p{g||(g=!0,u--),s[p]=b},()=>c--,void 0,()=>{(!c||!g)&&(u||r.next(i?oE(i,s):s),r.complete())}))}});return n?o.pipe(d0(n)):o}function Li(t){return $i((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Fi(e,void 0,void 0,a=>{r=Yn(t(a,Li(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function ec(t){return $i((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function HE(t={}){const{connector:n=(()=>new qe),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let a,s,c,u=0,p=!1,g=!1;const b=()=>{s?.unsubscribe(),s=void 0},w=()=>{b(),a=c=void 0,p=g=!1},k=()=>{const T=a;w(),T?.unsubscribe()};return $i((T,z)=>{u++,!g&&!p&&b();const re=c=c??n();z.add(()=>{u--,0===u&&!g&&!p&&(s=D0(k,o))}),re.subscribe(z),!a&&u>0&&(a=new Ds({next:ae=>re.next(ae),error:ae=>{g=!0,b(),s=D0(w,e,ae),re.error(ae)},complete:()=>{p=!0,b(),s=D0(w,i),re.complete()}}),Yn(T).subscribe(a))})(r)}}function D0(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ds({next:()=>{i.unsubscribe(),t()}});return Yn(n(...e)).subscribe(i)}function Ol(t,n){return J(n)?Pn(t,n,1):Pn(t,1)}function gn(t,n){return $i((e,i)=>{let o=null,r=0,a=!1;const s=()=>a&&!o&&i.complete();e.subscribe(Fi(i,c=>{o?.unsubscribe();let u=0;const p=r++;Yn(t(c,p)).subscribe(o=Fi(i,g=>i.next(n?n(c,g,p,u++):g),()=>{o=null,s()}))},()=>{a=!0,s()}))})}class df{}class uf{}class Jo{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(a):this.headers.set(r,[a])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Jo?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Jo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Jo?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let a=this.headers.get(e);if(!a)return;a=a.filter(s=>-1===r.indexOf(s)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class zq{encodeKey(n){return UE(n)}encodeValue(n){return UE(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const Uq=/%(\d[a-f0-9])/gi,$q={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function UE(t){return encodeURIComponent(t).replace(Uq,(n,e)=>$q[e]??n)}function hf(t){return`${t}`}class ss{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new zq,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Hq(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[a,s]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(a)||[];c.push(s),e.set(a,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(hf):[hf(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ss({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(hf(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(hf(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class Gq{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function $E(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function GE(t){return typeof Blob<"u"&&t instanceof Blob}function qE(t){return typeof FormData<"u"&&t instanceof FormData}class zu{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function qq(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Jo,this.context??=new Gq,this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":sg.set(b,n.setHeaders[b]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,b)=>g.set(b,n.setParams[b]),u)),new zu(e,i,r,{params:u,headers:c,context:p,reportProgress:s,responseType:o,withCredentials:a})}}var cs=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(cs||{});class S0{constructor(n,e=Hu.Ok,i="OK"){this.headers=n.headers||new Jo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class mf extends S0{constructor(n={}){super(n),this.type=cs.ResponseHeader}clone(n={}){return new mf({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class tc extends S0{constructor(n={}){super(n),this.type=cs.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new tc({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Al extends S0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var Hu=function(t){return t[t.Continue=100]="Continue",t[t.SwitchingProtocols=101]="SwitchingProtocols",t[t.Processing=102]="Processing",t[t.EarlyHints=103]="EarlyHints",t[t.Ok=200]="Ok",t[t.Created=201]="Created",t[t.Accepted=202]="Accepted",t[t.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",t[t.NoContent=204]="NoContent",t[t.ResetContent=205]="ResetContent",t[t.PartialContent=206]="PartialContent",t[t.MultiStatus=207]="MultiStatus",t[t.AlreadyReported=208]="AlreadyReported",t[t.ImUsed=226]="ImUsed",t[t.MultipleChoices=300]="MultipleChoices",t[t.MovedPermanently=301]="MovedPermanently",t[t.Found=302]="Found",t[t.SeeOther=303]="SeeOther",t[t.NotModified=304]="NotModified",t[t.UseProxy=305]="UseProxy",t[t.Unused=306]="Unused",t[t.TemporaryRedirect=307]="TemporaryRedirect",t[t.PermanentRedirect=308]="PermanentRedirect",t[t.BadRequest=400]="BadRequest",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Gone=410]="Gone",t[t.LengthRequired=411]="LengthRequired",t[t.PreconditionFailed=412]="PreconditionFailed",t[t.PayloadTooLarge=413]="PayloadTooLarge",t[t.UriTooLong=414]="UriTooLong",t[t.UnsupportedMediaType=415]="UnsupportedMediaType",t[t.RangeNotSatisfiable=416]="RangeNotSatisfiable",t[t.ExpectationFailed=417]="ExpectationFailed",t[t.ImATeapot=418]="ImATeapot",t[t.MisdirectedRequest=421]="MisdirectedRequest",t[t.UnprocessableEntity=422]="UnprocessableEntity",t[t.Locked=423]="Locked",t[t.FailedDependency=424]="FailedDependency",t[t.TooEarly=425]="TooEarly",t[t.UpgradeRequired=426]="UpgradeRequired",t[t.PreconditionRequired=428]="PreconditionRequired",t[t.TooManyRequests=429]="TooManyRequests",t[t.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",t[t.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",t[t.InternalServerError=500]="InternalServerError",t[t.NotImplemented=501]="NotImplemented",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t[t.HttpVersionNotSupported=505]="HttpVersionNotSupported",t[t.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",t[t.InsufficientStorage=507]="InsufficientStorage",t[t.LoopDetected=508]="LoopDetected",t[t.NotExtended=510]="NotExtended",t[t.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",t}(Hu||{});function k0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let pf=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof zu)r=e;else{let c,u;c=o.headers instanceof Jo?o.headers:new Jo(o.headers),o.params&&(u=o.params instanceof ss?o.params:new ss({fromObject:o.params})),r=new zu(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const a=Ke(r).pipe(Ol(c=>this.handler.handle(c)));if(e instanceof zu||"events"===o.observe)return a;const s=a.pipe(kt(c=>c instanceof tc));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return s.pipe(nt(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return s.pipe(nt(c=>c.body))}case"response":return s;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ss).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,k0(o,i))}post(e,i,o={}){return this.request("POST",e,k0(o,i))}put(e,i,o={}){return this.request("PUT",e,k0(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(df))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function KE(t,n){return n(t)}function Xq(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const ZE=new se(""),Uu=new se(""),YE=new se(""),QE=new se("");function eW(){let t=null;return(n,e)=>{null===t&&(t=(De(ZE,{optional:!0})??[]).reduceRight(Xq,KE));const i=De(Vs),o=i.add();return t(n,e).pipe(ec(()=>i.remove(o)))}}let XE=(()=>{class t extends df{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=De(Vs);const o=De(QE,{optional:!0});this.backend=o??e}handle(e){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Uu),...this.injector.get(YE,[])]));this.chain=o.reduceRight((r,a)=>function Jq(t,n,e){return(i,o)=>Ha(e,()=>n(i,r=>t(r,o)))}(r,a,this.injector),KE)}const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(ec(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||t)(X(uf),X(Ao))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const rW=/^\)\]\}',?\n/;let eO=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ue(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?Xi(i.\u0275loadImpl()):Ke(null)).pipe(gn(()=>new li(r=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((T,z)=>a.setRequestHeader(T,z.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const T=e.detectContentTypeHeader();null!==T&&a.setRequestHeader("Content-Type",T)}if(e.responseType){const T=e.responseType.toLowerCase();a.responseType="json"!==T?T:"text"}const s=e.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const T=a.statusText||"OK",z=new Jo(a.getAllResponseHeaders()),re=function aW(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return c=new mf({headers:z,status:a.status,statusText:T,url:re}),c},p=()=>{let{headers:T,status:z,statusText:re,url:ae}=u(),Ue=null;z!==Hu.NoContent&&(Ue=typeof a.response>"u"?a.responseText:a.response),0===z&&(z=Ue?Hu.Ok:0);let tt=z>=200&&z<300;if("json"===e.responseType&&"string"==typeof Ue){const ft=Ue;Ue=Ue.replace(rW,"");try{Ue=""!==Ue?JSON.parse(Ue):null}catch(zt){Ue=ft,tt&&(tt=!1,Ue={error:zt,text:Ue})}}tt?(r.next(new tc({body:Ue,headers:T,status:z,statusText:re,url:ae||void 0})),r.complete()):r.error(new Al({error:Ue,headers:T,status:z,statusText:re,url:ae||void 0}))},g=T=>{const{url:z}=u(),re=new Al({error:T,status:a.status||0,statusText:a.statusText||"Unknown Error",url:z||void 0});r.error(re)};let b=!1;const w=T=>{b||(r.next(u()),b=!0);let z={type:cs.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),"text"===e.responseType&&a.responseText&&(z.partialText=a.responseText),r.next(z)},k=T=>{let z={type:cs.UploadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),r.next(z)};return a.addEventListener("load",p),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),e.reportProgress&&(a.addEventListener("progress",w),null!==s&&a.upload&&a.upload.addEventListener("progress",k)),a.send(s),r.next({type:cs.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",p),a.removeEventListener("timeout",g),e.reportProgress&&(a.removeEventListener("progress",w),null!==s&&a.upload&&a.upload.removeEventListener("progress",k)),a.readyState!==a.DONE&&a.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||t)(X(I2))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const I0=new se(""),tO=new se("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),iO=new se("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class nO{}let lW=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=f2(e,this.cookieName),this.lastCookieString=e),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ra),X(tO))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function dW(t,n){const e=t.url.toLowerCase();if(!De(I0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=De(nO).getToken(),o=De(iO);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var ls=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(ls||{});function uW(...t){const n=[pf,eO,XE,{provide:df,useExisting:XE},{provide:uf,useExisting:eO},{provide:Uu,useValue:dW,multi:!0},{provide:I0,useValue:!0},{provide:nO,useClass:lW}];for(const e of t)n.push(...e.\u0275providers);return function Qh(t){return{\u0275providers:t}}(n)}const oO=new se("");function hW(){return function ic(t,n){return{\u0275kind:t,\u0275providers:n}}(ls.LegacyInterceptors,[{provide:oO,useFactory:eW},{provide:Uu,useExisting:oO,multi:!0}])}let mW=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[uW(hW())]})}return t})();const vW=["*"];let gf;function $u(t){return function yW(){if(void 0===gf&&(gf=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gf=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gf}()?.createHTML(t)||t}function uO(t){return Error(`Unable to find icon with the name "${t}"`)}function hO(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function mO(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class nc{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let _f=(()=>{class t{constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,r){return this._addSvgIconConfig(e,i,new nc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const a=this._sanitizer.sanitize(Bn.HTML,o);if(!a)throw mO(o);const s=$u(a);return this._addSvgIconConfig(e,i,new nc("",s,r))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new nc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(Bn.HTML,i);if(!r)throw mO(i);const a=$u(r);return this._addSvgIconSetConfig(e,new nc("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(Bn.RESOURCE_URL,e);if(!i)throw hO(e);const o=this._cachedIconsByUrl.get(i);return o?Ke(bf(o)):this._loadSvgIconFromConfig(new nc(e,null)).pipe(qt(r=>this._cachedIconsByUrl.set(i,r)),nt(r=>bf(r)))}getNamedSvgIcon(e,i=""){const o=pO(i,e);let r=this._svgIconConfigs.get(o);if(r)return this._getSvgFromConfig(r);if(r=this._getIconConfigFromResolvers(i,e),r)return this._svgIconConfigs.set(o,r),this._getSvgFromConfig(r);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):ju(uO(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ke(bf(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(nt(i=>bf(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ke(o):x0(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Li(s=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(Bn.RESOURCE_URL,a.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(u)),Ke(null)})))).pipe(nt(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw uO(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const r=i[o];if(r.svgText&&r.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(r),s=this._extractSvgIconFromSet(a,e,r.options);if(s)return s}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(qt(i=>e.svgText=i),nt(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ke(null):this._fetchIcon(e).pipe(qt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const a=r.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const s=this._svgElementFromString($u(""));return s.appendChild(a),this._setSvgAttributes(s,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString($u("")),o=e.attributes;for(let r=0;r$u(u)),ec(()=>this._inProgressUrlFetches.delete(a)),HE());return this._inProgressUrlFetches.set(a,c),c}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(pO(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),fO=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],TW=fO.map(t=>`[${t}]`).join(", "),IW=/^url\(['"]?#(.*?)['"]?\)$/;let Mi=(()=>{class t extends DW{get inline(){return this._inline}set inline(e){this._inline=$e(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,r,a,s){super(e),this._iconRegistry=i,this._location=r,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=de.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,r)=>{o.forEach(a=>{r.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(TW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const s=i[r],c=s.getAttribute(a),u=c?c.match(IW):null;if(u){let p=o.get(s);p||(p=[],o.set(s,p)),p.push({name:a,value:u[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Pt(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(_f),oo("aria-hidden"),_(kW),_(Go),_(SW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("data-mat-icon-type",o._usingFontIcon()?"font":"svg")("data-mat-icon-name",o._svgName||o.fontIcon)("data-mat-icon-namespace",o._svgNamespace||o.fontSet)("fontIcon",o._usingFontIcon()?o.fontIcon:null),et("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[ve],ngContentSelectors:vW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),gO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();const EW=["*"],PW=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],RW=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],NW=new se("MAT_CARD_CONFIG");let Gu=(()=>{class t{constructor(e){this.appearance=e?.appearance||"raised"}static#e=this.\u0275fac=function(i){return new(i||t)(_(NW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-card-outlined","outlined"===o.appearance)("mdc-card--outlined","outlined"===o.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:EW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation);--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})(),E0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return t})(),O0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return t})(),_O=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:RW,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,o){1&i&&(Ut(PW),Ze(0),d(1,"div",0),Ze(2,1),l(),Ze(3,2))},encapsulation:2,changeDetection:0})}return t})(),bO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,Mt]})}return t})();const VW=new se("MAT_PROGRESS_BAR_DEFAULT_OPTIONS"),zW=is(class{constructor(t){this._elementRef=t}},"primary");let vO=(()=>{class t extends zW{constructor(e,i,o,r,a){super(e),this._ngZone=i,this._changeDetectorRef=o,this._animationMode=r,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new Ne,this._mode="determinate",this._transitionendHandler=s=>{0===this.animationEnd.observers.length||!s.target||!s.target.classList.contains("mdc-linear-progress__primary-bar")||("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))},this._isNoopAnimation="NoopAnimations"===r,a&&(a.color&&(this.color=this.defaultColor=a.color),this.mode=a.mode||this.mode)}get value(){return this._value}set value(e){this._value=yO(yi(e)),this._changeDetectorRef.markForCheck()}get bufferValue(){return this._bufferValue||0}set bufferValue(e){this._bufferValue=yO(yi(e)),this._changeDetectorRef.markForCheck()}get mode(){return this._mode}set mode(e){this._mode=e,this._changeDetectorRef.markForCheck()}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._transitionendHandler)})}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._transitionendHandler)}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${"buffer"===this.mode?this.bufferValue:100}%`}_isIndeterminate(){return"indeterminate"===this.mode||"query"===this.mode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(Lt),_(ui,8),_(VW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("aria-valuenow",o._isIndeterminate()?null:o.value)("mode",o.mode),et("_mat-animation-noopable",o._isNoopAnimation)("mdc-linear-progress--animation-ready",!o._isNoopAnimation)("mdc-linear-progress--indeterminate",o._isIndeterminate()))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[ve],decls:7,vars:4,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"div",1)(2,"div",2),l(),d(3,"div",3),D(4,"span",4),l(),d(5,"div",5),D(6,"span",4),l()),2&i&&(m(),Sn("flex-basis",o._getBufferBarFlexBasis()),m(2),Sn("transform",o._getPrimaryBarTransform()))},styles:["@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}"],encapsulation:2,changeDetection:0})}return t})();function yO(t,n=0,e=100){return Math.max(n,Math.min(e,t))}let CO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt]})}return t})();function Ri(...t){const n=Eu(t),e=function w$(t,n){return"number"==typeof Qy(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Yn(i[0]):Ml(e)(Xi(i,n)):jo}let wO=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=$e(e)}get inset(){return this._inset}set inset(e){this._inset=$e(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("aria-orientation",o.vertical?"vertical":"horizontal"),et("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,o){},styles:[".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),A0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Mt]})}return t})();function P0(){return $i((t,n)=>{let e=null;t._refCount++;const i=Fi(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class R0 extends li{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Ow(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new de;const e=this.getSubject();n.add(this.source.subscribe(Fi(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=de.EMPTY)}return n}refCount(){return P0()(this)}}function Pl(t){return!!t&&(t instanceof li||J(t.lift)&&J(t.subscribe))}class vf{}function yf(t){return t&&"function"==typeof t.connect&&!(t instanceof R0)}class xO{applyChanges(n,e,i,o,r){n.forEachOperation((a,s,c)=>{let u,p;if(null==a.previousIndex){const g=i(a,s,c);u=e.createEmbeddedView(g.templateRef,g.context,g.index),p=1}else null==c?(e.remove(s),p=3):(u=e.get(s),e.move(u,c),p=2);r&&r({context:u?.context,operation:p,record:a})})}detach(){}}class qu{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new qe,e&&e.length&&(n?e.forEach(r=>this._markSelected(r)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(r)).forEach(r=>this._unmarkSelected(r));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}let N0=(()=>{class t{constructor(){this._listeners=[]}notify(e,i){for(let o of this._listeners)o(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Wu=new se("_ViewRepeater");let SO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be))};static#t=this.\u0275dir=Q({type:t})}return t})(),oc=(()=>{class t extends SO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const uo=new se(""),UW={provide:uo,useExisting:Qt(()=>Ci),multi:!0},GW=new se("");let Ci=(()=>{class t extends SO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function $W(){const t=Qa()?Qa().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be),_(GW,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o._handleInput(a.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(a){return o._compositionEnd(a.target.value)})},features:[Ye([UW]),ve]})}return t})();function ds(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function MO(t){return null!=t&&"number"==typeof t.length}const jn=new se(""),us=new se(""),qW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ee{static min(n){return function TO(t){return n=>{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return EO(n)}static requiredTrue(n){return function OO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function AO(t){return ds(t.value)||qW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return PO(n)}static maxLength(n){return RO(n)}static pattern(n){return NO(n)}static nullValidator(n){return null}static compose(n){return zO(n)}static composeAsync(n){return HO(n)}}function EO(t){return ds(t.value)?{required:!0}:null}function PO(t){return n=>ds(n.value)||!MO(n.value)?null:n.value.lengthMO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function NO(t){if(!t)return Cf;let n,e;return"string"==typeof t?(e="","^"!==t.charAt(0)&&(e+="^"),e+=t,"$"!==t.charAt(t.length-1)&&(e+="$"),n=new RegExp(e)):(e=t.toString(),n=t),i=>{if(ds(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}function Cf(t){return null}function FO(t){return null!=t}function LO(t){return pu(t)?Xi(t):t}function BO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function VO(t,n){return n.map(e=>e(t))}function jO(t){return t.map(n=>function WW(t){return!t.validate}(n)?n:e=>n.validate(e))}function zO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return BO(VO(e,n))}}function F0(t){return null!=t?zO(jO(t)):null}function HO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return x0(VO(e,n).map(LO)).pipe(nt(BO))}}function L0(t){return null!=t?HO(jO(t)):null}function UO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function $O(t){return t._rawValidators}function GO(t){return t._rawAsyncValidators}function B0(t){return t?Array.isArray(t)?t:[t]:[]}function wf(t,n){return Array.isArray(t)?t.includes(n):t===n}function qO(t,n){const e=B0(n);return B0(t).forEach(o=>{wf(e,o)||e.push(o)}),e}function WO(t,n){return B0(n).filter(e=>!wf(t,e))}class KO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=F0(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=L0(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class ho extends KO{get formDirective(){return null}get path(){return null}}class xr extends KO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class ZO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let _i=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr,2))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[ve]})}return t})(),Bi=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[ve]})}return t})();const Ku="VALID",Df="INVALID",Rl="PENDING",Zu="DISABLED";function z0(t){return(Sf(t)?t.validators:t)||null}function H0(t,n){return(Sf(n)?n.asyncValidators:t)||null}function Sf(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function QO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new ue(1e3,"");if(!i[e])throw new ue(1001,"")}function XO(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new ue(1002,"")})}class kf{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ku}get invalid(){return this.status===Df}get pending(){return this.status==Rl}get disabled(){return this.status===Zu}get enabled(){return this.status!==Zu}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(qO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(qO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(WO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(WO(n,this._rawAsyncValidators))}hasValidator(n){return wf(this._rawValidators,n)}hasAsyncValidator(n){return wf(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Rl,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zu,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Ku,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ku||this.status===Rl)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zu:Ku}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Rl,this._hasOwnPendingAsyncValidator=!0;const e=LO(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?Zu:this.errors?Df:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Rl)?Rl:this._anyControlsHaveStatus(Df)?Df:Ku}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Sf(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function QW(t){return Array.isArray(t)?F0(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function XW(t){return Array.isArray(t)?L0(t):t||null}(this._rawAsyncValidators)}}class ti extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){XO(this,0,n),Object.keys(n).forEach(i=>{QO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class JO extends ti{}const rc=new se("CallSetDisabledState",{providedIn:"root",factory:()=>Yu}),Yu="always";function Mf(t,n){return[...n.path,t]}function Qu(t,n,e=Yu){U0(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function eK(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&eA(t,n)})}(t,n),function iK(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function tK(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&eA(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function JW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Tf(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Ef(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function If(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function U0(t,n){const e=$O(t);null!==n.validator?t.setValidators(UO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=GO(t);null!==n.asyncValidator?t.setAsyncValidators(UO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();If(n._rawValidators,o),If(n._rawAsyncValidators,o)}function Ef(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=$O(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=GO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return If(n._rawValidators,i),If(n._rawAsyncValidators,i),e}function eA(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function tA(t,n){U0(t,n)}function G0(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function iA(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function q0(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Ci?e=r:function rK(t){return Object.getPrototypeOf(t.constructor)===oc}(r)?i=r:o=r}),o||i||e||null}const sK={provide:ho,useExisting:Qt(()=>hs)},Xu=Promise.resolve();let hs=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new ti({},F0(e),L0(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Xu.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Qu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path),o=new ti({});tA(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Xu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,iA(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{options:[ge.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([sK]),ve]})}return t})();function nA(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function oA(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const U=class extends kf{constructor(n=null,e,i){super(z0(e),H0(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Sf(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=oA(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){nA(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){nA(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){oA(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let rA=(()=>{class t extends ho{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const dK={provide:xr,useExisting:Qt(()=>Nl)},sA=Promise.resolve();let Nl=(()=>{class t extends xr{constructor(e,i,o,r,a,s){super(),this._changeDetectorRef=a,this.callSetDisabledState=s,this.control=new U,this._registered=!1,this.name="",this.update=new Ne,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),G0(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Qu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){sA.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Cl(i);sA.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Mf(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,9),_(jn,10),_(us,10),_(uo,10),_(Lt,8),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"],options:[ge.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ye([dK]),ve,fi]})}return t})(),_n=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const uK={provide:uo,useExisting:Qt(()=>W0),multi:!0};let W0=(()=>{class t extends oc{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o.onChange(a.target.value)})("blur",function(){return o.onTouched()})},features:[Ye([uK]),ve]})}return t})();const K0=new se(""),fK={provide:xr,useExisting:Qt(()=>Fl)};let Fl=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=a,this.update=new Ne,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=q0(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&Tf(i,this,!1),Qu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}G0(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Tf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(uo,10),_(K0,8),_(rc,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControl",""]],inputs:{form:[ge.None,"formControl","form"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[Ye([fK]),ve,fi]})}return t})();const gK={provide:ho,useExisting:Qt(()=>wi)};let wi=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ne,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ef(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Qu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tf(e.control||null,e,!1),function aK(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,iA(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tf(i||null,e),(t=>t instanceof U)(o)&&(Qu(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);tA(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function nK(t,n){return Ef(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){U0(this.form,this),this._oldForm&&Ef(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{form:[ge.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([gK]),ve,fi]})}return t})();const _K={provide:ho,useExisting:Qt(()=>Ju)};let Ju=(()=>{class t extends rA{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""]],inputs:{name:[ge.None,"formGroupName","name"]},features:[Ye([_K]),ve]})}return t})();const bK={provide:ho,useExisting:Qt(()=>eh)};let eh=(()=>{class t extends ho{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formArrayName",""]],inputs:{name:[ge.None,"formArrayName","name"]},features:[Ye([bK]),ve]})}return t})();function dA(t){return!(t instanceof Ju||t instanceof wi||t instanceof eh)}const vK={provide:xr,useExisting:Qt(()=>zi)};let zi=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new Ne,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){this._added||this._setUpControl(),G0(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10),_(uo,10),_(K0,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""]],inputs:{name:[ge.None,"formControlName","name"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[Ye([vK]),ve,fi]})}return t})();function mA(t){return"number"==typeof t?t:parseInt(t,10)}let ac=(()=>{class t{constructor(){this._validator=Cf}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Cf,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();const TK={provide:jn,useExisting:Qt(()=>Do),multi:!0};let Do=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Cl,this.createValidator=e=>EO}enabled(e){return e}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ye([TK]),ve]})}return t})();const OK={provide:jn,useExisting:Qt(()=>X0),multi:!0};let X0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>PO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("minlength",o._enabled?o.minlength:null)},inputs:{minlength:"minlength"},features:[Ye([OK]),ve]})}return t})();const AK={provide:jn,useExisting:Qt(()=>J0),multi:!0};let J0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>RO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ye([AK]),ve]})}return t})();const PK={provide:jn,useExisting:Qt(()=>eC),multi:!0};let eC=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=e=>e,this.createValidator=e=>NO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ye([PK]),ve]})}return t})(),bA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();class vA extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){XO(this,0,n),n.forEach((i,o)=>{QO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function yA(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let Dr=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return yA(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ti(o,r)}record(e,i=null){const o=this._reduceControls(e);return new JO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(yA(i)?r=i:(r.validators=i,r.asyncValidators=o),new U(e,{...r,nonNullable:!0})):new U(e,i,o)}array(e,i,o){const r=e.map(a=>this._createControl(a));return new vA(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof U||e instanceof kf?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),RK=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[bA]})}return t})(),CA=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:K0,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[bA]})}return t})(),kA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Zp,Vn,Mt,as,ME,A0]})}return t})();class dZ extends qe{constructor(n=1/0,e=1/0,i=s0){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:a}=this;e||(i.push(n),!o&&i.push(r.now()+a)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let a=0;athis._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new li(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(kt(e=>e.some(i=>i.target===n)),function uZ(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,HE({connector:()=>new dZ(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}({bufferSize:1,refCount:!0}),ot(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let mZ=(()=>{class t{constructor(){this._observers=new Map,this._ngZone=De(We)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new hZ(o)),this._observers.get(o).observe(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pZ=["notch"],fZ=["matFormFieldNotchedOutline",""],gZ=["*"],_Z=["textField"],bZ=["iconPrefixContainer"],vZ=["textPrefixContainer"];function yZ(t,n){1&t&&D(0,"span",19)}function CZ(t,n){if(1&t&&(d(0,"label",17),Ze(1,1),y(2,yZ,1,0,"span",18),l()),2&t){const e=C(2);f("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Xe("for",e._control.id),m(2),f("ngIf",!e.hideRequiredMarker&&e._control.required)}}function wZ(t,n){1&t&&y(0,CZ,3,5,"label",16),2&t&&f("ngIf",C()._hasFloatingLabel())}function xZ(t,n){1&t&&D(0,"div",20)}function DZ(t,n){}function SZ(t,n){1&t&&y(0,DZ,0,0,"ng-template",22),2&t&&(C(2),f("ngTemplateOutlet",Ft(1)))}function kZ(t,n){if(1&t&&(d(0,"div",21),y(1,SZ,1,1,"ng-template",9),l()),2&t){const e=C();f("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),m(),f("ngIf",!e._forceDisplayInfixLabel())}}function MZ(t,n){1&t&&(d(0,"div",23,24),Ze(2,2),l())}function TZ(t,n){1&t&&(d(0,"div",25,26),Ze(2,3),l())}function IZ(t,n){}function EZ(t,n){1&t&&y(0,IZ,0,0,"ng-template",22),2&t&&(C(),f("ngTemplateOutlet",Ft(1)))}function OZ(t,n){1&t&&(d(0,"div",27),Ze(1,4),l())}function AZ(t,n){1&t&&(d(0,"div",28),Ze(1,5),l())}function PZ(t,n){1&t&&D(0,"div",29)}function RZ(t,n){1&t&&(d(0,"div",30),Ze(1,6),l()),2&t&&f("@transitionMessages",C()._subscriptAnimationState)}function NZ(t,n){if(1&t&&(d(0,"mat-hint",34),h(1),l()),2&t){const e=C(2);f("id",e._hintLabelId),m(),Pe(e.hintLabel)}}function FZ(t,n){if(1&t&&(d(0,"div",31),y(1,NZ,2,2,"mat-hint",32),Ze(2,7),D(3,"div",33),Ze(4,8),l()),2&t){const e=C();f("@transitionMessages",e._subscriptAnimationState),m(),f("ngIf",e.hintLabel)}}const LZ=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],BZ=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let xi=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-label"]]})}return t})(),VZ=0;const MA=new se("MatError");let iC=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+VZ++,e||i.nativeElement.setAttribute("aria-live","polite")}static#e=this.\u0275fac=function(i){return new(i||t)(oo("aria-live"),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},features:[Ye([{provide:MA,useExisting:t}])]})}return t})(),jZ=0,sc=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+jZ++}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("align",null),et("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const zZ=new se("MatPrefix"),TA=new se("MatSuffix");let nC=(()=>{class t{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[ge.None,"matTextSuffix","_isTextSelector"]},features:[Ye([{provide:TA,useExisting:t}])]})}return t})();const IA=new se("FloatingLabelParent");let EA=(()=>{class t{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=De(mZ),this._ngZone=De(We),this._parent=De(IA),this._resizeSubscription=new de}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function HZ(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const OA="mdc-line-ripple--active",Of="mdc-line-ripple--deactivating";let AA=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const r=this._elementRef.nativeElement.classList,a=r.contains(Of);"opacity"===o.propertyName&&a&&r.remove(OA,Of)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Of),e.add(OA)}deactivate(){this._elementRef.nativeElement.classList.add(Of)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PA=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&vt(pZ,5),2&i){let r;Oe(r=Ae())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-notched-outline--notched",o.open)},inputs:{open:[ge.None,"matFormFieldNotchedOutlineOpen","open"]},attrs:fZ,ngContentSelectors:gZ,decls:5,vars:0,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],["notch",""],[1,"mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Ut(),D(0,"div",0),d(1,"div",1,2),Ze(3),l(),D(4,"div",3))},encapsulation:2,changeDetection:0})}return t})();const UZ={transitionMessages:Lo("transitionMessages",[mn("enter",Zt({opacity:1,transform:"translateY(0%)"})),Qi("void => enter",[Zt({opacity:0,transform:"translateY(-5px)"}),Yi("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let Af=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t})}return t})();const th=new se("MatFormField"),$Z=new se("MAT_FORM_FIELD_DEFAULT_OPTIONS");let RA=0,Di=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=$e(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=r,this._platform=a,this._defaults=s,this._animationMode=c,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+RA++,this._hintLabelId="mat-mdc-hint-"+RA++,this._subscriptAnimationState="",this._destroyed=new qe,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,s&&(s.appearance&&(this.appearance=s.appearance),this._hideRequiredMarker=!!s?.hideRequiredMarker,s.color&&(this.color=s.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(ot(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Ri(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ot(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(ot(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(r=>"start"===r.align):null,o=this._hintChildren?this._hintChildren.find(r=>"end"===r.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,r=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${r+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),_(fn),_(ci),_($Z,8),_(ui,8),_(dt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,xi,5),gt(r,xi,7),gt(r,Af,5),gt(r,zZ,5),gt(r,TA,5),gt(r,MA,5),gt(r,sc,5)),2&i){let a;Oe(a=Ae())&&(o._labelChildNonStatic=a.first),Oe(a=Ae())&&(o._labelChildStatic=a.first),Oe(a=Ae())&&(o._formFieldControl=a.first),Oe(a=Ae())&&(o._prefixChildren=a),Oe(a=Ae())&&(o._suffixChildren=a),Oe(a=Ae())&&(o._errorChildren=a),Oe(a=Ae())&&(o._hintChildren=a)}},viewQuery:function(i,o){if(1&i&&(vt(_Z,5),vt(bZ,5),vt(vZ,5),vt(EA,5),vt(PA,5),vt(AA,5)),2&i){let r;Oe(r=Ae())&&(o._textField=r.first),Oe(r=Ae())&&(o._iconPrefixContainer=r.first),Oe(r=Ae())&&(o._textPrefixContainer=r.first),Oe(r=Ae())&&(o._floatingLabel=r.first),Oe(r=Ae())&&(o._notchedOutline=r.first),Oe(r=Ae())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,o){2&i&&et("mat-mdc-form-field-label-always-float",o._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",o._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",o._hasIconSuffix)("mat-form-field-invalid",o._control.errorState)("mat-form-field-disabled",o._control.disabled)("mat-form-field-autofilled",o._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===o._animationMode)("mat-form-field-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("mat-focused",o._control.focused)("mat-primary","accent"!==o.color&&"warn"!==o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("ng-untouched",o._shouldForward("untouched"))("ng-touched",o._shouldForward("touched"))("ng-pristine",o._shouldForward("pristine"))("ng-dirty",o._shouldForward("dirty"))("ng-valid",o._shouldForward("valid"))("ng-invalid",o._shouldForward("invalid"))("ng-pending",o._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Ye([{provide:th,useExisting:t},{provide:IA,useExisting:t}])],ngContentSelectors:BZ,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(i,o){1&i&&(Ut(LZ),y(0,wZ,1,1,"ng-template",null,0,br),d(2,"div",1,2),A("click",function(a){return o._control.onContainerClick(a)}),y(4,xZ,1,0,"div",3),d(5,"div",4),y(6,kZ,2,2,"div",5)(7,MZ,3,0,"div",6)(8,TZ,3,0,"div",7),d(9,"div",8),y(10,EZ,1,1,"ng-template",9),Ze(11),l(),y(12,OZ,2,0,"div",10)(13,AZ,2,0,"div",11),l(),y(14,PZ,1,0,"div",12),l(),d(15,"div",13),y(16,RZ,2,1,"div",14)(17,FZ,5,2,"div",15),l()),2&i&&(m(2),et("mdc-text-field--filled",!o._hasOutline())("mdc-text-field--outlined",o._hasOutline())("mdc-text-field--no-label",!o._hasFloatingLabel())("mdc-text-field--disabled",o._control.disabled)("mdc-text-field--invalid",o._control.errorState),m(2),f("ngIf",!o._hasOutline()&&!o._control.disabled),m(2),f("ngIf",o._hasOutline()),m(),f("ngIf",o._hasIconPrefix),m(),f("ngIf",o._hasTextPrefix),m(2),f("ngIf",!o._hasOutline()||o._forceDisplayInfixLabel()),m(2),f("ngIf",o._hasTextSuffix),m(),f("ngIf",o._hasIconSuffix),m(),f("ngIf",!o._hasOutline()),m(),et("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing),f("ngSwitch",o._getDisplayedMessages()),m(),f("ngSwitchCase","error"),m(),f("ngSwitchCase","hint"))},dependencies:[It,kp,xl,Sp,sc,EA,PA,AA],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[UZ.transitionMessages]},changeDetection:0})}return t})(),ih=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,Zp,Mt]})}return t})();const WZ=["addListener","removeListener"],KZ=["addEventListener","removeEventListener"],ZZ=["on","off"];function er(t,n,e,i){if(J(e)&&(i=e,e=void 0),i)return er(t,n,e).pipe(d0(i));const[o,r]=function XZ(t){return J(t.addEventListener)&&J(t.removeEventListener)}(t)?KZ.map(a=>s=>t[a](n,s,e)):function YZ(t){return J(t.addListener)&&J(t.removeListener)}(t)?WZ.map(LA(t,n)):function QZ(t){return J(t.on)&&J(t.off)}(t)?ZZ.map(LA(t,n)):[];if(!o&&n0(t))return Pn(a=>er(a,n,e))(Yn(t));if(!o)throw new TypeError("Invalid event target");return new li(a=>{const s=(...c)=>a.next(1r(s)})}function LA(t,n){return e=>i=>t[e](n,i)}function Pf(t=0,n,e=_G){let i=-1;return null!=n&&(FI(n)?e=n:i=n),new li(o=>{let r=function eY(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let a=0;return e.schedule(function(){o.closed||(o.next(a++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function oC(t,n=Pu){return function JZ(t){return $i((n,e)=>{let i=!1,o=null,r=null,a=!1;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const u=o;o=null,e.next(u)}a&&e.complete()},c=()=>{r=null,a&&e.complete()};n.subscribe(Fi(e,u=>{i=!0,o=u,r||Yn(t(u)).subscribe(r=Fi(e,s,c))},()=>{a=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Pf(t,n))}const BA=Ja({passive:!0});let tY=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return jo;const i=_a(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new qe,a="cdk-text-field-autofilled",s=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,BA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:r,unlisten:()=>{i.removeEventListener("animationstart",s,BA)}}),r}stopMonitoring(e){const i=_a(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),VA=(()=>{class t{get minRows(){return this._minRows}set minRows(e){this._minRows=yi(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=yi(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){e=$e(e),this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,o,r){this._elementRef=e,this._platform=i,this._ngZone=o,this._destroyed=new qe,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=a=>{this._hasFocus="focus"===a.type},this._document=r,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{er(this._getWindow(),"resize").pipe(oC(16),ot(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",o=this._platform.FIREFOX,r=o&&this._hasFocus,a=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";r&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);const s=e.scrollHeight-4;return e.classList.remove(a),r&&(e.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,o=i.value;if(!e&&this._minRows===this._previousMinRows&&o===this._previousValue)return;const r=this._measureScrollHeight(),a=Math.max(r,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=o,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:o}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(dt,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,o){1&i&&A("input",function(){return o._noopInputHandler()})},inputs:{minRows:[ge.None,"cdkAutosizeMinRows","minRows"],maxRows:[ge.None,"cdkAutosizeMaxRows","maxRows"],enabled:[ge.None,"cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),iY=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const nY=new se("MAT_INPUT_VALUE_ACCESSOR"),oY=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let rY=0;const aY=v0(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new qe}});let qi=(()=>{class t extends aY{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RI().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g){super(s,r,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=u,this._formField=g,this._uid="mat-input-"+rY++,this.focused=!1,this.stateChanges=new qe,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(k=>RI().has(k)),this._iOSKeyupListener=k=>{const T=k.target;!T.value&&0===T.selectionStart&&0===T.selectionEnd&&(T.setSelectionRange(1,1),T.setSelectionRange(0,0))};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=c||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&p.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!g,this._isNativeSelect&&(this.controlType=b.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){oY.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(xr,10),_(hs,8),_(wi,8),_(nf),_(nY,10),_(tY),_(We),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,o){1&i&&A("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id)("disabled",o.disabled)("required",o.required),Xe("name",o.name||null)("readonly",o.readonly&&!o._isNativeSelect||null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),et("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mdc-text-field__input",o._isInFormField)("mat-mdc-native-select-inline",o._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Ye([{provide:Af,useExisting:t}]),ve,fi]})}return t})(),jA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,ih,ih,iY,Mt]})}return t})();const nh={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=nh;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new de(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=nh;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=nh;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class cY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class sY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=nh.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(nh.cancelAnimationFrame(e),n._scheduled=void 0)}});let rC,dY=1;const Rf={};function zA(t){return t in Rf&&(delete Rf[t],!0)}const uY={setImmediate(t){const n=dY++;return Rf[n]=!0,rC||(rC=Promise.resolve()),rC.then(()=>zA(n)&&t()),n},clearImmediate(t){zA(t)}},{setImmediate:hY,clearImmediate:mY}=uY,Nf={setImmediate(...t){const{delegate:n}=Nf;return(n?.setImmediate||hY)(...t)},clearImmediate(t){const{delegate:n}=Nf;return(n?.clearImmediate||mY)(t)},delegate:void 0},aC=new class fY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class pY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=Nf.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(Nf.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});let oh=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new qe,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new li(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(oC(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ke()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(kt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=_a(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>er(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(ci),X(dt,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rh=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new qe,this._elementScrolled=new li(a=>this.ngZone.runOutsideAngular(()=>er(this.elementRef.nativeElement,"scroll").pipe(ot(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=Iu()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==Iu()?e.left=e.right:1==Iu()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;NI()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==Iu()?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:a&&1==Iu()?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(oh),_(We),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),va=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new qe,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(oC(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(dt,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ms=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),sC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Lu,ms,Lu,ms]})}return t})();class cC{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ll extends cC{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class ya extends cC{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class vY extends cC{constructor(n){super(),this.element=n instanceof Be?n.nativeElement:n}}class Ff{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ll?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof ya?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof vY?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class yY extends Ff{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const s=a.element,c=this._document.createComment("dom-portal");s.parentNode.insertBefore(c,s),this.outletElement.appendChild(s),this._attachedPortal=a,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(s,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||ji.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let CY=(()=>{class t extends ya{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[ve]})}return t})(),Ca=(()=>{class t extends Ff{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ne,this.attachDomPortal=r=>{const a=r.element,s=this._document.createComment("dom-portal");r.setAttachedHost(this),a.parentNode.insertBefore(s,a),this._getRootNode().appendChild(a),this._attachedPortal=r,super.setDisposeFn(()=>{s.parentNode&&s.parentNode.replaceChild(a,s)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[ge.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ve]})}return t})(),cc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const HA=NI();class wY{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=pn(-this._previousScrollPosition.left),n.style.top=pn(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),HA&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),HA&&(i.scrollBehavior=r,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class xY{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(kt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class UA{enable(){}disable(){}attach(){}}function lC(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function $A(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class DY{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();lC(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let SY=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new UA,this.close=a=>new xY(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new wY(this._viewportRuler,this._document),this.reposition=a=>new DY(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(X(oh),X(va),X(We),X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Bl{constructor(n){if(this.scrollStrategy=new UA,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class kY{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let GA=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MY=(()=>{class t extends GA{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let a=r.length-1;a>-1;a--)if(r[a]._keydownEvents.observers.length>0){const s=r[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(o)):s.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TY=(()=>{class t extends GA{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=pa(r)},this._clickListener=r=>{const a=pa(r),s="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let u=c.length-1;u>-1;u--){const p=c[u];if(p._outsidePointerEvents.observers.length<1||!p.hasAttached())continue;if(p.overlayElement.contains(a)||p.overlayElement.contains(s))break;const g=p._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>g.next(r)):g.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt),X(ci),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lf=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||Yy()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(g),this._backdropTransitionendHandler=g=>{this._disposeBackdrop(g.target)},this._keydownEvents=new qe,this._outsidePointerEvents=new qe,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=pn(this._config.width),n.height=pn(this._config.height),n.minWidth=pn(this._config.minWidth),n.minHeight=pn(this._config.minHeight),n.maxWidth=pn(this._config.maxWidth),n.maxHeight=pn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Kp(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(ot(Ri(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const qA="cdk-overlay-connected-position-bounding-box",IY=/([A-Za-z%]+)$/;class EY{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new qe,this._resizeSubscription=de.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(qA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let a;for(let s of this._preferredPositions){let c=this._getOriginPoint(n,o,s),u=this._getOverlayPoint(c,e,s),p=this._getOverlayFit(u,e,i,s);if(p.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(s,c);this._canFitWithFlexibleDimensions(p,u,i)?r.push({position:s,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,s)}):(!a||a.overlayFit.visibleAreac&&(c=p,s=u)}return this._isPushed=!1,void this._applyPosition(s.position,s.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&lc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(qA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,s=this._isRtl()?n.left:n.right;o="start"==i.originX?a:s}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=KA(e);let{x:a,y:s}=n,c=this._getOffset(o,"x"),u=this._getOffset(o,"y");c&&(a+=c),u&&(s+=u);let b=0-s,w=s+r.height-i.height,k=this._subtractOverflows(r.width,0-a,a+r.width-i.width),T=this._subtractOverflows(r.height,b,w),z=k*T;return{visibleArea:z,isCompletelyWithinViewport:r.width*r.height===z,fitsInViewportVertically:T===r.height,fitsInViewportHorizontally:k==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,a=WA(this._overlayRef.getConfig().minHeight),s=WA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=s&&s<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=KA(e),r=this._viewportRect,a=Math.max(n.x+o.width-r.width,0),s=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),u=Math.max(r.left-i.left-n.x,0);let p=0,g=0;return p=o.width<=r.width?u||-a:n.xk&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-k/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)b=i.width-n.x+this._viewportMargin,p=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)g=n.x,p=i.right-n.x;else{const w=Math.min(i.right-n.x+i.left,n.x),k=this._lastBoundingBoxSize.width;p=2*w,g=n.x-w,p>k&&!this._isInitialRender&&!this._growAfterOpen&&(g=n.x-k/2)}return{top:a,left:g,bottom:s,right:b,width:p,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=pn(i.height),o.top=pn(i.top),o.bottom=pn(i.bottom),o.width=pn(i.width),o.left=pn(i.left),o.right=pn(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=pn(r)),a&&(o.maxWidth=pn(a))}this._lastBoundingBoxSize=i,lc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){lc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){lc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const p=this._viewportRuler.getViewportScrollPosition();lc(i,this._getExactOverlayY(e,n,p)),lc(i,this._getExactOverlayX(e,n,p))}else i.position="static";let s="",c=this._getOffset(e,"x"),u=this._getOffset(e,"y");c&&(s+=`translateX(${c}px) `),u&&(s+=`translateY(${u}px)`),i.transform=s.trim(),a.maxHeight&&(o?i.maxHeight=pn(a.maxHeight):r&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=pn(a.maxWidth):r&&(i.maxWidth="")),lc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=pn(r.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=pn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:$A(n,i),isOriginOutsideView:lC(n,i),isOverlayClipped:$A(e,i),isOverlayOutsideView:lC(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Kp(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Be)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function lc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function WA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(IY);return e&&"px"!==e?null:parseFloat(n)}return t||null}function KA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const ZA="cdk-global-overlay-wrapper";class OY{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(ZA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:a,maxHeight:s}=i,c=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),u=!("100%"!==r&&"100vh"!==r||s&&"100%"!==s&&"100vh"!==s),p=this._xPosition,g=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",k="",T="";c?T="flex-start":"center"===p?(T="center",b?k=g:w=g):b?"left"===p||"end"===p?(T="flex-end",w=g):("right"===p||"start"===p)&&(T="flex-start",k=g):"left"===p||"start"===p?(T="flex-start",w=g):("right"===p||"end"===p)&&(T="flex-end",k=g),n.position=this._cssPosition,n.marginLeft=c?"0":w,n.marginTop=u?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":k,e.justifyContent=T,e.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(ZA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let AY=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new OY}flexibleConnectedTo(e){return new EY(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(X(va),X(dt),X(ci),X(Lf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),PY=0,Qn=(()=>{class t{constructor(e,i,o,r,a,s,c,u,p,g,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=a,this._injector=s,this._ngZone=c,this._document=u,this._directionality=p,this._location=g,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),a=new Bl(e);return a.direction=a.direction||this._directionality.value,new ah(r,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+PY++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Za)),new yY(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(SY),X(Lf),X(Ns),X(AY),X(MY),X(ji),X(We),X(dt),X(fn),X(Ws),X(TY),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const RY=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],YA=new se("cdk-connected-overlay-scroll-strategy");let dC=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),QA=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=$e(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=$e(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=$e(e)}get push(){return this._push}set push(e){this._push=$e(e)}constructor(e,i,o,r,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=de.EMPTY,this._attachSubscription=de.EMPTY,this._detachSubscription=de.EMPTY,this._positionSubscription=de.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Ne,this.positionChange=new Ne,this.attach=new Ne,this.detach=new Ne,this.overlayKeydown=new Ne,this.overlayOutsideClick=new Ne,this._templatePortal=new ya(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=RY);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Bl({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof dC?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function bY(t,n=!1){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{const a=t(r,o++);(a||n)&&i.next(r),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(gi),_(vi),_(YA),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[ge.None,"cdkConnectedOverlayOrigin","origin"],positions:[ge.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[ge.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[ge.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[ge.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[ge.None,"cdkConnectedOverlayWidth","width"],height:[ge.None,"cdkConnectedOverlayHeight","height"],minWidth:[ge.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[ge.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[ge.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[ge.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[ge.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[ge.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[ge.None,"cdkConnectedOverlayOpen","open"],disableClose:[ge.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[ge.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[ge.None,"cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:[ge.None,"cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:[ge.None,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:[ge.None,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:[ge.None,"cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[fi]})}return t})();const FY={provide:YA,deps:[Qn],useFactory:function NY(t){return()=>t.scrollStrategies.reposition()}};let dc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[Qn,FY],imports:[Lu,cc,sC,sC]})}return t})();function Vl(t){return new li(n=>{Yn(t()).subscribe(n)})}const LY=["trigger"],BY=["panel"];function VY(t,n){if(1&t&&(d(0,"span",10),h(1),l()),2&t){const e=C();m(),Pe(e.placeholder)}}function jY(t,n){if(1&t&&(d(0,"span",14),h(1),l()),2&t){const e=C(2);m(),Pe(e.triggerValue)}}function zY(t,n){1&t&&Ze(0,0,["*ngSwitchCase","true"])}function HY(t,n){1&t&&(d(0,"span",11),y(1,jY,2,1,"span",12)(2,zY,1,0,"ng-content",13),l()),2&t&&(f("ngSwitch",!!C().customTrigger),m(2),f("ngSwitchCase",!0))}function UY(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"div",15,16),A("@transformPanel.done",function(o){return ie(e),ne(C()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))}),Ze(2,1),l()}if(2&t){const e=C();Mk("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),f("ngClass",e.panelClass)("@transformPanel","showing"),Xe("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $Y=[[["mat-select-trigger"]],"*"],GY=["mat-select-trigger","*"],qY={transformPanelWrap:Lo("transformPanelWrap",[Qi("* => void",Cy("@transformPanel",[yy()],{optional:!0}))]),transformPanel:Lo("transformPanel",[mn("void",Zt({opacity:0,transform:"scale(1, 0.8)"})),Qi("void => showing",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1, 1)"}))),Qi("* => void",Yi("100ms linear",Zt({opacity:0})))])};let XA=0;const JA=new se("mat-select-scroll-strategy"),KY=new se("MAT_SELECT_CONFIG"),ZY={provide:JA,deps:[Qn],useFactory:function WY(t){return()=>t.scrollStrategies.reposition()}},YY=new se("MatSelectTrigger");class QY{constructor(n,e){this.source=n,this.value=e}}const XY=ns(os(jr(v0(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new qe}}))));let JY=(()=>{class t extends XY{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=$e(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=$e(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=yi(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,r,a,s,c,u,p,g,b,w,k,T){super(a,r,c,u,g),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._parentFormField=p,this._liveAnnouncer=k,this._defaultOptions=T,this._panelOpen=!1,this._compareWith=(z,re)=>z===re,this._uid="mat-select-"+XA++,this._triggerAriaLabelledBy=null,this._destroy=new qe,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+XA++,this._panelDoneAnimatingStream=new qe,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=Vl(()=>{const z=this.options;return z?z.changes.pipe(an(z),gn(()=>Ri(...z.map(re=>re.onSelectionChange)))):this._ngZone.onStable.pipe(Pt(1),gn(()=>this.optionSelectionChanges))}),this.openedChange=new Ne,this._openedStream=this.openedChange.pipe(kt(z=>z),nt(()=>{})),this._closedStream=this.openedChange.pipe(kt(z=>!z),nt(()=>{})),this.selectionChange=new Ne,this.valueChange=new Ne,this._trackedModal=null,this.ngControl&&(this.ngControl.valueAccessor=this),null!=T?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=T.typeaheadDebounceInterval),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new qu(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ru(),ot(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(ot(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(an(null),ot(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,r=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&r&&!An(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const s=this.selected;a.onKeydown(e);const c=this.selected;c&&s!==c&&this._liveAnnouncer.announce(c.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,a=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||An(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const s=this.options.some(c=>!c.disabled&&!c.selected);this.options.forEach(c=>{c.disabled||(s?c.select():c.deselect())})}else{const s=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new hE(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Ri(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(ot(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Ri(...this.options.map(i=>i._stateChanges)).pipe(ot(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}static#e=this.\u0275fac=function(i){return new(i||t)(_(va),_(Lt),_(We),_(nf),_(Be),_(fn,8),_(hs,8),_(wi,8),_(th,8),_(xr,10),oo("tabindex"),_(JA),_(g0),_(KY,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(LY,5),vt(BY,5),vt(QA,5)),2&i){let r;Oe(r=Ae())&&(o.trigger=r.first),Oe(r=Ae())&&(o.panel=r.first),Oe(r=Ae())&&(o._overlayDir=r.first)}},inputs:{userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[ve,fi]})}return t})(),Xn=(()=>{class t extends JY{constructor(){super(...arguments),this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(ot(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}open(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=EE(e,this.options,this.optionGroups),a=i._getHostElement();o.scrollTop=0===e&&1===r?0:OE(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new QY(this,e)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof dC?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,YY,5),gt(r,Tn,5),gt(r,af,5)),2&i){let a;Oe(a=Ae())&&(o.customTrigger=a.first),Oe(a=Ae())&&(o.options=a),Oe(a=Ae())&&(o.optionGroups=a)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Xe("id",o.id)("tabindex",o.tabIndex)("aria-controls",o.panelOpen?o.id+"-panel":null)("aria-expanded",o.panelOpen)("aria-label",o.ariaLabel||null)("aria-required",o.required.toString())("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState)("aria-activedescendant",o._getAriaActiveDescendant()),et("mat-mdc-select-disabled",o.disabled)("mat-mdc-select-invalid",o.errorState)("mat-mdc-select-required",o.required)("mat-mdc-select-empty",o.empty)("mat-mdc-select-multiple",o.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",panelWidth:"panelWidth",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[Ye([{provide:Af,useExisting:t},{provide:rf,useExisting:t}]),ve],ngContentSelectors:GY,decls:11,vars:10,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(i,o){if(1&i&&(Ut($Y),d(0,"div",0,1),A("click",function(){return o.toggle()}),d(3,"div",2),y(4,VY,2,1,"span",3)(5,HY,3,2,"span",4),l(),d(6,"div",5)(7,"div",6),ei(),d(8,"svg",7),D(9,"path",8),l()()()(),y(10,UY,3,9,"ng-template",9),A("backdropClick",function(){return o.close()})("attach",function(){return o._onAttached()})("detach",function(){return o.close()})),2&i){const r=Ft(1);m(3),f("ngSwitch",o.empty),Xe("id",o._valueId),m(),f("ngSwitchCase",!0),m(),f("ngSwitchCase",!1),m(5),f("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayOpen",o.panelOpen)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)}},dependencies:[yr,xl,Sp,y2,QA,dC],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[qY.transformPanel]},changeDetection:0})}return t})(),uC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ZY],imports:[Vn,dc,sf,Mt,ms,ih,sf,Mt]})}return t})();function Bf(t){return nt(()=>t)}function eP(t,n){return n?e=>Nu(n.pipe(Pt(1),function eQ(){return $i((t,n)=>{t.subscribe(Fi(n,oi))})}()),e.pipe(eP(t))):Pn((e,i)=>Yn(t(e,i)).pipe(Pt(1),Bf(e)))}function hC(t,n=Pu){const e=Pf(t,n);return eP(()=>e)}const tQ=["mat-menu-item",""];function iQ(t,n){1&t&&(ei(),d(0,"svg",3),D(1,"polygon",4),l())}const nQ=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oQ=["mat-icon, [matMenuItemIcon]","*"];function rQ(t,n){if(1&t){const e=_e();d(0,"div",0),A("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))})("click",function(){return ie(e),ne(C().closed.emit("click"))})("@transformMenu.start",function(o){return ie(e),ne(C()._onAnimationStart(o))})("@transformMenu.done",function(o){return ie(e),ne(C()._onAnimationDone(o))}),d(1,"div",1),Ze(2),l()()}if(2&t){const e=C();f("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Xe("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const aQ=["*"],mC=new se("MAT_MENU_PANEL"),sQ=ns(jr(class{}));let wa=(()=>{class t extends sQ{constructor(e,i,o,r,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=r,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new qe,this._focused=new qe,this._highlighted=!1,this._triggersSubmenu=!1,r?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1)"}))),Qi("* => void",Yi("100ms 25ms linear",Zt({opacity:0})))]),fadeInItems:Lo("fadeInItems",[mn("showing",Zt({opacity:1})),Qi("void => *",[Zt({opacity:0}),Yi("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lQ=0;const tP=new se("mat-menu-default-options",{providedIn:"root",factory:function dQ(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let sh=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=$e(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,r){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=r,this._directDescendantItems=new oa,this._classList={},this._panelAnimationState="void",this._animationDone=new qe,this.closed=new Ne,this.close=this.closed,this.panelId="mat-menu-panel-"+lQ++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Jp(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(e=>Ri(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),r=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[r]&&!o[r].disabled?i.setActiveItem(r):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(i=>Ri(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:An(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,r=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!r||r===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(an(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275dir=Q({type:t,contentQueries:function(i,o,r){if(1&i&&(gt(r,cQ,5),gt(r,wa,5),gt(r,wa,4)),2&i){let a;Oe(a=Ae())&&(o.lazyContent=a.first),Oe(a=Ae())&&(o._allItems=a),Oe(a=Ae())&&(o.items=a)}},viewQuery:function(i,o){if(1&i&&vt(gi,5),2&i){let r;Oe(r=Ae())&&(o.templateRef=r.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:[ge.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}})}return t})(),jl=(()=>{class t extends sh{constructor(e,i,o,r){super(e,i,o,r),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration",""],hostVars:3,hostBindings:function(i,o){2&i&&Xe("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Ye([{provide:mC,useExisting:t}]),ve],ngContentSelectors:aQ,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Ut(),y(0,rQ,3,6,"ng-template"))},dependencies:[yr],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Vf.transformMenu,Vf.fadeInItems]},changeDetection:0})}return t})();const iP=new se("mat-menu-scroll-strategy"),hQ={provide:iP,deps:[Qn],useFactory:function uQ(t){return()=>t.scrollStrategies.reposition()}},nP=Ja({passive:!0});let mQ=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,r,a,s,c,u,p){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=s,this._dir=c,this._focusMonitor=u,this._ngZone=p,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=de.EMPTY,this._hoverSubscription=de.EMPTY,this._menuCloseSubscription=de.EMPTY,this._changeDetectorRef=De(Lt),this._handleTouchStart=g=>{f0(g)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ne,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ne,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=a instanceof sh?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,nP)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,nP),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),r=o.positionStrategy;this._setPosition(e,r),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof sh&&(e._startAnimation(),e._directDescendantItems.changes.pipe(ot(e.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof sh?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(kt(o=>"void"===o.toState),Pt(1),ot(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Bl({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const r="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(r,a)):e.setPositionClasses(r,a)})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[a,s]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[c,u]=[a,s],[p,g]=[o,r],b=0;if(this.triggersSubmenu()){if(g=o="before"===e.xPosition?"start":"end",r=p="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(c="top"===a?"bottom":"top",u="top"===s?"bottom":"top");i.withPositions([{originX:o,originY:c,overlayX:p,overlayY:a,offsetY:b},{originX:r,originY:c,overlayX:g,overlayY:a,offsetY:b},{originX:o,originY:u,overlayX:p,overlayY:s,offsetY:-b},{originX:r,originY:u,overlayX:g,overlayY:s,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Ri(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ke(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(kt(a=>a!==this._menuItemInstance),kt(()=>this._menuOpen)):Ke(),i)}_handleMousedown(e){p0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(kt(e=>e===this._menuItemInstance&&!e.disabled),hC(0,aC)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof sh&&this.menu._isAnimating?this.menu._animationDone.pipe(Pt(1),hC(0,aC),ot(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ya(e.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(vi),_(iP),_(mC,8),_(wa,10),_(fn,8),_(zo),_(We))};static#t=this.\u0275dir=Q({type:t,hostVars:3,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("mousedown",function(a){return o._handleMousedown(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[ge.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[ge.None,"matMenuTriggerFor","menu"],menuData:[ge.None,"matMenuTriggerData","menuData"],restoreFocus:[ge.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}})}return t})(),zl=(()=>{class t extends mQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[ve]})}return t})(),oP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[hQ],imports:[Vn,as,Mt,dc,ms,Mt]})}return t})();const pQ=[[["caption"]],[["colgroup"],["col"]]],fQ=["caption","colgroup, col"];function pC(t){return class extends t{get sticky(){return this._sticky}set sticky(n){const e=this._sticky;this._sticky=$e(n),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const n=this._hasStickyChanged;return this._hasStickyChanged=!1,n}resetStickyChanged(){this._hasStickyChanged=!1}constructor(...n){super(...n),this._sticky=!1,this._hasStickyChanged=!1}}}const Hl=new se("CDK_TABLE");let Ul=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),$l=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),jf=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})();class vQ{}const yQ=pC(vQ);let xa=(()=>{class t extends yQ{get name(){return this._name}set name(e){this._setNameInput(e)}get stickyEnd(){return this._stickyEnd}set stickyEnd(e){const i=this._stickyEnd;this._stickyEnd=$e(e),this._hasStickyChanged=i!==this._stickyEnd}constructor(e){super(),this._table=e,this._stickyEnd=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(e){e&&(this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Ul,5),gt(r,$l,5),gt(r,jf,5)),2&i){let a;Oe(a=Ae())&&(o.cell=a.first),Oe(a=Ae())&&(o.headerCell=a.first),Oe(a=Ae())&&(o.footerCell=a.first)}},inputs:{sticky:"sticky",name:[ge.None,"cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[Ye([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})();class fC{constructor(n,e){e.nativeElement.classList.add(...n._columnCssClassName)}}let gC=(()=>{class t extends fC{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[ve]})}return t})(),_C=(()=>{class t extends fC{constructor(e,i){if(super(e,i),1===e._table?._elementRef.nativeElement.nodeType){const o=e._table._elementRef.nativeElement.getAttribute("role");i.nativeElement.setAttribute("role","grid"===o||"treegrid"===o?"gridcell":"cell")}}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[ve]})}return t})();class aP{constructor(){this.tasks=[],this.endTasks=[]}}const bC=new se("_COALESCED_STYLE_SCHEDULER");let sP=(()=>{class t{constructor(e){this._ngZone=e,this._currentSchedule=null,this._destroyed=new qe}schedule(e){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(e)}scheduleEnd(e){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(e)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new aP,this._getScheduleObservable().pipe(ot(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const e=this._currentSchedule;this._currentSchedule=new aP;for(const i of e.tasks)i();for(const i of e.endTasks)i()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?Xi(Promise.resolve(void 0)):this._ngZone.onStable.pipe(Pt(1))}static#e=this.\u0275fac=function(i){return new(i||t)(X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),vC=(()=>{class t{constructor(e,i){this.template=e,this._differs=i}ngOnChanges(e){if(!this._columnsDiffer){const i=e.columns&&e.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(e){return this instanceof ch?e.headerCell.template:this instanceof lh?e.footerCell.template:e.cell.template}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();class CQ extends vC{}const wQ=pC(CQ);let ch=(()=>{class t extends wQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[ge.None,"cdkHeaderRowDef","columns"],sticky:[ge.None,"cdkHeaderRowDefSticky","sticky"]},features:[ve,fi]})}return t})();class xQ extends vC{}const DQ=pC(xQ);let lh=(()=>{class t extends DQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[ge.None,"cdkFooterRowDef","columns"],sticky:[ge.None,"cdkFooterRowDefSticky","sticky"]},features:[ve,fi]})}return t})(),zf=(()=>{class t extends vC{constructor(e,i,o){super(e,i),this._table=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[ge.None,"cdkRowDefColumns","columns"],when:[ge.None,"cdkRowDefWhen","when"]},features:[ve]})}return t})(),Da=(()=>{class t{static#e=this.mostRecentCellOutlet=null;constructor(e){this._viewContainer=e,t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static#t=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#i=this.\u0275dir=Q({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),yC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),wC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),Hf=(()=>{class t{constructor(e){this.templateRef=e,this._contentClassName="cdk-no-data-row"}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})();const cP=["top","bottom","left","right"];class SQ{constructor(n,e,i,o,r=!0,a=!0,s){this._isNativeHtmlTable=n,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=r,this._needsPositionStickyOnElement=a,this._positionListener=s,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(n,e){const i=[];for(const o of n)if(o.nodeType===o.ELEMENT_NODE){i.push(o);for(let r=0;r{for(const o of i)this._removeStickyStyle(o,e)})}updateStickyColumns(n,e,i,o=!0){if(!n.length||!this._isBrowser||!e.some(b=>b)&&!i.some(b=>b))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const r=n[0],a=r.children.length,s=this._getCellWidths(r,o),c=this._getStickyStartColumnPositions(s,e),u=this._getStickyEndColumnPositions(s,i),p=e.lastIndexOf(!0),g=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const b="rtl"===this.direction,w=b?"right":"left",k=b?"left":"right";for(const T of n)for(let z=0;ze[z]?T:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===g?[]:s.slice(g).map((T,z)=>i[z+g]?T:null).reverse()}))})}stickRows(n,e,i){if(!this._isBrowser)return;const o="bottom"===i?n.slice().reverse():n,r="bottom"===i?e.slice().reverse():e,a=[],s=[],c=[];for(let p=0,g=0;p{for(let p=0;p{e.some(o=>!o)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(n,e){for(const o of e)n.style[o]="",n.classList.remove(this._borderCellCss[o]);cP.some(o=>-1===e.indexOf(o)&&n.style[o])?n.style.zIndex=this._getCalculatedZIndex(n):(n.style.zIndex="",this._needsPositionStickyOnElement&&(n.style.position=""),n.classList.remove(this._stickCellCss))}_addStickyStyle(n,e,i,o){n.classList.add(this._stickCellCss),o&&n.classList.add(this._borderCellCss[e]),n.style[e]=`${i}px`,n.style.zIndex=this._getCalculatedZIndex(n),this._needsPositionStickyOnElement&&(n.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(n){const e={top:100,bottom:10,left:1,right:1};let i=0;for(const o of cP)n.style[o]&&(i+=e[o]);return i?`${i}`:""}_getCellWidths(n,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],o=n.children;for(let r=0;r0;r--)e[r]&&(i[r]=o,o+=n[r]);return i}}const xC=new se("CDK_SPL");let Uf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","rowOutlet",""]]})}return t})(),$f=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),Gf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),qf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})(),Wf=(()=>{class t{get trackBy(){return this._trackByFn}set trackBy(e){this._trackByFn=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(e){this._multiTemplateDataRows=$e(e),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(e){this._fixedLayout=$e(e),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._differs=e,this._changeDetectorRef=i,this._elementRef=o,this._dir=a,this._platform=c,this._viewRepeater=u,this._coalescedStyleScheduler=p,this._viewportRuler=g,this._stickyPositioningListener=b,this._ngZone=w,this._onDestroy=new qe,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new Ne,this.viewChange=new mt({start:0,end:Number.MAX_VALUE}),r||this._elementRef.nativeElement.setAttribute("role","table"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((e,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(ot(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(e=>{e.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),yf(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const e=this._dataDiffer.diff(this._renderRows);if(!e)return this._updateNoDataRow(),void this.contentChanged.next();const i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(e,i,(o,r,a)=>this._getEmbeddedViewArgs(o.item,a),o=>o.item.data,o=>{1===o.operation&&o.context&&this._renderCellTemplateForItem(o.record.item.rowDef,o.context)}),this._updateRowIndexContext(),e.forEachIdentityChange(o=>{i.get(o.currentIndex).context.$implicit=o.item.data}),this._updateNoDataRow(),this._ngZone&&We.isInAngularZone()?this._ngZone.onStable.pipe(Pt(1),ot(this._onDestroy)).subscribe(()=>{this.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(e){this._customColumnDefs.add(e)}removeColumnDef(e){this._customColumnDefs.delete(e)}addRowDef(e){this._customRowDefs.add(e)}removeRowDef(e){this._customRowDefs.delete(e)}addHeaderRowDef(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}removeHeaderRowDef(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}addFooterRowDef(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}removeFooterRowDef(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}setNoDataRow(e){this._customNoDataRow=e}updateStickyHeaderRowStyles(){const e=this._getRenderedRows(this._headerRowOutlet),o=this._elementRef.nativeElement.querySelector("thead");o&&(o.style.display=e.length?"":"none");const r=this._headerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,r,"top"),this._headerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyFooterRowStyles(){const e=this._getRenderedRows(this._footerRowOutlet),o=this._elementRef.nativeElement.querySelector("tfoot");o&&(o.style.display=e.length?"":"none");const r=this._footerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,r,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,r),this._footerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyColumnStyles(){const e=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),o=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...e,...i,...o],["left","right"]),this._stickyColumnStylesNeedReset=!1),e.forEach((r,a)=>{this._addStickyColumnStyles([r],this._headerRowDefs[a])}),this._rowDefs.forEach(r=>{const a=[];for(let s=0;s{this._addStickyColumnStyles([r],this._footerRowDefs[a])}),Array.from(this._columnDefsByName.values()).forEach(r=>r.resetStickyChanged())}_getAllRenderRows(){const e=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let o=0;o{const s=o&&o.has(a)?o.get(a):[];if(s.length){const c=s.shift();return c.dataIndex=i,c}return{data:e,rowDef:a,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Kf(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=Kf(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Kf(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Kf(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const e=this._rowDefs.filter(i=>!i.when);this._defaultRowDef=e[0]}_renderUpdatedColumns(){const e=(a,s)=>a||!!s.getColumnsDiff(),i=this._rowDefs.reduce(e,!1);i&&this._forceRenderDataRows();const o=this._headerRowDefs.reduce(e,!1);o&&this._forceRenderHeaderRows();const r=this._footerRowDefs.reduce(e,!1);return r&&this._forceRenderFooterRows(),i||o||r}_switchDataSource(e){this._data=[],yf(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=e}_observeRenderChanges(){if(!this.dataSource)return;let e;yf(this.dataSource)?e=this.dataSource.connect(this):Pl(this.dataSource)?e=this.dataSource:Array.isArray(this.dataSource)&&(e=Ke(this.dataSource)),this._renderChangeSubscription=e.pipe(ot(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((e,i)=>this._renderRow(this._headerRowOutlet,e,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((e,i)=>this._renderRow(this._footerRowOutlet,e,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(e,i){const o=Array.from(i.columns||[]).map(s=>this._columnDefsByName.get(s)),r=o.map(s=>s.sticky),a=o.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(e,r,a,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(e){const i=[];for(let o=0;o!r.when||r.when(i,e));else{let r=this._rowDefs.find(a=>a.when&&a.when(i,e))||this._defaultRowDef;r&&o.push(r)}return o}_getEmbeddedViewArgs(e,i){return{templateRef:e.rowDef.template,context:{$implicit:e.data},index:i}}_renderRow(e,i,o,r={}){const a=e.viewContainer.createEmbeddedView(i.template,r,o);return this._renderCellTemplateForItem(i,r),a}_renderCellTemplateForItem(e,i){for(let o of this._getCellTemplates(e))Da.mostRecentCellOutlet&&Da.mostRecentCellOutlet._viewContainer.createEmbeddedView(o,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const e=this._rowOutlet.viewContainer;for(let i=0,o=e.length;i{const o=this._columnDefsByName.get(i);return e.extractCellTemplate(o)}):[]}_applyNativeTableSections(){const e=this._document.createDocumentFragment(),i=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const o of i){const r=this._document.createElement(o.tag);r.setAttribute("role","rowgroup");for(const a of o.outlets)r.appendChild(a.elementRef.nativeElement);e.appendChild(r)}this._elementRef.nativeElement.appendChild(e)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const e=(i,o)=>i||o.hasStickyChanged();this._headerRowDefs.reduce(e,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(e,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(e,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new SQ(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:Ke()).pipe(ot(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(e){return e.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){const e=this._customNoDataRow||this._noDataRow;if(!e)return;const i=0===this._rowOutlet.viewContainer.length;if(i===this._isShowingNoDataRow)return;const o=this._noDataRowOutlet.viewContainer;if(i){const r=o.createEmbeddedView(e.templateRef),a=r.rootNodes[0];1===r.rootNodes.length&&a?.nodeType===this._document.ELEMENT_NODE&&(a.setAttribute("role","row"),a.classList.add(e._contentClassName))}else o.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(fr),_(Lt),_(Be),oo("role"),_(fn,8),_(dt),_(ci),_(Wu),_(bC),_(va),_(xC,12),_(We,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Hf,5),gt(r,xa,5),gt(r,zf,5),gt(r,ch,5),gt(r,lh,5)),2&i){let a;Oe(a=Ae())&&(o._noDataRow=a.first),Oe(a=Ae())&&(o._contentColumnDefs=a),Oe(a=Ae())&&(o._contentRowDefs=a),Oe(a=Ae())&&(o._contentHeaderRowDefs=a),Oe(a=Ae())&&(o._contentFooterRowDefs=a)}},viewQuery:function(i,o){if(1&i&&(vt(Uf,7),vt($f,7),vt(Gf,7),vt(qf,7)),2&i){let r;Oe(r=Ae())&&(o._rowOutlet=r.first),Oe(r=Ae())&&(o._headerRowOutlet=r.first),Oe(r=Ae())&&(o._footerRowOutlet=r.first),Oe(r=Ae())&&(o._noDataRowOutlet=r.first)}},hostAttrs:["ngSkipHydration","",1,"cdk-table"],hostVars:2,hostBindings:function(i,o){2&i&&et("cdk-table-fixed-layout",o.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[Ye([{provide:Hl,useExisting:t},{provide:Wu,useClass:xO},{provide:bC,useClass:sP},{provide:xC,useValue:null}])],ngContentSelectors:fQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(pQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function Kf(t,n){return t.concat(Array.from(n))}let MQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[sC]})}return t})();const TQ=[[["caption"]],[["colgroup"],["col"]]],IQ=["caption","colgroup, col"];let ps=(()=>{class t extends Wf{constructor(){super(...arguments),this.stickyCssClass="mat-mdc-table-sticky",this.needsPositionStickyOnElement=!1}ngOnInit(){super.ngOnInit(),this._isNativeHtmlTable&&this._elementRef.nativeElement.querySelector("tbody").classList.add("mdc-data-table__content")}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-table-fixed-layout",o.fixedLayout)},exportAs:["matTable"],features:[Ye([{provide:Wf,useExisting:t},{provide:Hl,useExisting:t},{provide:bC,useClass:sP},{provide:Wu,useClass:xO},{provide:xC,useValue:null}]),ve],ngContentSelectors:IQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(TQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),Sa=(()=>{class t extends Ul{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matCellDef",""]],features:[Ye([{provide:Ul,useExisting:t}]),ve]})}return t})(),ka=(()=>{class t extends $l{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderCellDef",""]],features:[Ye([{provide:$l,useExisting:t}]),ve]})}return t})(),Ma=(()=>{class t extends xa{get name(){return this._name}set name(e){this._setNameInput(e)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:[ge.None,"matColumnDef","name"]},features:[Ye([{provide:xa,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})(),Ta=(()=>{class t extends gC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[ve]})}return t})(),Ia=(()=>{class t extends _C{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[ve]})}return t})(),fs=(()=>{class t extends ch{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[ge.None,"matHeaderRowDef","columns"],sticky:[ge.None,"matHeaderRowDefSticky","sticky"]},features:[Ye([{provide:ch,useExisting:t}]),ve]})}return t})(),gs=(()=>{class t extends zf{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[ge.None,"matRowDefColumns","columns"],when:[ge.None,"matRowDefWhen","when"]},features:[Ye([{provide:zf,useExisting:t}]),ve]})}return t})(),_s=(()=>{class t extends yC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[Ye([{provide:yC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),bs=(()=>{class t extends wC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[Ye([{provide:wC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),dP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,MQ,Mt]})}return t})();class BQ extends vf{get data(){return this._data.value}set data(n){n=Array.isArray(n)?n:[],this._data.next(n),this._renderChangesSubscription||this._filterData(n)}get filter(){return this._filter.value}set filter(n){this._filter.next(n),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(n){this._sort=n,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(n){this._paginator=n,this._updateChangeSubscription()}constructor(n=[]){super(),this._renderData=new mt([]),this._filter=new mt(""),this._internalPageChanges=new qe,this._renderChangesSubscription=null,this.sortingDataAccessor=(e,i)=>{const o=e[i];if(eE(o)){const r=Number(o);return r<9007199254740991?r:o}return o},this.sortData=(e,i)=>{const o=i.active,r=i.direction;return o&&""!=r?e.sort((a,s)=>{let c=this.sortingDataAccessor(a,o),u=this.sortingDataAccessor(s,o);const p=typeof c,g=typeof u;p!==g&&("number"===p&&(c+=""),"number"===g&&(u+=""));let b=0;return null!=c&&null!=u?c>u?b=1:c{const o=Object.keys(e).reduce((a,s)=>a+e[s]+"\u25ec","").toLowerCase(),r=i.trim().toLowerCase();return-1!=o.indexOf(r)},this._data=new mt(n),this._updateChangeSubscription()}_updateChangeSubscription(){const n=this._sort?Ri(this._sort.sortChange,this._sort.initialized):Ke(null),e=this._paginator?Ri(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ke(null),o=Xs([this._data,this._filter]).pipe(nt(([s])=>this._filterData(s))),r=Xs([o,n]).pipe(nt(([s])=>this._orderData(s))),a=Xs([r,e]).pipe(nt(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=a.subscribe(s=>this._renderData.next(s))}_filterData(n){return this.filteredData=null==this.filter||""===this.filter?n:n.filter(e=>this.filterPredicate(e,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(n){return this.sort?this.sortData(n.slice(),this.sort):n}_pageData(n){if(!this.paginator)return n;const e=this.paginator.pageIndex*this.paginator.pageSize;return n.slice(e,e+this.paginator.pageSize)}_updatePaginator(n){Promise.resolve().then(()=>{const e=this.paginator;if(e&&(e.length=n,e.pageIndex>0)){const i=Math.ceil(e.length/e.pageSize)-1||0,o=Math.min(e.pageIndex,i);o!==e.pageIndex&&(e.pageIndex=o,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}}class uP extends BQ{}const hP=new se("CdkAccordion");let VQ=0,jQ=(()=>{class t{get expanded(){return this._expanded}set expanded(e){e=$e(e),this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e)}constructor(e,i,o){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=o,this._openCloseAllSubscription=de.EMPTY,this.closed=new Ne,this.opened=new Ne,this.destroyed=new Ne,this.expandedChange=new Ne,this.id="cdk-accordion-child-"+VQ++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=o.listen((r,a)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===a&&this.id!==r&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(hP,12),_(Lt),_(N0))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[Ye([{provide:hP,useValue:void 0}])]})}return t})(),zQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const HQ=["body"];function UQ(t,n){}const $Q=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],GQ=["mat-expansion-panel-header","*","mat-action-row"];function qQ(t,n){1&t&&D(0,"span",2),2&t&&f("@indicatorRotate",C()._getExpandedState())}const WQ=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],KQ=["mat-panel-title","mat-panel-description","*"],mP=new se("MAT_ACCORDION"),pP="225ms cubic-bezier(0.4,0.0,0.2,1)",fP={indicatorRotate:Lo("indicatorRotate",[mn("collapsed, void",Zt({transform:"rotate(0deg)"})),mn("expanded",Zt({transform:"rotate(180deg)"})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))]),bodyExpansion:Lo("bodyExpansion",[mn("collapsed, void",Zt({height:"0px",visibility:"hidden"})),mn("expanded",Zt({height:"*",visibility:""})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))])},gP=new se("MAT_EXPANSION_PANEL");let ZQ=(()=>{class t{constructor(e,i){this._template=e,this._expansionPanel=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(gP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),YQ=0;const _P=new se("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let DC=(()=>{class t extends jQ{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=$e(e)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,o,r,a,s,c){super(e,i,o),this._viewContainerRef=r,this._animationMode=s,this._hideToggle=!1,this.afterExpand=new Ne,this.afterCollapse=new Ne,this._inputChanges=new qe,this._headerId="mat-expansion-panel-header-"+YQ++,this._bodyAnimationDone=new qe,this.accordion=e,this._document=a,this._bodyAnimationDone.pipe(Ru((u,p)=>u.fromState===p.fromState&&u.toState===p.toState)).subscribe(u=>{"void"!==u.fromState&&("expanded"===u.toState?this.afterExpand.emit():"collapsed"===u.toState&&this.afterCollapse.emit())}),c&&(this.hideToggle=c.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(an(null),kt(()=>this.expanded&&!this._portal),Pt(1)).subscribe(()=>{this._portal=new ya(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(mP,12),_(Lt),_(N0),_(vi),_(dt),_(ui,8),_(_P,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,o,r){if(1&i&>(r,ZQ,5),2&i){let a;Oe(a=Ae())&&(o._lazyContent=a.first)}},viewQuery:function(i,o){if(1&i&&vt(HQ,5),2&i){let r;Oe(r=Ae())&&(o._body=r.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,o){2&i&&et("mat-expanded",o.expanded)("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[Ye([{provide:mP,useValue:void 0},{provide:gP,useExisting:t}]),ve,fi],ngContentSelectors:GQ,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,o){1&i&&(Ut($Q),Ze(0),d(1,"div",0,1),A("@bodyExpansion.done",function(a){return o._bodyAnimationDone.next(a)}),d(3,"div",2),Ze(4,1),y(5,UQ,0,0,"ng-template",3),l(),Ze(6,2),l()),2&i&&(m(),f("@bodyExpansion",o._getExpandedState())("id",o.id),Xe("aria-labelledby",o._headerId),m(4),f("cdkPortalOutlet",o._portal))},dependencies:[Ca],styles:['.mat-expansion-panel{--mat-expansion-container-shape:4px;box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[fP.bodyExpansion]},changeDetection:0})}return t})();class QQ{}const XQ=os(QQ);let bP=(()=>{class t extends XQ{constructor(e,i,o,r,a,s,c){super(),this.panel=e,this._element=i,this._focusMonitor=o,this._changeDetectorRef=r,this._animationMode=s,this._parentChangeSubscription=de.EMPTY;const u=e.accordion?e.accordion._stateChanges.pipe(kt(p=>!(!p.hideToggle&&!p.togglePosition))):jo;this.tabIndex=parseInt(c||"")||0,this._parentChangeSubscription=Ri(e.opened,e.closed,u,e._inputChanges.pipe(kt(p=>!!(p.hideToggle||p.disabled||p.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(kt(()=>e._containsFocus())).subscribe(()=>o.focusVia(i,"program")),a&&(this.expandedHeight=a.expandedHeight,this.collapsedHeight=a.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:An(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static#e=this.\u0275fac=function(i){return new(i||t)(_(DC,1),_(Be),_(zo),_(Lt),_(_P,8),_(ui,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,o){1&i&&A("click",function(){return o._toggle()})("keydown",function(a){return o._keydown(a)}),2&i&&(Xe("id",o.panel._headerId)("tabindex",o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),Sn("height",o._getHeaderHeight()),et("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after","after"===o._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===o._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===o._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[ve],ngContentSelectors:KQ,decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(i,o){1&i&&(Ut(WQ),d(0,"span",0),Ze(1),Ze(2,1),Ze(3,2),l(),y(4,qQ,1,1,"span",1)),2&i&&(et("mat-content-hide-toggle",!o._showToggle()),m(4),f("ngIf",o._showToggle()))},dependencies:[It],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[fP.indicatorRotate]},changeDetection:0})}return t})(),JQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})(),vP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,zQ,cc]})}return t})();function eX(t,n){1&t&&(d(0,"span",7),Ze(1,1),l())}function tX(t,n){1&t&&(d(0,"span",8),Ze(1,2),l())}const yP=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],CP=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function oX(t,n){1&t&&(me(0),D(1,"span",8),pe())}function rX(t,n){1&t&&(d(0,"span",9),Ze(1),l())}function aX(t,n){1&t&&(me(0),Ze(1,1),pe())}function sX(t,n){1&t&&Ze(0,2,["*ngIf","contentEditInput; else defaultMatChipEditInput"])}function cX(t,n){1&t&&D(0,"span",12)}function lX(t,n){if(1&t&&(me(0),y(1,sX,1,0,"ng-content",10)(2,cX,1,0,"ng-template",null,11,br),pe()),2&t){const e=Ft(3),i=C();m(),f("ngIf",i.contentEditInput)("ngIfElse",e)}}function dX(t,n){1&t&&(d(0,"span",13),Ze(1,3),l())}const uX=[[["mat-chip-avatar"],["","matChipAvatar",""]],"*",[["","matChipEditInput",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],hX=["mat-chip-avatar, [matChipAvatar]","*","[matChipEditInput]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"],SC=["*"],Zf=new se("mat-chips-default-options"),kC=new se("MatChipAvatar"),MC=new se("MatChipTrailingIcon"),TC=new se("MatChipRemove"),Yf=new se("MatChip");class mX{}const pX=os(mX,-1);let Gl=(()=>{class t extends pX{get disabled(){return this._disabled||this._parentChip.disabled}set disabled(e){this._disabled=$e(e)}_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(e,i){super(),this._elementRef=e,this._parentChip=i,this.isInteractive=!0,this._isPrimary=!0,this._disabled=!1,this._allowFocusWhenDisabled=!1,"BUTTON"===e.nativeElement.nodeName&&e.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(e){!this.disabled&&this.isInteractive&&this._isPrimary&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Yf))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(Xe("tabindex",o._getTabindex())("disabled",o._getDisabledAttribute())("aria-disabled",o.disabled),et("mdc-evolution-chip__action--primary",o._isPrimary)("mdc-evolution-chip__action--presentational",!o.isInteractive)("mdc-evolution-chip__action--trailing",!o._isPrimary))},inputs:{disabled:"disabled",tabIndex:"tabIndex",isInteractive:"isInteractive",_allowFocusWhenDisabled:"_allowFocusWhenDisabled"},features:[ve]})}return t})(),DP=(()=>{class t extends Gl{constructor(){super(...arguments),this._isPrimary=!1}_handleClick(e){this.disabled||(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-mdc-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(i,o){2&i&&Xe("aria-hidden",null)},features:[Ye([{provide:TC,useExisting:t}]),ve]})}return t})(),_X=0;const bX=os(is(ns(jr(class{constructor(t){this._elementRef=t}})),"primary"),-1);let uc=(()=>{class t extends bX{_hasFocus(){return this._hasFocusInternal}get value(){return void 0!==this._value?this._value:this._textElement.textContent.trim()}set value(e){this._value=e}get removable(){return this._removable}set removable(e){this._removable=$e(e)}get highlighted(){return this._highlighted}set highlighted(e){this._highlighted=$e(e)}get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetectorRef=e,this._ngZone=o,this._focusMonitor=r,this._globalRippleOptions=c,this._onFocus=new qe,this._onBlur=new qe,this.role=null,this._hasFocusInternal=!1,this.id="mat-mdc-chip-"+_X++,this.ariaLabel=null,this.ariaDescription=null,this._ariaDescriptionId=`${this.id}-aria-description`,this._removable=!0,this._highlighted=!1,this.removed=new Ne,this.destroyed=new Ne,this.basicChipAttrName="mat-basic-chip",this._rippleLoader=De(NE),this._document=a,this._animationsDisabled="NoopAnimations"===s,null!=u&&(this.tabIndex=parseInt(u)??this.defaultTabIndex),this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){const e=this._elementRef.nativeElement;this._isBasicChip=e.hasAttribute(this.basicChipAttrName)||e.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Ri(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!(!this.trailingIcon&&!this.removeIcon)}_handleKeydown(e){(8===e.keyCode||46===e.keyCode)&&(e.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(e){return this._getActions().find(i=>{const o=i._elementRef.nativeElement;return o===e||o.contains(e)})}_getActions(){const e=[];return this.primaryAction&&e.push(this.primaryAction),this.removeIcon&&e.push(this.removeIcon),this.trailingIcon&&e.push(this.trailingIcon),e}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{const i=null!==e;i!==this._hasFocusInternal&&(this._hasFocusInternal=i,i?this._onFocus.next({chip:this}):this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>this._ngZone.run(()=>this._onBlur.next({chip:this}))))})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(dt),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,kC,5),gt(r,MC,5),gt(r,TC,5),gt(r,kC,5),gt(r,MC,5),gt(r,TC,5)),2&i){let a;Oe(a=Ae())&&(o.leadingIcon=a.first),Oe(a=Ae())&&(o.trailingIcon=a.first),Oe(a=Ae())&&(o.removeIcon=a.first),Oe(a=Ae())&&(o._allLeadingIcons=a),Oe(a=Ae())&&(o._allTrailingIcons=a),Oe(a=Ae())&&(o._allRemoveIcons=a)}},viewQuery:function(i,o){if(1&i&&vt(Gl,5),2&i){let r;Oe(r=Ae())&&(o.primaryAction=r.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:30,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("role",o.role)("tabindex",o.role?o.tabIndex:null)("aria-label",o.ariaLabel),et("mdc-evolution-chip",!o._isBasicChip)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-basic-chip",o._isBasicChip)("mat-mdc-standard-chip",!o._isBasicChip)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon())("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",role:"role",id:"id",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaDescription:[ge.None,"aria-description","ariaDescription"],value:"value",removable:"removable",highlighted:"highlighted"},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[Ye([{provide:Yf,useExisting:t}]),ve],ngContentSelectors:CP,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing",4,"ngIf"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(yP),D(0,"span",0),d(1,"span",1)(2,"span",2),y(3,eX,2,0,"span",3),d(4,"span",4),Ze(5),D(6,"span",5),l()()(),y(7,tX,2,0,"span",6)),2&i&&(m(2),f("isInteractive",!1),m(),f("ngIf",o.leadingIcon),m(4),f("ngIf",o._hasTrailingIcon()))},dependencies:[It,Gl],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),Qf=(()=>{class t{constructor(e,i){this._elementRef=e,this._document=i}initialize(e){this.getNativeElement().focus(),this.setValue(e)}getNativeElement(){return this._elementRef.nativeElement}setValue(e){this.getNativeElement().textContent=e,this._moveCursorToEndOfInput()}getValue(){return this.getNativeElement().textContent||""}_moveCursorToEndOfInput(){const e=this._document.createRange();e.selectNodeContents(this.getNativeElement()),e.collapse(!1);const i=window.getSelection();i.removeAllRanges(),i.addRange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["span","matChipEditInput",""]],hostAttrs:["role","textbox","tabindex","-1","contenteditable","true",1,"mat-chip-edit-input"]})}return t})(),IC=(()=>{class t extends uc{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this.basicChipAttrName="mat-basic-chip-row",this._editStartPending=!1,this.editable=!1,this.edited=new Ne,this._isEditing=!1,this.role="row",this._onBlur.pipe(ot(this.destroyed)).subscribe(()=>{this._isEditing&&!this._editStartPending&&this._onEditFinish()})}_hasTrailingIcon(){return!this._isEditing&&super._hasTrailingIcon()}_handleFocus(){!this._isEditing&&!this.disabled&&this.focus()}_handleKeydown(e){13!==e.keyCode||this.disabled?this._isEditing?e.stopPropagation():super._handleKeydown(e):this._isEditing?(e.preventDefault(),this._onEditFinish()):this.editable&&this._startEditing(e)}_handleDoubleclick(e){!this.disabled&&this.editable&&this._startEditing(e)}_startEditing(e){if(!this.primaryAction||this.removeIcon&&this._getSourceAction(e.target)===this.removeIcon)return;const i=this.value;this._isEditing=this._editStartPending=!0,this._changeDetectorRef.detectChanges(),setTimeout(()=>{this._getEditInput().initialize(i),this._editStartPending=!1})}_onEditFinish(){this._isEditing=this._editStartPending=!1,this.edited.emit({chip:this,value:this._getEditInput().getValue()}),(this._document.activeElement===this._getEditInput().getNativeElement()||this._document.activeElement===this._document.body)&&this.primaryAction.focus()}_isRippleDisabled(){return super._isRippleDisabled()||this._isEditing}_getEditInput(){return this.contentEditInput||this.defaultEditInput}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(dt),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-row"],["","mat-chip-row",""],["mat-basic-chip-row"],["","mat-basic-chip-row",""]],contentQueries:function(i,o,r){if(1&i&>(r,Qf,5),2&i){let a;Oe(a=Ae())&&(o.contentEditInput=a.first)}},viewQuery:function(i,o){if(1&i&&vt(Qf,5),2&i){let r;Oe(r=Ae())&&(o.defaultEditInput=r.first)}},hostAttrs:[1,"mat-mdc-chip","mat-mdc-chip-row","mdc-evolution-chip"],hostVars:27,hostBindings:function(i,o){1&i&&A("focus",function(a){return o._handleFocus(a)})("dblclick",function(a){return o._handleDoubleclick(a)}),2&i&&(ao("id",o.id),Xe("tabindex",o.disabled?null:-1)("aria-label",null)("aria-description",null)("role",o.role),et("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-chip-editing",o._isEditing)("mat-mdc-chip-editable",o.editable)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon()))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",editable:"editable"},outputs:{edited:"edited"},features:[Ye([{provide:uc,useExisting:t},{provide:Yf,useExisting:t}]),ve],ngContentSelectors:hX,decls:10,vars:12,consts:[[4,"ngIf"],["role","gridcell","matChipAction","",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary",3,"tabIndex","disabled"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label",3,"ngSwitch"],[4,"ngSwitchCase"],["aria-hidden","true",1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing","role","gridcell",4,"ngIf"],[1,"cdk-visually-hidden",3,"id"],[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[4,"ngIf","ngIfElse"],["defaultMatChipEditInput",""],["matChipEditInput",""],["role","gridcell",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(uX),y(0,oX,2,0,"ng-container",0),d(1,"span",1),y(2,rX,2,0,"span",2),d(3,"span",3),y(4,aX,2,0,"ng-container",4)(5,lX,4,2,"ng-container",4),D(6,"span",5),l()(),y(7,dX,2,0,"span",6),d(8,"span",7),h(9),l()),2&i&&(f("ngIf",!o._isEditing),m(),f("tabIndex",o.tabIndex)("disabled",o.disabled),Xe("aria-label",o.ariaLabel)("aria-describedby",o._ariaDescriptionId),m(),f("ngIf",o.leadingIcon),m(),f("ngSwitch",o._isEditing),m(),f("ngSwitchCase",!1),m(),f("ngSwitchCase",!0),m(2),f("ngIf",o._hasTrailingIcon()),m(),f("id",o._ariaDescriptionId),m(),Pe(o.ariaDescription))},dependencies:[It,xl,Sp,Gl,Qf],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();class vX{constructor(n){}}const yX=os(vX);let EC=(()=>{class t extends yX{get chipFocusChanges(){return this._getChipStream(e=>e._onFocus)}get chipDestroyedChanges(){return this._getChipStream(e=>e.destroyed)}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get empty(){return!this._chips||0===this._chips.length}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}set role(e){this._explicitRole=e}get focused(){return this._hasFocusedChip()}constructor(e,i,o){super(e),this._elementRef=e,this._changeDetectorRef=i,this._dir=o,this._lastDestroyedFocusedChipIndex=null,this._destroyed=new qe,this._defaultRole="presentation",this._disabled=!1,this._explicitRole=null,this._chipActions=new oa}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(e=>e._hasFocus())}_syncChipsState(){this._chips&&this._chips.forEach(e=>{e.disabled=this._disabled,e._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(e){this._originatesFromChip(e)&&this._keyManager.onKeydown(e)}_isValidIndex(e){return e>=0&&ethis.tabIndex=e)}}_getChipStream(e){return this._chips.changes.pipe(an(null),gn(()=>Ri(...this._chips.map(e))))}_originatesFromChip(e){let i=e.target;for(;i&&i!==this._elementRef.nativeElement;){if(i.classList.contains("mat-mdc-chip"))return!0;i=i.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(an(this._chips)).subscribe(e=>{const i=[];e.forEach(o=>o._getActions().forEach(r=>i.push(r))),this._chipActions.reset(i),this._chipActions.notifyOnChanges()}),this._keyManager=new Jp(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(e=>this._skipPredicate(e)),this.chipFocusChanges.pipe(ot(this._destroyed)).subscribe(({chip:e})=>{const i=e._getSourceAction(document.activeElement);i&&this._keyManager.updateActiveItem(i)}),this._dir?.change.pipe(ot(this._destroyed)).subscribe(e=>this._keyManager.withHorizontalOrientation(e))}_skipPredicate(e){return!e.isInteractive||e.disabled}_trackChipSetChanges(){this._chips.changes.pipe(an(null),ot(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(ot(this._destroyed)).subscribe(e=>{const o=this._chips.toArray().indexOf(e.chip);this._isValidIndex(o)&&e.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=o)})}_redirectDestroyedChipFocus(){if(null!=this._lastDestroyedFocusedChipIndex){if(this._chips.length){const e=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),i=this._chips.toArray()[e];i.disabled?1===this._chips.length?this.focus():this._keyManager.setPreviousItemActive():i.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-set"]],contentQueries:function(i,o,r){if(1&i&>(r,uc,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("role",o.role)},inputs:{disabled:"disabled",role:"role"},features:[ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();class xX{constructor(n,e){this.source=n,this.value=e}}class DX extends EC{constructor(n,e,i,o,r,a,s){super(n,e,i),this._defaultErrorStateMatcher=o,this._parentForm=r,this._parentFormGroup=a,this.ngControl=s,this.stateChanges=new qe}}const SX=v0(DX);let MP=(()=>{class t extends SX{get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get id(){return this._chipInput.id}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this._chips||0===this._chips.length)}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get focused(){return this._chipInput.focused||this._hasFocusedChip()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get shouldLabelFloat(){return!this.empty||this.focused}get value(){return this._value}set value(e){this._value=e}get chipBlurChanges(){return this._getChipStream(e=>e._onBlur)}constructor(e,i,o,r,a,s,c){super(e,i,o,s,r,a,c),this.controlType="mat-chip-grid",this._defaultRole="grid",this._ariaDescribedbyIds=[],this._onTouched=()=>{},this._onChange=()=>{},this._value=[],this.change=new Ne,this.valueChange=new Ne,this._chips=void 0,this.ngControl&&(this.ngControl.valueAccessor=this)}ngAfterContentInit(){this.chipBlurChanges.pipe(ot(this._destroyed)).subscribe(()=>{this._blur(),this.stateChanges.next()}),Ri(this.chipFocusChanges,this._chips.changes).pipe(ot(this._destroyed)).subscribe(()=>this.stateChanges.next())}ngAfterViewInit(){super.ngAfterViewInit()}ngDoCheck(){this.ngControl&&this.updateErrorState()}ngOnDestroy(){super.ngOnDestroy(),this.stateChanges.complete()}registerInput(e){this._chipInput=e,this._chipInput.setDescribedByIds(this._ariaDescribedbyIds)}onContainerClick(e){!this.disabled&&!this._originatesFromChip(e)&&this.focus()}focus(){this.disabled||this._chipInput.focused||(!this._chips.length||this._chips.first.disabled?Promise.resolve().then(()=>this._chipInput.focus()):this._chips.length&&this._keyManager.setFirstItemActive(),this.stateChanges.next())}setDescribedByIds(e){this._ariaDescribedbyIds=e,this._chipInput?.setDescribedByIds(e)}writeValue(e){this._value=e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this.stateChanges.next()}_blur(){this.disabled||setTimeout(()=>{this.focused||(this._propagateChanges(),this._markAsTouched())})}_allowFocusEscape(){this._chipInput.focused||super._allowFocusEscape()}_handleKeydown(e){9===e.keyCode?this._chipInput.focused&&An(e,"shiftKey")&&this._chips.length&&!this._chips.last.disabled?(e.preventDefault(),this._keyManager.activeItem?this._keyManager.setActiveItem(this._keyManager.activeItem):this._focusLastChip()):super._allowFocusEscape():this._chipInput.focused||super._handleKeydown(e),this.stateChanges.next()}_focusLastChip(){this._chips.length&&this._chips.last.focus()}_propagateChanges(){const e=this._chips.length?this._chips.toArray().map(i=>i.value):[];this._value=e,this.change.emit(new xX(this,e)),this.valueChange.emit(e),this._onChange(e),this._changeDetectorRef.markForCheck()}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8),_(hs,8),_(wi,8),_(nf),_(xr,10))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-grid"]],contentQueries:function(i,o,r){if(1&i&>(r,IC,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mat-mdc-chip-grid","mdc-evolution-chip-set"],hostVars:10,hostBindings:function(i,o){1&i&&A("focus",function(){return o.focus()})("blur",function(){return o._blur()}),2&i&&(ao("tabIndex",o._chips&&0===o._chips.length?-1:o.tabIndex),Xe("role",o.role)("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState),et("mat-mdc-chip-list-disabled",o.disabled)("mat-mdc-chip-list-invalid",o.errorState)("mat-mdc-chip-list-required",o.required))},inputs:{tabIndex:"tabIndex",disabled:"disabled",placeholder:"placeholder",required:"required",value:"value",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},features:[Ye([{provide:Af,useExisting:t}]),ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})(),kX=0,TP=(()=>{class t{set chipGrid(e){e&&(this._chipGrid=e,this._chipGrid.registerInput(this))}get addOnBlur(){return this._addOnBlur}set addOnBlur(e){this._addOnBlur=$e(e)}get disabled(){return this._disabled||this._chipGrid&&this._chipGrid.disabled}set disabled(e){this._disabled=$e(e)}get empty(){return!this.inputElement.value}constructor(e,i,o){this._elementRef=e,this.focused=!1,this._addOnBlur=!1,this.chipEnd=new Ne,this.placeholder="",this.id="mat-mdc-chip-list-input-"+kX++,this._disabled=!1,this.inputElement=this._elementRef.nativeElement,this.separatorKeyCodes=i.separatorKeyCodes,o&&this.inputElement.classList.add("mat-mdc-form-field-input-control")}ngOnChanges(){this._chipGrid.stateChanges.next()}ngOnDestroy(){this.chipEnd.complete()}ngAfterContentInit(){this._focusLastChipOnBackspace=this.empty}_keydown(e){if(e){if(8===e.keyCode&&this._focusLastChipOnBackspace)return this._chipGrid._focusLastChip(),void e.preventDefault();this._focusLastChipOnBackspace=!1}this._emitChipEnd(e)}_keyup(e){!this._focusLastChipOnBackspace&&8===e.keyCode&&this.empty&&(this._focusLastChipOnBackspace=!0,e.preventDefault())}_blur(){this.addOnBlur&&this._emitChipEnd(),this.focused=!1,this._chipGrid.focused||this._chipGrid._blur(),this._chipGrid.stateChanges.next()}_focus(){this.focused=!0,this._focusLastChipOnBackspace=this.empty,this._chipGrid.stateChanges.next()}_emitChipEnd(e){(!e||this._isSeparatorKey(e))&&(this.chipEnd.emit({input:this.inputElement,value:this.inputElement.value,chipInput:this}),e?.preventDefault())}_onInput(){this._chipGrid.stateChanges.next()}focus(){this.inputElement.focus()}clear(){this.inputElement.value="",this._focusLastChipOnBackspace=!0}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}_isSeparatorKey(e){return!An(e)&&new Set(this.separatorKeyCodes).has(e.keyCode)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Zf),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matChipInputFor",""]],hostAttrs:[1,"mat-mdc-chip-input","mat-mdc-input-element","mdc-text-field__input","mat-input-element"],hostVars:6,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._keydown(a)})("keyup",function(a){return o._keyup(a)})("blur",function(){return o._blur()})("focus",function(){return o._focus()})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id),Xe("disabled",o.disabled||null)("placeholder",o.placeholder||null)("aria-invalid",o._chipGrid&&o._chipGrid.ngControl?o._chipGrid.ngControl.invalid:null)("aria-required",o._chipGrid&&o._chipGrid.required||null)("required",o._chipGrid&&o._chipGrid.required||null))},inputs:{chipGrid:[ge.None,"matChipInputFor","chipGrid"],addOnBlur:[ge.None,"matChipInputAddOnBlur","addOnBlur"],separatorKeyCodes:[ge.None,"matChipInputSeparatorKeyCodes","separatorKeyCodes"],placeholder:"placeholder",id:"id",disabled:"disabled"},outputs:{chipEnd:"matChipInputTokenEnd"},exportAs:["matChipInput","matChipInputFor"],features:[fi]})}return t})(),OC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[nf,{provide:Zf,useValue:{separatorKeyCodes:[13]}}],imports:[Mt,Vn,as,Mt]})}return t})();class IP{constructor(){this.expansionModel=new qu(!0)}toggle(n){this.expansionModel.toggle(this._trackByValue(n))}expand(n){this.expansionModel.select(this._trackByValue(n))}collapse(n){this.expansionModel.deselect(this._trackByValue(n))}isExpanded(n){return this.expansionModel.isSelected(this._trackByValue(n))}toggleDescendants(n){this.expansionModel.isSelected(this._trackByValue(n))?this.collapseDescendants(n):this.expandDescendants(n)}collapseAll(){this.expansionModel.clear()}expandDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.select(...e.map(i=>this._trackByValue(i)))}collapseDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.deselect(...e.map(i=>this._trackByValue(i)))}_trackByValue(n){return this.trackBy?this.trackBy(n):n}}class EP extends IP{constructor(n,e,i){super(),this.getLevel=n,this.isExpandable=e,this.options=i,this.options&&(this.trackBy=this.options.trackBy)}getDescendants(n){const i=[];for(let o=this.dataNodes.indexOf(n)+1;othis._trackByValue(n)))}}let OX=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),OP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[OX,Mt,Mt]})}return t})();class LX{constructor(n,e,i,o){this.transformFunction=n,this.getLevel=e,this.isExpandable=i,this.getChildren=o}_flattenNode(n,e,i,o){const r=this.transformFunction(n,e);if(i.push(r),this.isExpandable(r)){const a=this.getChildren(n);a&&(Array.isArray(a)?this._flattenChildren(a,e,i,o):a.pipe(Pt(1)).subscribe(s=>{this._flattenChildren(s,e,i,o)}))}return i}_flattenChildren(n,e,i,o){n.forEach((r,a)=>{let s=o.slice();s.push(a!=n.length-1),this._flattenNode(r,e+1,i,s)})}flattenNodes(n){let e=[];return n.forEach(i=>this._flattenNode(i,0,e,[])),e}expandFlattenedNodes(n,e){let i=[],o=[];return o[0]=!0,n.forEach(r=>{let a=!0;for(let s=0;s<=this.getLevel(r);s++)a=a&&o[s];a&&i.push(r),this.isExpandable(r)&&(o[this.getLevel(r)+1]=e.isExpanded(r))}),i}}class AP extends vf{get data(){return this._data.value}set data(n){this._data.next(n),this._flattenedData.next(this._treeFlattener.flattenNodes(this.data)),this._treeControl.dataNodes=this._flattenedData.value}constructor(n,e,i){super(),this._treeControl=n,this._treeFlattener=e,this._flattenedData=new mt([]),this._expandedData=new mt([]),this._data=new mt([]),i&&(this.data=i)}connect(n){return Ri(n.viewChange,this._treeControl.expansionModel.changed,this._flattenedData).pipe(nt(()=>(this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value,this._treeControl)),this._expandedData.value)))}disconnect(){}}function BX(t,n){}const VX=t=>({animationDuration:t}),jX=(t,n)=>({value:t,params:n});function zX(t,n){1&t&&Ze(0)}const PP=["*"],HX=["tabListContainer"],UX=["tabList"],$X=["tabListInner"],GX=["nextPaginator"],qX=["previousPaginator"],WX=["tabBodyWrapper"],KX=["tabHeader"];function ZX(t,n){}function YX(t,n){1&t&&y(0,ZX,0,0,"ng-template",14),2&t&&f("cdkPortalOutlet",C().$implicit.templateLabel)}function QX(t,n){1&t&&h(0),2&t&&Pe(C().$implicit.textLabel)}function XX(t,n){if(1&t){const e=_e();d(0,"div",6,7),A("click",function(){const o=ie(e),r=o.$implicit,a=o.index,s=C(),c=Ft(1);return ne(s._handleClick(r,c,a))})("cdkFocusChange",function(o){const a=ie(e).index;return ne(C()._tabFocusChanged(o,a))}),D(2,"span",8)(3,"div",9),d(4,"span",10)(5,"span",11),y(6,YX,1,1,"ng-template",12)(7,QX,1,1,"ng-template",null,13,br),l()()()}if(2&t){const e=n.$implicit,i=n.index,o=Ft(1),r=Ft(8),a=C();et("mdc-tab--active",a.selectedIndex===i),f("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Xe("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),m(3),f("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),m(3),f("ngIf",e.templateLabel)("ngIfElse",r)}}function JX(t,n){if(1&t){const e=_e();d(0,"mat-tab-body",15),A("_onCentered",function(){return ie(e),ne(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return ie(e),ne(C()._setTabBodyWrapperHeight(o))}),l()}if(2&t){const e=n.$implicit,i=n.index,o=C();et("mat-mdc-tab-body-active",o.selectedIndex===i),f("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Xe("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))("aria-hidden",o.selectedIndex!==i)}}const eJ={translateTab:Lo("translateTab",[mn("center, void, left-origin-center, right-origin-center",Zt({transform:"none"})),mn("left",Zt({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),mn("right",Zt({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Qi("* => left, * => right, left => center, right => center",Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Qi("void => left-origin-center",[Zt({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Qi("void => right-origin-center",[Zt({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let tJ=(()=>{class t extends Ca{constructor(e,i,o,r){super(e,i,r),this._host=o,this._centeringSub=de.EMPTY,this._leavingSub=de.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(an(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(Qt(()=>RP)),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabBodyHost",""]],features:[ve]})}return t})(),iJ=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=de.EMPTY,this._translateTabComplete=new qe,this._onCentering=new Ne,this._beforeCentering=new Ne,this._afterLeavingCenter=new Ne,this._onCentered=new Ne(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(r=>{this._computePositionAnimationState(r),o.markForCheck()})),this._translateTabComplete.pipe(Ru((r,a)=>r.fromState===a.fromState&&r.toState===a.toState)).subscribe(r=>{this._isCenterPosition(r.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(r.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{_content:[ge.None,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}})}return t})(),RP=(()=>{class t extends iJ{constructor(e,i,o){super(e,i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&vt(Ca,5),2&i){let r;Oe(r=Ae())&&(o._portalHost=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[ve],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,o){1&i&&(d(0,"div",0,1),A("@translateTab.start",function(a){return o._onTranslateTabStarted(a)})("@translateTab.done",function(a){return o._translateTabComplete.next(a)}),y(2,BX,0,0,"ng-template",2),l()),2&i&&f("@translateTab",zM(3,jX,o._position,hi(1,VX,o.animationDuration)))},dependencies:[tJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[eJ.translateTab]}})}return t})();const nJ=new se("MatTabContent");let oJ=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabContent",""]],features:[Ye([{provide:nJ,useExisting:t}])]})}return t})();const rJ=new se("MatTabLabel"),NP=new se("MAT_TAB");let FC=(()=>{class t extends CY{constructor(e,i,o){super(e,i),this._closestTab=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi),_(NP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Ye([{provide:rJ,useExisting:t}]),ve]})}return t})();const LC="mdc-tab-indicator--active",FP="mdc-tab-indicator--no-transition";class aJ{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function sJ(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=$e(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(LC);const i=e.getBoundingClientRect(),o=n.width/i.width,r=n.left-i.left;e.classList.add(FP),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(FP),e.classList.add(LC),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(LC)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const lJ=jr(class{}),dJ=sJ((()=>{class t extends lJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})());let LP=(()=>{class t extends dJ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Xe("aria-disabled",!!o.disabled),et("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[ve]})}return t})();const uJ=jr(class{}),BP=new se("MAT_TAB_GROUP");let hJ=(()=>{class t extends uJ{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new qe,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ya(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(BP,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(gi,7),2&i){let r;Oe(r=Ae())&&(o._implicitContent=r.first)}},inputs:{textLabel:[ge.None,"label","textLabel"],ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[ve,fi]})}return t})(),eg=(()=>{class t extends hJ{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,oJ,7,gi),gt(r,FC,5)),2&i){let a;Oe(a=Ae())&&(o._explicitContent=a.first),Oe(a=Ae())&&(o.templateLabel=a.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Ye([{provide:NP,useExisting:t}]),ve],ngContentSelectors:PP,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),y(0,zX,1,0,"ng-template"))},encapsulation:2})}return t})();const VP=Ja({passive:!0});let fJ=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=yi(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,r,a,s,c){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=r,this._ngZone=a,this._platform=s,this._animationMode=c,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new qe,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new qe,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new Ne,this.indexFocused=new Ne,a.runOutsideAngular(()=>{er(e.nativeElement,"mouseleave").pipe(ot(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){er(this._previousPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),er(this._nextPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ke("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Jp(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Pt(1)).subscribe(o),Ri(e,i,this._items.changes,this._itemsResized()).pipe(ot(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return"function"!=typeof ResizeObserver?jo:this._items.changes.pipe(an(this._items),gn(e=>new li(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),l0(1),kt(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!An(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:r,offsetWidth:a}=i.elementRef.nativeElement;let s,c;"ltr"==this._getLayoutDirection()?(s=r,c=s+a):(c=this._tabListInner.nativeElement.offsetWidth-r,s=c-a);const u=this.scrollDistance,p=this.scrollDistance+o;sp&&(this.scrollDistance+=Math.min(c-p,s-u))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Pf(650,100).pipe(ot(Ri(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:r}=this._scrollHeader(e);(0===r||r>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disablePagination:"disablePagination"}})}return t})(),gJ=(()=>{class t extends fJ{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e)}constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disableRipple:"disableRipple"},features:[ve]})}return t})(),_J=(()=>{class t extends gJ{constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c)}ngAfterContentInit(){this._inkBar=new aJ(this._items),super.ngAfterContentInit()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&>(r,LP,4),2&i){let a;Oe(a=Ae())&&(o._items=a)}},viewQuery:function(i,o){if(1&i&&(vt(HX,7),vt(UX,7),vt($X,7),vt(GX,5),vt(qX,5)),2&i){let r;Oe(r=Ae())&&(o._tabListContainer=r.first),Oe(r=Ae())&&(o._tabList=r.first),Oe(r=Ae())&&(o._tabListInner=r.first),Oe(r=Ae())&&(o._nextPaginator=r.first),Oe(r=Ae())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[ve],ngContentSelectors:PP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(i,o){1&i&&(Ut(),d(0,"button",0,1),A("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(a){return o._handlePaginatorPress("before",a)})("touchend",function(){return o._stopInterval()}),D(2,"div",2),l(),d(3,"div",3,4),A("keydown",function(a){return o._handleKeydown(a)}),d(5,"div",5,6),A("cdkObserveContent",function(){return o._onContentChanges()}),d(7,"div",7,8),Ze(9),l()()(),d(10,"button",9,10),A("mousedown",function(a){return o._handlePaginatorPress("after",a)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),D(12,"div",2),l()),2&i&&(et("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),f("matRippleDisabled",o._disableScrollBefore||o.disableRipple)("disabled",o._disableScrollBefore||null),m(3),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(7),et("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),f("matRippleDisabled",o._disableScrollAfter||o.disableRipple)("disabled",o._disableScrollAfter||null))},dependencies:[rs,iE],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2})}return t})();const jP=new se("MAT_TABS_CONFIG");let bJ=0;const vJ=is(ns(class{constructor(t){this._elementRef=t}}),"primary");let yJ=(()=>{class t extends vJ{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=yi(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=yi(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=$e(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,r){super(e),this._changeDetectorRef=i,this._animationMode=r,this._tabs=new oa,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=de.EMPTY,this._tabLabelSubscription=de.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new Ne,this.focusChange=new Ne,this.animationDone=new Ne,this.selectedTabChange=new Ne(!0),this._groupId=bJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,r)=>o.isActive=r===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let r=0;r{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(an(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new CJ;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Ri(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[ve]})}return t})(),BC=(()=>{class t extends yJ{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=$e(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=$e(e)}constructor(e,i,o,r){super(e,i,o,r),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&>(r,eg,5),2&i){let a;Oe(a=Ae())&&(o._allTabs=a)}},viewQuery:function(i,o){if(1&i&&(vt(WX,5),vt(KX,5)),2&i){let r;Oe(r=Ae())&&(o._tabBodyWrapper=r.first),Oe(r=Ae())&&(o._tabHeader=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-tab-group"],hostVars:8,hostBindings:function(i,o){2&i&&(Sn("--mat-tab-animation-duration",o.animationDuration),et("mat-mdc-tab-group-dynamic-height",o.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===o.headerPosition)("mat-mdc-tab-group-stretch-tabs",o.stretchTabs))},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:[ge.None,"mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Ye([{provide:BP,useExisting:t}]),ve],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(i,o){1&i&&(d(0,"mat-tab-header",0,1),A("indexFocused",function(a){return o._focusChanged(a)})("selectFocusedIndex",function(a){return o.selectedIndex=a}),y(2,XX,9,17,"div",2),l(),d(3,"div",3,4),y(5,JX,1,12,"mat-tab-body",5),l()),2&i&&(f("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),m(2),f("ngForOf",o._tabs),m(),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(2),f("ngForOf",o._tabs))},dependencies:[yr,rn,It,Ca,rs,tq,RP,LP,_J],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})();class CJ{}let zP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,cc,as,Zp,b0,Mt]})}return t})();function wJ(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"button",3),A("click",function(){return ie(e),ne(C().action())}),h(2),l()()}if(2&t){const e=C();m(2),xe(" ",e.data.action," ")}}const xJ=["label"];function DJ(t,n){}const SJ=Math.pow(2,31)-1;class VC{constructor(n,e){this._overlayRef=e,this._afterDismissed=new qe,this._afterOpened=new qe,this._onAction=new qe,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,SJ))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const HP=new se("MatSnackBarData");class tg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let kJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),MJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),TJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),IJ=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static#e=this.\u0275fac=function(i){return new(i||t)(_(VC),_(HP))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),h(1),l(),y(2,wJ,3,1,"div",1)),2&i&&(m(),xe(" ",o.data.message,"\n"),m(),f("ngIf",o.hasAction))},dependencies:[It,Yt,kJ,MJ,TJ],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})();const EJ={snackBarState:Lo("state",[mn("void, hidden",Zt({transform:"scale(0.8)",opacity:0})),mn("visible",Zt({transform:"scale(1)",opacity:1})),Qi("* => visible",Yi("150ms cubic-bezier(0, 0, 0.2, 1)")),Qi("* => void, * => hidden",Yi("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zt({opacity:0})))])};let OJ=0,AJ=(()=>{class t extends Ff{constructor(e,i,o,r,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=r,this.snackBarConfig=a,this._document=De(dt),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new qe,this._onExit=new qe,this._onEnter=new qe,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+OJ++,this.attachDomPortal=s=>{this._assertNotAttached();const c=this._portalOutlet.attachDomPortal(s);return this._afterPortalAttached(),c},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const r=this._onEnter;this._ngZone.run(()=>{r.next(),r.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(We),_(Be),_(Lt),_(ci),_(tg))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},features:[ve]})}return t})(),PJ=(()=>{class t extends AJ{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&vt(xJ,7),2&i){let r;Oe(r=Ae())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(i,o){1&i&&ep("@state.done",function(a){return o.onAnimationEnd(a)}),2&i&&Zm("@state",o._animationState)},features:[ve],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1,2)(3,"div",3),y(4,DJ,0,0,"ng-template",4),l(),D(5,"div"),l()()),2&i&&(m(5),Xe("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Ca],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[EJ.snackBarState]}})}return t})(),jC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[dc,cc,Vn,lf,Mt,Mt]})}return t})();const UP=new se("mat-snack-bar-default-options",{providedIn:"root",factory:function RJ(){return new tg}});let NJ=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,r,a,s){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=r,this._parentSnackBar=a,this._defaultConfig=s,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const r={...this._defaultConfig,...o};return r.data={message:e,action:i},r.announcementMessage===e&&(r.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,r)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const r=ji.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:tg,useValue:i}]}),a=new Ll(this.snackBarContainerComponent,i.viewContainerRef,r),s=e.attach(a);return s.instance.snackBarConfig=i,s.instance}_attach(e,i){const o={...new tg,...this._defaultConfig,...i},r=this._createOverlay(o),a=this._attachSnackBarContainer(r,o),s=new VC(a,r);if(e instanceof gi){const c=new ya(e,null,{$implicit:o.data,snackBarRef:s});s.instance=a.attachTemplatePortal(c)}else{const c=this._createInjector(o,s),u=new Ll(e,void 0,c),p=a.attachComponentPortal(u);s.instance=p.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(ot(r.detachments())).subscribe(c=>{r.overlayElement.classList.toggle(this.handsetCssClass,c.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(s,o),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Bl;i.direction=e.direction;let o=this._overlay.position().global();const r="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,s=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):s?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return ji.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:VC,useValue:i},{provide:HP,useValue:e.data}]})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),FJ=(()=>{class t extends NJ{constructor(e,i,o,r,a,s){super(e,i,o,r,a,s),this.simpleSnackBarComponent=IJ,this.snackBarContainerComponent=PJ,this.handsetCssClass="mat-mdc-snack-bar-handset"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:jC})}return t})();function LJ(t,n){}class ig{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let $P=(()=>{class t extends Ff{constructor(e,i,o,r,a,s,c,u){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=r,this._interactivityChecker=a,this._ngZone=s,this._overlayRef=c,this._focusMonitor=u,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this.attachDomPortal=p=>{this._portalOutlet.hasAttached();const g=this._portalOutlet.attachDomPortal(p);return this._contentAttached(),g},this._document=o,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=Hp(),r=this._elementRef.nativeElement;(!o||o===this._document.body||o===r||r.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=Hp();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Hp())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ig),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Xe("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[ve],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&y(0,LJ,0,0,"ng-template",0)},dependencies:[Ca],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})();class zC{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new qe,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const GP=new se("DialogScrollStrategy"),BJ=new se("DialogData"),VJ=new se("DefaultDialogConfig"),zJ={provide:GP,deps:[Qn],useFactory:function jJ(t){return()=>t.scrollStrategies.block()}};let HJ=0,qP=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,r,a,s){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=r,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._ariaHiddenElements=new Map,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s}open(e,i){(i={...this._defaultOptions||new ig,...i}).id=i.id||"cdk-dialog-"+HJ++,i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),a=this._overlay.create(r),s=new zC(a,i),c=this._attachContainer(a,s,i);return s.containerInstance=c,this._attachDialogContent(e,s,c,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){HC(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){HC(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),HC(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Bl({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,a=[{provide:ig,useValue:o},{provide:zC,useValue:i},{provide:ah,useValue:e}];let s;o.container?"function"==typeof o.container?s=o.container:(s=o.container.type,a.push(...o.container.providers(o))):s=$P;const c=new Ll(s,o.viewContainerRef,ji.create({parent:r||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(c).instance}_attachDialogContent(e,i,o,r){if(e instanceof gi){const a=this._createInjector(r,i,o,void 0);let s={$implicit:r.data,dialogRef:i};r.templateContext&&(s={...s,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new ya(e,null,s,a))}else{const a=this._createInjector(r,i,o,this._injector),s=o.attachComponentPortal(new Ll(e,r.viewContainerRef,a,r.componentFactoryResolver));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(e,i,o,r){const a=e.injector||e.viewContainerRef?.injector,s=[{provide:BJ,useValue:e.data},{provide:zC,useValue:i}];return e.providers&&("function"==typeof e.providers?s.push(...e.providers(i,e,o)):s.push(...e.providers)),e.direction&&(!a||!a.get(fn,null,{optional:!0}))&&s.push({provide:fn,useValue:{value:e.direction,change:Ke()}}),ji.create({parent:a||r,providers:s})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,a)=>{r?a.setAttribute("aria-hidden",r):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const r=i[o];r!==e&&"SCRIPT"!==r.nodeName&&"STYLE"!==r.nodeName&&!r.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(r,r.getAttribute("aria-hidden")),r.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(VJ,8),X(t,12),X(Lf),X(GP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function HC(t,n){let e=t.length;for(;e--;)n(t[e])}let UJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[qP,zJ],imports:[dc,cc,b0,cc]})}return t})();function $J(t,n){}class ng{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const UC="mdc-dialog--open",WP="mdc-dialog--opening",KP="mdc-dialog--closing";let WJ=(()=>{class t extends $P{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this._animationStateChanged=new Ne}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ng),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],features:[ve],decls:0,vars:0,template:function(i,o){},encapsulation:2})}return t})();const ZP="--mat-dialog-transition-duration";function YP(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?yi(t.substring(0,t.length-2)):t.endsWith("s")?1e3*yi(t.substring(0,t.length-1)):"0"===t?0:null}let KJ=(()=>{class t extends WJ{constructor(e,i,o,r,a,s,c,u,p){super(e,i,o,r,a,s,c,p),this._animationMode=u,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?YP(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?YP(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(WP,UC)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(UC),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(UC),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(KP)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(WP,KP)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(dt,8),_(ng),_(Fu),_(We),_(ah),_(ui,8),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(i,o){2&i&&(ao("id",o._config.id),Xe("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),et("_mat-animation-noopable",!o._animationsEnabled))},features:[ve],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,$J,0,0,"ng-template",2),l()())},dependencies:[Ca],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return t})();class bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new qe,this._beforeClosed=new qe,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(kt(o=>"opened"===o.state),Pt(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(kt(o=>"closed"===o.state),Pt(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Ri(this.backdropClick(),this.keydownEvents().pipe(kt(o=>27===o.keyCode&&!this.disableClose&&!An(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),QP(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(kt(e=>"closing"===e.state),Pt(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function QP(t,n,e){return t._closeInteractionType=n,t.close(e)}const mo=new se("MatMdcDialogData"),ZJ=new se("mat-mdc-dialog-default-options"),XP=new se("mat-mdc-dialog-scroll-strategy"),QJ={provide:XP,deps:[Qn],useFactory:function YJ(t){return()=>t.scrollStrategies.block()}};let XJ=0,JJ=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,r,a,s,c,u,p,g){this._overlay=e,this._defaultOptions=o,this._parentDialog=r,this._dialogRefConstructor=c,this._dialogContainerType=u,this._dialogDataToken=p,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._idPrefix="mat-dialog-",this.dialogConfigClass=ng,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s,this._dialog=i.get(qP)}open(e,i){let o;(i={...this._defaultOptions||new ng,...i}).id=i.id||`${this._idPrefix}${XJ++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ig,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,s,c)=>(o=new this._dialogRefConstructor(a,i,c),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentRef=r.componentRef,o.componentInstance=r.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Hr=(()=>{class t extends JJ{constructor(e,i,o,r,a,s,c,u){super(e,i,r,s,c,a,bn,KJ,mo,u),this._idPrefix="mat-mdc-dialog-"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(Ws,8),X(ZJ,8),X(XP),X(t,12),X(Lf),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),eee=0,zn=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=JP(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){QP(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&A("click",function(a){return o._onButtonClick(a)}),2&i&&Xe("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],type:"type",dialogResult:[ge.None,"mat-dialog-close","dialogResult"],_matDialogClose:[ge.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[fi]})}return t})(),tee=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+eee++}ngOnInit(){this._dialogRef||(this._dialogRef=JP(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._dialogRef._containerInstance?._ariaLabelledByQueue?.push(this.id)})}ngOnDestroy(){const e=this._dialogRef?._containerInstance?._ariaLabelledByQueue;e&&Promise.resolve().then(()=>{const i=e.indexOf(this.id);i>-1&&e.splice(i,1)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]})}return t})(),So=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]})}return t})(),ko=(()=>{class t{constructor(){this.align="start"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"}})}return t})();function JP(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let eR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[Hr,QJ],imports:[UJ,dc,cc,Mt,Mt]})}return t})();const iee=["tooltip"],iR=new se("mat-tooltip-scroll-strategy"),ree={provide:iR,deps:[Qn],useFactory:function oee(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},see=new se("mat-tooltip-default-options",{providedIn:"root",factory:function aee(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),nR="tooltip-panel",oR=Ja({passive:!0});let mee=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=$e(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=yi(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=yi(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=r,this._ngZone=a,this._platform=s,this._ariaDescriber=c,this._focusMonitor=u,this._dir=g,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new qe,this._scrollStrategy=p,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures)),g.change.pipe(ot(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(ot(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,oR)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ll(this._tooltipComponent,this._viewContainerRef);const r=this._tooltipInstance=o.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&r._origin instanceof Be)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(ot(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${nR}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(ot(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(ot(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&27===r.keyCode&&!An(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),r=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...r.main}),this._addOffset({...o.fallback,...r.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:r,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:r,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Pt(1),ot(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:r}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",a!==this._currentPosition){const s=this._overlayRef;if(s){const c=`${this._cssClassPrefix}-${nR}-`;s.removePanelClass(c+this._currentPosition),s.addPanelClass(c+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,oR)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{position:[ge.None,"matTooltipPosition","position"],positionAtOrigin:[ge.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[ge.None,"matTooltipDisabled","disabled"],showDelay:[ge.None,"matTooltipShowDelay","showDelay"],hideDelay:[ge.None,"matTooltipHideDelay","hideDelay"],touchGestures:[ge.None,"matTooltipTouchGestures","touchGestures"],message:[ge.None,"matTooltip","message"],tooltipClass:[ge.None,"matTooltipClass","tooltipClass"]}})}return t})(),vn=(()=>{class t extends mee{constructor(e,i,o,r,a,s,c,u,p,g,b,w){super(e,i,o,r,a,s,c,u,p,g,b,w),this._tooltipComponent=fee,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(oh),_(vi),_(We),_(ci),_(FG),_(zo),_(iR),_(fn,8),_(see,8),_(dt))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-mdc-tooltip-disabled",o.disabled)},exportAs:["matTooltip"],features:[ve]})}return t})(),pee=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new qe,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,r=this._hideAnimation;if(i.classList.remove(e?r:o),i.classList.add(e?o:r),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(ui,8))};static#t=this.\u0275dir=Q({type:t})}return t})(),fee=(()=>{class t extends pee{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&vt(iee,7),2&i){let r;Oe(r=Ae())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,o){1&i&&A("mouseleave",function(a){return o._handleMouseLeave(a)}),2&i&&Sn("zoom",o.isVisible()?1:null)},features:[ve],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,o){1&i&&(d(0,"div",0,1),A("animationend",function(a){return o._handleAnimationEnd(a)}),d(2,"div",2),h(3),l()()),2&i&&(et("mdc-tooltip--multiline",o._isMultiline),f("ngClass",o.tooltipClass),m(3),Pe(o.message))},dependencies:[yr],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})(),$C=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ree],imports:[b0,Vn,dc,Mt,Mt,ms]})}return t})();const gee=["input"],_ee=["label"],bee=["*"],vee=new se("mat-checkbox-default-options",{providedIn:"root",factory:rR});function rR(){return{color:"accent",clickAction:"check-indeterminate"}}const yee={provide:uo,useExisting:Qt(()=>og),multi:!0};class Cee{}let wee=0;const aR=rR(),xee=os(is(ns(jr(class{constructor(t){this._elementRef=t}}))));let Dee=(()=>{class t extends xee{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=$e(e)}constructor(e,i,o,r,a,s,c){super(i),this._changeDetectorRef=o,this._ngZone=r,this._animationMode=s,this._options=c,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ne,this.indeterminateChange=new Ne,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||aR,this.color=this.defaultColor=this._options.color||aR.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++wee}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=$e(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=$e(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=$e(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const r=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(r)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gee,5),vt(_ee,5),vt(rs,5)),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first),Oe(r=Ae())&&(o._labelElement=r.first),Oe(r=Ae())&&(o.ripple=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[ve]})}return t})(),og=(()=>{class t extends Dee{constructor(e,i,o,r,a,s){super("mat-mdc-checkbox-",e,i,o,r,a,s),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new Cee;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),oo("tabindex"),_(ui,8),_(vee,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("tabindex",null)("aria-label",null)("aria-labelledby",null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Ye([yee]),ve],ngContentSelectors:bee,decls:15,vars:20,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0),A("click",function(a){return o._preventBubblingFromLabel(a)}),d(1,"div",1,2)(3,"div",3),A("click",function(){return o._onTouchTargetClick()}),l(),d(4,"input",4,5),A("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(a){return o._onInteractionEvent(a)}),l(),D(6,"div",6),d(7,"div",7),ei(),d(8,"svg",8),D(9,"path",9),l(),pr(),D(10,"div",10),l(),D(11,"div",11),l(),d(12,"label",12,13),Ze(14),l()()),2&i){const r=Ft(2);et("mdc-form-field--align-end","before"==o.labelPosition),m(4),et("mdc-checkbox--selected",o.checked),f("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled)("id",o.inputId)("required",o.required)("tabIndex",o.tabIndex),Xe("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("name",o.name)("value",o.value),m(7),f("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),m(),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),sR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})(),cR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,as,sR,Mt,sR]})}return t})();const rg=["*"],Mee=["content"];function Tee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Iee(t,n){1&t&&(d(0,"mat-drawer-content"),Ze(1,2),l())}const Eee=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Oee=["mat-drawer","mat-drawer-content","*"];function Aee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Pee(t,n){1&t&&(d(0,"mat-sidenav-content"),Ze(1,2),l())}const Ree=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],Nee=["mat-sidenav","mat-sidenav-content","*"],lR={transformDrawer:Lo("transform",[mn("open, open-instant",Zt({transform:"none",visibility:"visible"})),mn("void",Zt({"box-shadow":"none",visibility:"hidden"})),Qi("void => open-instant",Yi("0ms")),Qi("void <=> open, open-instant => void",Yi("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},Lee=new se("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function Bee(){return!1}}),GC=new se("MAT_DRAWER_CONTAINER");let ag=(()=>{class t extends rh{constructor(e,i,o,r,a){super(o,r,a),this._changeDetectorRef=e,this._container=i}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>uR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{get position(){return this._position}set position(e){(e="end"===e?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=$e(e)}get autoFocus(){return this._autoFocus??("side"===this.mode?"dialog":"first-tabbable")}set autoFocus(e){("true"===e||"false"===e||null==e)&&(e=$e(e)),this._autoFocus=e}get opened(){return this._opened}set opened(e){this.toggle($e(e))}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._focusTrapFactory=i,this._focusMonitor=o,this._platform=r,this._ngZone=a,this._interactivityChecker=s,this._doc=c,this._container=u,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new qe,this._animationEnd=new qe,this._animationState="void",this.openedChange=new Ne(!0),this._openedStream=this.openedChange.pipe(kt(p=>p),nt(()=>{})),this.openedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&0===p.toState.indexOf("open")),Bf(void 0)),this._closedStream=this.openedChange.pipe(kt(p=>!p),nt(()=>{})),this.closedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&"void"===p.toState),Bf(void 0)),this._destroyed=new qe,this.onPositionChanged=new Ne,this._modeChanged=new qe,this.openedChange.subscribe(p=>{p?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{er(this._elementRef.nativeElement,"keydown").pipe(kt(p=>27===p.keyCode&&!this.disableClose&&!An(p)),ot(this._destroyed)).subscribe(p=>this._ngZone.run(()=>{this.close(),p.stopPropagation(),p.preventDefault()}))}),this._animationEnd.pipe(Ru((p,g)=>p.fromState===g.fromState&&p.toState===g.toState)).subscribe(p=>{const{fromState:g,toState:b}=p;(0===b.indexOf("open")&&"void"===g||"void"===b&&0===g.indexOf("open"))&&this.openedChange.emit(this._opened)})}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_takeFocus(){if(!this._focusTrap)return;const e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{!i&&"function"==typeof this._elementRef.nativeElement.focus&&e.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(e){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){const e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,i){e&&i&&(this._openedVia=i);const o=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),o}_setOpen(e,i,o){return this._opened=e,e?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(o)),this._updateFocusTrapState(),new Promise(r=>{this.openedChange.pipe(Pt(1)).subscribe(a=>r(a?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop)}_updatePositionInParent(e){const i=this._elementRef.nativeElement,o=i.parentNode;"end"===e?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(zo),_(ci),_(We),_(Fu),_(dt,8),_(GC,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,o){if(1&i&&vt(Mee,5),2&i){let r;Oe(r=Ae())&&(o._content=r.first)}},hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer"],hostVars:12,hostBindings:function(i,o){1&i&&ep("@transform.start",function(a){return o._animationStarted.next(a)})("@transform.done",function(a){return o._animationEnd.next(a)}),2&i&&(Xe("align",null),Zm("@transform",o._animationState),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),uR=(()=>{class t{get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=$e(e)}get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=null==e?null:$e(e)}get scrollable(){return this._userContent||this._content}constructor(e,i,o,r,a,s=!1,c){this._dir=e,this._element=i,this._ngZone=o,this._changeDetectorRef=r,this._animationMode=c,this._drawers=new oa,this.backdropClick=new Ne,this._destroyed=new qe,this._doCheckSubject=new qe,this._contentMargins={left:null,right:null},this._contentMarginChanges=new qe,e&&e.change.pipe(ot(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),a.change().pipe(ot(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=s}ngAfterContentInit(){this._allDrawers.changes.pipe(an(this._allDrawers),ot(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(an(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Wp(10),ot(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,i=0;if(this._left&&this._left.opened)if("side"==this._left.mode)e+=this._left._getWidth();else if("push"==this._left.mode){const o=this._left._getWidth();e+=o,i-=o}if(this._right&&this._right.opened)if("side"==this._right.mode)i+=this._right._getWidth();else if("push"==this._right.mode){const o=this._right._getWidth();i+=o,e-=o}e=e||null,i=i||null,(e!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:e,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(kt(i=>i.fromState!==i.toState),ot(this._drawers.changes)).subscribe(i=>{"open-instant"!==i.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==e.mode&&e.openedChange.pipe(ot(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e&&e.onPositionChanged.pipe(ot(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(e){e&&e._modeChanged.pipe(ot(Ri(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){const i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";e?i.add(o):i.remove(o)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{"end"==e.position?this._end=e:this._start=e}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return null!=e&&e.opened}_drawerHasBackdrop(e){return null==this._backdropOverride?!!e&&"side"!==e.mode:this._backdropOverride}static#e=this.\u0275fac=function(i){return new(i||t)(_(fn,8),_(Be),_(We),_(Lt),_(va),_(Lee),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,ag,5),gt(r,dR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},viewQuery:function(i,o){if(1&i&&vt(ag,5),2&i){let r;Oe(r=Ae())&&(o._userContent=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[Ye([{provide:GC,useExisting:t}])],ngContentSelectors:Oee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Eee),y(0,Tee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Iee,2,0,"mat-drawer-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,ag],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),qC=(()=>{class t extends ag{constructor(e,i,o,r,a){super(e,i,o,r,a)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>mR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),hR=(()=>{class t extends dR{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=$e(e)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=yi(e)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=yi(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(i,o){2&i&&(Xe("align",null),Sn("top",o.fixedInViewport?o.fixedTopGap:null,"px")("bottom",o.fixedInViewport?o.fixedBottomGap:null,"px"),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened)("mat-sidenav-fixed",o.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[ve],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),mR=(()=>{class t extends uR{constructor(){super(...arguments),this._allDrawers=void 0,this._content=void 0}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,qC,5),gt(r,hR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},exportAs:["matSidenavContainer"],features:[Ye([{provide:GC,useExisting:t}]),ve],ngContentSelectors:Nee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Ree),y(0,Aee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Pee,2,0,"mat-sidenav-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,qC],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),pR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt,ms,ms,Mt]})}return t})();const Vee=["panel"];function jee(t,n){if(1&t){const e=_e();d(0,"div",0,1),A("@panelAnimation.done",function(o){return ie(e),ne(C()._animationDone.next(o))}),Ze(2),l()}if(2&t){const e=n.id,i=C();f("id",i.id)("ngClass",i._classList)("@panelAnimation",i.isOpen?"visible":"hidden"),Xe("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(e))}}const zee=["*"],Hee=Lo("panelAnimation",[mn("void, hidden",Zt({opacity:0,transform:"scaleY(0.8)"})),Qi(":enter, hidden => visible",[vy([Yi("0.03s linear",Zt({opacity:1})),Yi("0.12s cubic-bezier(0, 0, 0.2, 1)",Zt({transform:"scaleY(1)"}))])]),Qi(":leave, visible => hidden",[Yi("0.075s linear",Zt({opacity:0}))])]);let Uee=0;class $ee{constructor(n,e){this.source=n,this.option=e}}const Gee=ns(class{}),fR=new se("mat-autocomplete-default-options",{providedIn:"root",factory:function qee(){return{autoActiveFirstOption:!1,autoSelectActiveOption:!1,hideSingleSelectionIndicator:!1,requireSelection:!1}}});let Wee=(()=>{class t extends Gee{get isOpen(){return this._isOpen&&this.showPanel}_setColor(e){this._color=e,this._setThemeClasses(this._classList)}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(e){this._autoActiveFirstOption=$e(e)}get autoSelectActiveOption(){return this._autoSelectActiveOption}set autoSelectActiveOption(e){this._autoSelectActiveOption=$e(e)}get requireSelection(){return this._requireSelection}set requireSelection(e){this._requireSelection=$e(e)}set classList(e){this._classList=e&&e.length?function yG(t,n=/\s+/){const e=[];if(null!=t){const i=Array.isArray(t)?t:`${t}`.split(n);for(const o of i){const r=`${o}`.trim();r&&e.push(r)}}return e}(e).reduce((i,o)=>(i[o]=!0,i),{}):{},this._setVisibilityClasses(this._classList),this._setThemeClasses(this._classList),this._elementRef.nativeElement.className=""}constructor(e,i,o,r){super(),this._changeDetectorRef=e,this._elementRef=i,this._defaults=o,this._activeOptionChanges=de.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new Ne,this.opened=new Ne,this.closed=new Ne,this.optionActivated=new Ne,this._classList={},this.id="mat-autocomplete-"+Uee++,this.inertGroups=r?.SAFARI||!1,this._autoActiveFirstOption=!!o.autoActiveFirstOption,this._autoSelectActiveOption=!!o.autoSelectActiveOption,this._requireSelection=!!o.requireSelection}ngAfterContentInit(){this._keyManager=new hE(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(e=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[e]||null})}),this._setVisibility()}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe()}_setScrollTop(e){this.panel&&(this.panel.nativeElement.scrollTop=e)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(e){const i=new $ee(this,e);this.optionSelected.emit(i)}_getPanelAriaLabelledby(e){return this.ariaLabel?null:this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_setVisibilityClasses(e){e[this._visibleClass]=this.showPanel,e[this._hiddenClass]=!this.showPanel}_setThemeClasses(e){e["mat-primary"]="primary"===this._color,e["mat-warn"]="warn"===this._color,e["mat-accent"]="accent"===this._color}_skipPredicate(e){return e.disabled}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(fR),_(ci))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gi,7),vt(Vee,5)),2&i){let r;Oe(r=Ae())&&(o.template=r.first),Oe(r=Ae())&&(o.panel=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",autoSelectActiveOption:"autoSelectActiveOption",requireSelection:"requireSelection",panelWidth:"panelWidth",classList:[ge.None,"class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[ve]})}return t})(),Kee=(()=>{class t extends Wee{constructor(){super(...arguments),this._visibleClass="mat-mdc-autocomplete-visible",this._hiddenClass="mat-mdc-autocomplete-hidden",this._animationDone=new Ne,this._hideSingleSelectionIndicator=this._defaults.hideSingleSelectionIndicator??!1}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}ngOnDestroy(){super.ngOnDestroy(),this._animationDone.complete()}_skipPredicate(e){return!1}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-autocomplete"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,af,5),gt(r,Tn,5)),2&i){let a;Oe(a=Ae())&&(o.optionGroups=a),Oe(a=Ae())&&(o.options=a)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-autocomplete"],inputs:{disableRipple:"disableRipple",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matAutocomplete"],features:[Ye([{provide:rf,useExisting:t}]),ve],ngContentSelectors:zee,decls:1,vars:0,consts:[["role","listbox",1,"mat-mdc-autocomplete-panel","mdc-menu-surface","mdc-menu-surface--open",3,"id","ngClass"],["panel",""]],template:function(i,o){1&i&&(Ut(),y(0,jee,3,5,"ng-template"))},dependencies:[yr],styles:["div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}"],encapsulation:2,data:{animation:[Hee]},changeDetection:0})}return t})();const Zee={provide:uo,useExisting:Qt(()=>_R),multi:!0},gR=new se("mat-autocomplete-scroll-strategy"),Qee={provide:gR,deps:[Qn],useFactory:function Yee(t){return()=>t.scrollStrategies.reposition()}};let Xee=(()=>{class t{get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(e){this._autocompleteDisabled=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g,b){this._element=e,this._overlay=i,this._viewContainerRef=o,this._zone=r,this._changeDetectorRef=a,this._dir=c,this._formField=u,this._document=p,this._viewportRuler=g,this._defaults=b,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=de.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new qe,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=Vl(()=>{const w=this.autocomplete?this.autocomplete.options:null;return w?w.changes.pipe(an(w),gn(()=>Ri(...w.map(k=>k.onSelectionChange)))):this._zone.onStable.pipe(Pt(1),gn(()=>this.optionSelections))}),this._handlePanelKeydown=w=>{(27===w.keyCode&&!An(w)||38===w.keyCode&&An(w,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),w.stopPropagation(),w.preventDefault())},this._trackedModal=null,this._scrollStrategy=s}ngAfterViewInit(){const e=this._getWindow();typeof e<"u"&&this._zone.runOutsideAngular(()=>e.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const e=this._getWindow();typeof e<"u"&&e.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete(),this._clearFromModal()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel(),this._trackedModal&&Yp(this._trackedModal,"aria-owns",this.autocomplete.id)}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit()}),this.autocomplete._isOpen=this._overlayAttached=!1,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges(),this._trackedModal)&&Tl(this._trackedModal,"aria-owns",this.autocomplete.id)}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return Ri(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(kt(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(kt(()=>this._overlayAttached)):Ke()).pipe(nt(e=>e instanceof IE?e:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return Ri(er(this._document,"click"),er(this._document,"auxclick"),er(this._document,"touchend")).pipe(kt(e=>{const i=pa(e),o=this._formField?this._formField._elementRef.nativeElement:null,r=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&i!==this._element.nativeElement&&this._document.activeElement!==this._element.nativeElement&&(!o||!o.contains(i))&&(!r||!r.contains(i))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(i)}))}writeValue(e){Promise.resolve(null).then(()=>this._assignOptionValue(e))}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this._element.nativeElement.disabled=e}_handleKeydown(e){const i=e.keyCode,o=An(e);if(27===i&&!o&&e.preventDefault(),this.activeOption&&13===i&&this.panelOpen&&!o)this.activeOption._selectViaInteraction(),this._resetActiveItem(),e.preventDefault();else if(this.autocomplete){const r=this.autocomplete._keyManager.activeItem,a=38===i||40===i;9===i||a&&!o&&this.panelOpen?this.autocomplete._keyManager.onKeydown(e):a&&this._canOpen()&&this.openPanel(),(a||this.autocomplete._keyManager.activeItem!==r)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._element.nativeElement.value),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)))}}_handleInput(e){let i=e.target,o=i.value;"number"===i.type&&(o=""==o?null:parseFloat(o)),this._previousValue!==o&&(this._previousValue=o,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(o),o||this._clearPreviousSelectedOption(null,!1),this._canOpen()&&this._document.activeElement===e.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_handleClick(){this._canOpen()&&!this.panelOpen&&this.openPanel()}_floatLabel(e=!1){this._formField&&"auto"===this._formField.floatLabel&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){return Ri(this._zone.onStable.pipe(Pt(1)),this.autocomplete.options.changes.pipe(qt(()=>this._positionStrategy.reapplyLastPosition()),hC(0))).pipe(gn(()=>(this._zone.run(()=>{const o=this.panelOpen;this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),o!==this.panelOpen&&(this.panelOpen?(this._captureValueOnAttach(),this._emitOpened()):this.autocomplete.closed.emit())}),this.panelClosingActions)),Pt(1)).subscribe(o=>this._setValueAndClose(o))}_emitOpened(){this.autocomplete.opened.emit()}_captureValueOnAttach(){this._valueOnAttach=this._element.nativeElement.value}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_assignOptionValue(e){const i=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(e):e;this._updateNativeInputValue(i??"")}_updateNativeInputValue(e){this._formField?this._formField._control.value=e:this._element.nativeElement.value=e,this._previousValue=e}_setValueAndClose(e){const i=this.autocomplete,o=e?e.source:this._pendingAutoselectedOption;o?(this._clearPreviousSelectedOption(o),this._assignOptionValue(o.value),this._onChange(o.value),i._emitSelectEvent(o),this._element.nativeElement.focus()):i.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),i._animationDone?i._animationDone.pipe(Pt(1)).subscribe(()=>this._onChange(null)):this._onChange(null)),this.closePanel()}_clearPreviousSelectedOption(e,i){this.autocomplete?.options?.forEach(o=>{o!==e&&o.selected&&o.deselect(i)})}_attachOverlay(){let e=this._overlayRef;e?(this._positionStrategy.setOrigin(this._getConnectedElement()),e.updateSize({width:this._getPanelWidth()})):(this._portal=new ya(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),e=this._overlay.create(this._getOverlayConfig()),this._overlayRef=e,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&e&&e.updateSize({width:this._getPanelWidth()})})),e&&!e.hasAttached()&&(e.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=!0,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this._applyModalPanelOwnership(),this._captureValueOnAttach(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened()}_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){const e=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=e.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=e.outsidePointerEvents().subscribe())}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=null}_getOverlayConfig(){return new Bl({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,panelClass:this._defaults?.overlayPanelClass})}_getOverlayPosition(){const e=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(e),this._positionStrategy=e,e}_setStrategyPositions(e){const i=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],o=this._aboveClass,r=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:o},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:o}];let a;a="above"===this.position?r:"below"===this.position?i:[...i,...r],e.withPositions(a)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const e=this.autocomplete;if(e.autoActiveFirstOption){let i=-1;for(let o=0;o .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=this.autocomplete.id;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",this.autocomplete.id),this._trackedModal=null)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Qn),_(vi),_(We),_(Lt),_(gR),_(fn,8),_(th,9),_(dt,8),_(va),_(fR,8))};static#t=this.\u0275dir=Q({type:t,inputs:{autocomplete:[ge.None,"matAutocomplete","autocomplete"],position:[ge.None,"matAutocompletePosition","position"],connectedTo:[ge.None,"matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:[ge.None,"autocomplete","autocompleteAttribute"],autocompleteDisabled:[ge.None,"matAutocompleteDisabled","autocompleteDisabled"]},features:[fi]})}return t})(),_R=(()=>{class t extends Xee{constructor(){super(...arguments),this._aboveClass="mat-mdc-autocomplete-panel-above"}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-mdc-autocomplete-trigger"],hostVars:7,hostBindings:function(i,o){1&i&&A("focusin",function(){return o._handleFocus()})("blur",function(){return o._onTouched()})("input",function(a){return o._handleInput(a)})("keydown",function(a){return o._handleKeydown(a)})("click",function(){return o._handleClick()}),2&i&&Xe("autocomplete",o.autocompleteAttribute)("role",o.autocompleteDisabled?null:"combobox")("aria-autocomplete",o.autocompleteDisabled?null:"list")("aria-activedescendant",o.panelOpen&&o.activeOption?o.activeOption.id:null)("aria-expanded",o.autocompleteDisabled?null:o.panelOpen.toString())("aria-controls",o.autocompleteDisabled||!o.panelOpen||null==o.autocomplete?null:o.autocomplete.id)("aria-haspopup",o.autocompleteDisabled?null:"listbox")},exportAs:["matAutocompleteTrigger"],features:[Ye([Zee]),ve]})}return t})(),bR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[Qee],imports:[dc,sf,Mt,Vn,ms,sf,Mt]})}return t})();function Jee(t,n){if(1&t&&(d(0,"mat-option",19),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function ete(t,n){if(1&t){const e=_e();d(0,"mat-form-field",16)(1,"mat-select",17),A("selectionChange",function(o){return ie(e),ne(C(2)._changePageSize(o.value))}),y(2,Jee,2,2,"mat-option",18),l()()}if(2&t){const e=C(2);f("appearance",e._formFieldAppearance)("color",e.color),m(),f("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),m(),f("ngForOf",e._displayedPageSizeOptions)}}function tte(t,n){if(1&t&&(d(0,"div",20),h(1),l()),2&t){const e=C(2);m(),Pe(e.pageSize)}}function ite(t,n){if(1&t&&(d(0,"div",12)(1,"div",13),h(2),l(),y(3,ete,3,8,"mat-form-field",14)(4,tte,2,1,"div",15),l()),2&t){const e=C();m(),vv("id",e._pageSizeLabelId),m(),xe(" ",e._intl.itemsPerPageLabel," "),m(),f("ngIf",e._displayedPageSizeOptions.length>1),m(),f("ngIf",e._displayedPageSizeOptions.length<=1)}}function nte(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().firstPage())}),ei(),d(1,"svg",7),D(2,"path",22),l()()}if(2&t){const e=C();f("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Xe("aria-label",e._intl.firstPageLabel)}}function ote(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"button",23),A("click",function(){return ie(e),ne(C().lastPage())}),ei(),d(1,"svg",7),D(2,"path",24),l()()}if(2&t){const e=C();f("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Xe("aria-label",e._intl.lastPageLabel)}}let sg=(()=>{class t{constructor(){this.changes=new qe,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(e,i,o)=>{if(0==o||0==i)return`0 of ${o}`;const r=e*i;return`${r+1} \u2013 ${r<(o=Math.max(o,0))?Math.min(r+i,o):r+i} of ${o}`}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ate={provide:sg,deps:[[new za,new Vc,sg]],useFactory:function rte(t){return t||new sg}},cte=new se("MAT_PAGINATOR_DEFAULT_OPTIONS"),lte=jr(gq(class{}));let dte=(()=>{class t extends lte{get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(yi(e),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(e){this._length=yi(e),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(yi(e),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>yi(i)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(e){this._hidePageSize=$e(e)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(e){this._showFirstLastButtons=$e(e)}constructor(e,i,o){if(super(),this._intl=e,this._changeDetectorRef=i,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.selectConfig={},this.page=new Ne,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),o){const{pageSize:r,pageSizeOptions:a,hidePageSize:s,showFirstLastButtons:c}=o;null!=r&&(this._pageSize=r),null!=a&&(this._pageSizeOptions=a),null!=s&&(this._hidePageSize=s),null!=c&&(this._showFirstLastButtons=c)}}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",selectConfig:"selectConfig"},outputs:{page:"page"},features:[ve]})}return t})(),ute=0,WC=(()=>{class t extends dte{constructor(e,i,o){super(e,i,o),this._pageSizeLabelId="mat-paginator-page-size-label-"+ute++,this._formFieldAppearance=o?.formFieldAppearance||"outline"}static#e=this.\u0275fac=function(i){return new(i||t)(_(sg),_(Lt),_(cte,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[ve],decls:14,vars:14,consts:[[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],["class","mat-mdc-paginator-page-size",4,"ngIf"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-page-size-label",3,"id"],["class","mat-mdc-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-mdc-paginator-page-size-value",4,"ngIf"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],["hideSingleSelectionIndicator","",3,"value","disabled","aria-labelledby","panelClass","disableOptionCentering","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-mdc-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,ite,5,4,"div",2),d(3,"div",3)(4,"div",4),h(5),l(),y(6,nte,3,5,"button",5),d(7,"button",6),A("click",function(){return o.previousPage()}),ei(),d(8,"svg",7),D(9,"path",8),l()(),pr(),d(10,"button",9),A("click",function(){return o.nextPage()}),ei(),d(11,"svg",7),D(12,"path",10),l()(),y(13,ote,3,5,"button",11),l()()()),2&i&&(m(2),f("ngIf",!o.hidePageSize),m(3),xe(" ",o._intl.getRangeLabel(o.pageIndex,o.pageSize,o.length)," "),m(),f("ngIf",o.showFirstLastButtons),m(),f("matTooltip",o._intl.previousPageLabel)("matTooltipDisabled",o._previousButtonsDisabled())("matTooltipPosition","above")("disabled",o._previousButtonsDisabled()),Xe("aria-label",o._intl.previousPageLabel),m(3),f("matTooltip",o._intl.nextPageLabel)("matTooltipDisabled",o._nextButtonsDisabled())("matTooltipPosition","above")("disabled",o._nextButtonsDisabled()),Xe("aria-label",o._intl.nextPageLabel),m(3),f("ngIf",o.showFirstLastButtons))},dependencies:[rn,It,ba,Di,Xn,Tn,vn],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),vR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({providers:[ate],imports:[Vn,lf,uC,$C]})}return t})();const hte=[FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR];let mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[hte,FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR]})}return t})();const pte=["input"],fte=["*"];let yR=0;class CR{constructor(n,e){this.source=n,this.value=e}}const gte={provide:uo,useExisting:Qt(()=>cg),multi:!0},wR=new se("MatRadioGroup"),_te=new se("mat-radio-default-options",{providedIn:"root",factory:function bte(){return{color:"accent"}}});let vte=(()=>{class t{get name(){return this._name}set name(e){this._name=e,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition="before"===e?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._markRadiosForCheck()}get required(){return this._required}set required(e){this._required=$e(e),this._markRadiosForCheck()}constructor(e){this._changeDetector=e,this._value=null,this._name="mat-radio-group-"+yR++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ne}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(e=>e===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(e=>{e.name=this.name,e._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new CR(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(e=>e._markForCheck())}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}})}return t})();class yte{constructor(n){this._elementRef=n}}const Cte=ns(os(yte));let wte=(()=>{class t extends Cte{get checked(){return this._checked}set checked(e){const i=$e(e);this._checked!==i&&(this._checked=i,i&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!i&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),i&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(e){this._setDisabled($e(e))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=$e(e)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(e){this._color=e}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetector=o,this._focusMonitor=r,this._radioDispatcher=a,this._providerOverride=c,this._uniqueId="mat-radio-"+ ++yR,this.id=this._uniqueId,this.change=new Ne,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=e,this._noopAnimations="NoopAnimations"===s,u&&(this.tabIndex=yi(u,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new CR(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(e){e.stopPropagation()}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_updateTabIndex(){const e=this.radioGroup;let i;if(i=e&&e.selected&&!this.disabled?e.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const o=this._inputElement?.nativeElement;o&&(o.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(pte,5),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first)}},inputs:{id:"id",name:"name",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[ve]})}return t})(),cg=(()=>{class t extends vte{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-radio-group"]],contentQueries:function(i,o,r){if(1&i&>(r,lg,5),2&i){let a;Oe(a=Ae())&&(o._radios=a)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],exportAs:["matRadioGroup"],features:[Ye([gte,{provide:wR,useExisting:t}]),ve]})}return t})(),lg=(()=>{class t extends wte{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u)}static#e=this.\u0275fac=function(i){return new(i||t)(_(wR,8),_(Be),_(Lt),_(zo),_(N0),_(ui,8),_(_te,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,o){1&i&&A("focus",function(){return o._inputElement.nativeElement.focus()}),2&i&&(Xe("id",o.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),et("mat-primary","primary"===o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("mat-mdc-radio-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[ve],ngContentSelectors:fte,decls:13,vars:17,consts:[[1,"mdc-form-field"],["formField",""],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"id","checked","disabled","required","change"],["input",""],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0,1)(2,"div",2)(3,"div",3),A("click",function(a){return o._onTouchTargetClick(a)}),l(),d(4,"input",4,5),A("change",function(a){return o._onInputInteraction(a)}),l(),d(6,"div",6),D(7,"div",7)(8,"div",8),l(),d(9,"div",9),D(10,"div",10),l()(),d(11,"label",11),Ze(12),l()()),2&i){const r=Ft(1);et("mdc-form-field--align-end","before"==o.labelPosition),m(2),et("mdc-radio--disabled",o.disabled),m(2),f("id",o.inputId)("checked",o.checked)("disabled",o.disabled)("required",o.required),Xe("name",o.name)("value",o.value)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby),m(5),f("matRippleTrigger",r)("matRippleDisabled",o._isRippleDisabled())("matRippleCentered",!0),m(2),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),xte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Mt,Vn,as,Mt]})}return t})();class Dte{constructor(n,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),o=i.style;o.position="fixed",o.top=o.opacity="0",o.left="-999em",i.setAttribute("aria-hidden","true"),i.value=n,i.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(i)}copy(){const n=this._textarea;let e=!1;try{if(n){const i=this._document.activeElement;n.select(),n.setSelectionRange(0,n.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const n=this._textarea;n&&(n.remove(),this._textarea=void 0)}}let Ste=(()=>{class t{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),o=i.copy();return i.destroy(),o}beginCopy(e){return new Dte(e,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(dt))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const kte=new se("CDK_COPY_TO_CLIPBOARD_CONFIG");let KC=(()=>{class t{constructor(e,i,o){this._clipboard=e,this._ngZone=i,this.text="",this.attempts=1,this.copied=new Ne,this._pending=new Set,o&&null!=o.attempts&&(this.attempts=o.attempts)}copy(e=this.attempts){if(e>1){let i=e;const o=this._clipboard.beginCopy(this.text);this._pending.add(o);const r=()=>{const a=o.copy();a||! --i||this._destroyed?(this._currentTimeout=null,this._pending.delete(o),o.destroy(),this.copied.emit(a)):this._currentTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(r,1))};r()}else this.copied.emit(this._clipboard.copy(this.text))}ngOnDestroy(){this._currentTimeout&&clearTimeout(this._currentTimeout),this._pending.forEach(e=>e.destroy()),this._pending.clear(),this._destroyed=!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ste),_(We),_(kte,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCopyToClipboard",""]],hostBindings:function(i,o){1&i&&A("click",function(){return o.copy()})},inputs:{text:[ge.None,"cdkCopyToClipboard","text"],attempts:[ge.None,"cdkCopyToClipboardAttempts","attempts"]},outputs:{copied:"cdkCopyToClipboardCopied"}})}return t})(),Mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();const dg=L(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function ug(t){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function xR(t=Tte){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Tte(){return new dg}function hc(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,Pt(1),e?ug(n):xR(()=>new dg))}function ZC(t){return t<=0?()=>jo:$i((n,e)=>{let i=[];n.subscribe(Fi(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}const Bt="primary",uh=Symbol("RouteTitle");class Ate{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function ql(t){return new Ate(t)}function Pte(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function SR(t){return t.length>0?t[t.length-1]:null}function vs(t){return Pl(t)?t:pu(t)?Xi(Promise.resolve(t)):Ke(t)}const Nte={exact:function TR(t,n,e){if(!mc(t.segments,n.segments)||!hg(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!TR(t.children[i],n.children[i],e))return!1;return!0},subset:IR},kR={exact:function Fte(t,n){return Ur(t,n)},subset:function Lte(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>DR(t[e],n[e]))},ignored:()=>!0};function MR(t,n,e){return Nte[e.paths](t.root,n.root,e.matrixParams)&&kR[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function IR(t,n,e){return ER(t,n,n.segments,e)}function ER(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!mc(o,e)||n.hasChildren()||!hg(o,e,i))}if(t.segments.length===e.length){if(!mc(t.segments,e)||!hg(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!IR(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(mc(t.segments,o)&&hg(t.segments,o,i)&&t.children[Bt])&&ER(t.children[Bt],n,r,i)}}function hg(t,n,e){return n.every((i,o)=>kR[e](t[o].parameters,i.parameters))}class Wl{constructor(n=new Si([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return jte.serialize(this)}}class Si{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return mg(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=ql(this.parameters),this._parameterMap}toString(){return PR(this)}}function mc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Kl=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new QC,providedIn:"root"})}return t})();class QC{parse(n){const e=new Qte(n);return new Wl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${mh(n.root,!0)}`,i=function Ute(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${pg(e)}=${pg(o)}`).join("&"):`${pg(e)}=${pg(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function zte(t){return encodeURI(t)}(n.fragment)}`:""}`}}const jte=new QC;function mg(t){return t.segments.map(n=>PR(n)).join("/")}function mh(t,n){if(!t.hasChildren())return mg(t);if(n){const e=t.children[Bt]?mh(t.children[Bt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Bt&&i.push(`${o}:${mh(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function Vte(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Bt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Bt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Bt?[mh(t.children[Bt],!1)]:[`${o}:${mh(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Bt]?`${mg(t)}/${e[0]}`:`${mg(t)}/(${e.join("//")})`}}function OR(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function pg(t){return OR(t).replace(/%3B/gi,";")}function XC(t){return OR(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fg(t){return decodeURIComponent(t)}function AR(t){return fg(t.replace(/\+/g,"%20"))}function PR(t){return`${XC(t.path)}${function Hte(t){return Object.entries(t).map(([n,e])=>`;${XC(n)}=${XC(e)}`).join("")}(t.parameters)}`}const $te=/^[^\/()?;#]+/;function JC(t){const n=t.match($te);return n?n[0]:""}const Gte=/^[^\/()?;=#]+/,Wte=/^[^=?&#]+/,Zte=/^[^&#]+/;class Qte{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Si([],{}):new Si([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Bt]=new Si(n,e)),i}parseSegment(){const n=JC(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new ue(4009,!1);return this.capture(n),new hh(fg(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function qte(t){const n=t.match(Gte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=JC(this.remaining);o&&(i=o,this.capture(i))}n[fg(e)]=fg(i)}parseQueryParam(n){const e=function Kte(t){const n=t.match(Wte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function Yte(t){const n=t.match(Zte);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=AR(e),r=AR(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=JC(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new ue(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Bt);const a=this.parseChildren();e[r]=1===Object.keys(a).length?a[Bt]:new Si([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new ue(4011,!1)}}function RR(t){return t.segments.length>0?new Si([],{[Bt]:t}):t}function NR(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=NR(o);if(i===Bt&&0===r.segments.length&&r.hasChildren())for(const[a,s]of Object.entries(r.children))n[a]=s;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Xte(t){if(1===t.numberOfChildren&&t.children[Bt]){const n=t.children[Bt];return new Si(t.segments.concat(n.segments),n.children)}return t}(new Si(t.segments,n))}function Zl(t){return t instanceof Wl}function FR(t){let n;const o=RR(function e(r){const a={};for(const c of r.children){const u=e(c);a[c.outlet]=u}const s=new Si(r.url,a);return r===t&&(n=s),s}(t.root));return n??o}function LR(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return ew(o,o,o,e,i);const r=function eie(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new VR(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,a)=>{if("object"==typeof r&&null!=r){if(r.outlets){const s={};return Object.entries(r.outlets).forEach(([c,u])=>{s[c]="string"==typeof u?u.split("/"):u}),[...o,{outlets:s}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===a?(r.split("/").forEach((s,c)=>{0==c&&"."===s||(0==c&&""===s?e=!0:".."===s?n++:""!=s&&o.push(s))}),o):[...o,r]},[]);return new VR(e,n,i)}(n);if(r.toRoot())return ew(o,o,new Si([],{}),e,i);const a=function tie(t,n,e){if(t.isAbsolute)return new _g(n,!0,0);if(!e)return new _g(n,!1,NaN);if(null===e.parent)return new _g(e,!0,0);const i=gg(t.commands[0])?0:1;return function iie(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new ue(4005,!1);o=i.segments.length}return new _g(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),s=a.processChildren?fh(a.segmentGroup,a.index,r.commands):jR(a.segmentGroup,a.index,r.commands);return ew(o,a.segmentGroup,s,e,i)}function gg(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function ph(t){return"object"==typeof t&&null!=t&&t.outlets}function ew(t,n,e,i,o){let a,r={};i&&Object.entries(i).forEach(([c,u])=>{r[c]=Array.isArray(u)?u.map(p=>`${p}`):`${u}`}),a=t===n?e:BR(t,n,e);const s=RR(NR(a));return new Wl(s,r,o)}function BR(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:BR(r,n,e)}),new Si(t.segments,i)}class VR{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&gg(i[0]))throw new ue(4003,!1);const o=i.find(ph);if(o&&o!==SR(i))throw new ue(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class _g{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function jR(t,n,e){if(t??=new Si([],{}),0===t.segments.length&&t.hasChildren())return fh(t,n,e);const i=function oie(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const a=t.segments[o],s=e[i];if(ph(s))break;const c=`${s}`,u=i0&&void 0===c)break;if(c&&u&&"object"==typeof u&&void 0===u.outlets){if(!HR(c,u,a))return r;i+=2}else{if(!HR(c,{},a))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Bt)&&t.children[Bt]&&1===t.numberOfChildren&&0===t.children[Bt].segments.length){const r=fh(t.children[Bt],n,e);return new Si(t.segments,r.children)}return Object.entries(i).forEach(([r,a])=>{"string"==typeof a&&(a=[a]),null!==a&&(o[r]=jR(t.children[r],n,a))}),Object.entries(t.children).forEach(([r,a])=>{void 0===i[r]&&(o[r]=a)}),new Si(t.segments,o)}}function tw(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=tw(new Si([],{}),0,i))}),n}function zR(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function HR(t,n,e){return t==e.path&&Ur(n,e.parameters)}const gh="imperative";var Xt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Xt||{});class $r{constructor(n,e){this.id=n,this.url=e}}class bg extends $r{constructor(n,e,i="imperative",o=null){super(n,e),this.type=Xt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Oa extends $r{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=Xt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var tr=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(tr||{}),vg=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(vg||{});class Yl extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ql extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationSkipped}}class yg extends $r{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=Xt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class UR extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class aie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sie extends $r{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=Xt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class cie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class lie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class die{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class uie{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class hie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pie{constructor(n){this.snapshot=n,this.type=Xt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class fie{constructor(n){this.snapshot=n,this.type=Xt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $R{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=Xt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class iw{}class nw{constructor(n){this.url=n}}class gie{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new _h,this.attachRef=null}}let _h=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new gie,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class GR{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=ow(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=ow(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=rw(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return rw(n,this._root).map(e=>e.value)}}function ow(t,n){if(t===n.value)return n;for(const e of n.children){const i=ow(t,e);if(i)return i}return null}function rw(t,n){if(t===n.value)return[n];for(const e of n.children){const i=rw(t,e);if(i.length)return i.unshift(n),i}return[]}class Sr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Xl(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class qR extends GR{constructor(n,e){super(n),this.snapshot=e,cw(this,n)}toString(){return this.snapshot.toString()}}function WR(t){const n=function _ie(t){const r=new sw([],{},{},"",{},Bt,t,null,{});return new KR("",new Sr(r,[]))}(t),e=new mt([new hh("",{})]),i=new mt({}),o=new mt({}),r=new mt({}),a=new mt(""),s=new Jl(e,i,r,a,o,Bt,t,n.root);return s.snapshot=n.root,new qR(new Sr(s,[]),n)}class Jl{constructor(n,e,i,o,r,a,s,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=a,this.component=s,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(nt(u=>u[uh]))??Ke(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(nt(n=>ql(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(nt(n=>ql(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function aw(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&YR(o)&&(i.resolve[uh]=o.title),i}class sw{get title(){return this.data?.[uh]}constructor(n,e,i,o,r,a,s,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=a,this.component=s,this.routeConfig=c,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=ql(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class KR extends GR{constructor(n,e){super(e),this.url=n,cw(this,e)}toString(){return ZR(this._root)}}function cw(t,n){n.value._routerState=t,n.children.forEach(e=>cw(t,e))}function ZR(t){const n=t.children.length>0?` { ${t.children.map(ZR).join(", ")} } `:"";return`${t.value}${n}`}function lw(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Ur(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Ur(n.params,e.params)||t.paramsSubject.next(e.params),function Rte(t,n){if(t.length!==n.length)return!1;for(let e=0;eUr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||dw(t.parent,n.parent))}function YR(t){return"string"==typeof t.title||null===t.title}let Cg=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Bt,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=De(_h),this.location=De(vi),this.changeDetector=De(Lt),this.environmentInjector=De(Ao),this.inputBinder=De(wg,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new ue(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new ue(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new ue(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new ue(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,c=new bie(e,s,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:c,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[fi]})}return t})();class bie{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Jl?this.route:n===_h?this.childContexts:this.parent.get(n,e)}}const wg=new se("");let QR=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Xs([i.queryParams,i.params,i.data]).pipe(gn(([r,a,s],c)=>(s={...r,...a,...s},0===c?Ke(s):Promise.resolve(s)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function i7(t){const n=Ht(t);if(!n)return null;const e=new Yd(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(a)for(const{templateName:s}of a.inputs)e.activatedComponentRef.setInput(s,r[s]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function bh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function yie(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return bh(t,i,o);return bh(t,i)})}(t,n,e);return new Sr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const a=r.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(s=>bh(t,s)),a}}const i=function Cie(t){return new Jl(new mt(t.url),new mt(t.params),new mt(t.queryParams),new mt(t.fragment),new mt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>bh(t,r));return new Sr(i,o)}}const XR="ngNavigationCancelingError";function JR(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Zl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=eN(!1,tr.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function eN(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[XR]=!0,e.cancellationCode=n,e}function tN(t){return!!t&&t[XR]}let iN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],standalone:!0,features:[AM],decls:1,vars:0,template:function(i,o){1&i&&D(0,"router-outlet")},dependencies:[Cg],encapsulation:2})}return t})();function uw(t){const n=t.children&&t.children.map(uw),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Bt&&(e.component=iN),e}function Gr(t){return t.outlet||Bt}function vh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Iie{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),lw(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{const a=r.value.outlet;this.deactivateRoutes(r,o[a],i),delete o[a]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);if(i&&i.outlet){const a=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:s})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new fie(r.value.snapshot))}),n.children.length&&this.forwardEvent(new mie(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(lw(o),o===r)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const s=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(s.contexts),a.attachRef=s.componentRef,a.route=s.route.value,a.outlet&&a.outlet.attach(s.componentRef,s.route.value),lw(s.route.value),this.activateChildRoutes(n,null,a.children)}else{const s=vh(o.snapshot);a.attachRef=null,a.route=o,a.injector=s,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class nN{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class xg{constructor(n,e){this.component=n,this.route=e}}function Eie(t,n,e){const i=t._root;return yh(i,n?n._root:null,e,[i.value])}function ed(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function WF(t){return null!==Vh(t)}(t)?n.get(t):t:i}function yh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Xl(n);return t.children.forEach(a=>{(function Aie(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,a=n?n.value:null,s=e?e.getContext(t.value.outlet):null;if(a&&r.routeConfig===a.routeConfig){const c=function Pie(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!mc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!mc(t.url,n.url)||!Ur(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!dw(t,n)||!Ur(t.queryParams,n.queryParams);default:return!dw(t,n)}}(a,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new nN(i)):(r.data=a.data,r._resolvedData=a._resolvedData),yh(t,n,r.component?s?s.children:null:e,i,o),c&&s&&s.outlet&&s.outlet.isActivated&&o.canDeactivateChecks.push(new xg(s.outlet.component,a))}else a&&Ch(n,s,o),o.canActivateChecks.push(new nN(i)),yh(t,null,r.component?s?s.children:null:e,i,o)})(a,r[a.value.outlet],e,i.concat([a.value]),o),delete r[a.value.outlet]}),Object.entries(r).forEach(([a,s])=>Ch(s,e.getContext(a),o)),o}function Ch(t,n,e){const i=Xl(t),o=t.value;Object.entries(i).forEach(([r,a])=>{Ch(a,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new xg(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function wh(t){return"function"==typeof t}function oN(t){return t instanceof dg||"EmptyError"===t?.name}const Dg=Symbol("INITIAL_VALUE");function td(){return gn(t=>Xs(t.map(n=>n.pipe(Pt(1),an(Dg)))).pipe(nt(n=>{for(const e of n)if(!0!==e){if(e===Dg)return Dg;if(!1===e||e instanceof Wl)return e}return!0}),kt(n=>n!==Dg),Pt(1)))}function rN(t){return function WN(...t){return Tw(t)}(qt(n=>{if(Zl(n))throw JR(0,n)}),nt(n=>!0===n))}class hw{constructor(n){this.segmentGroup=n||null}}class mw extends Error{constructor(n){super(),this.urlTree=n}}function id(t){return ju(new hw(t))}class Xie{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ke(i);if(o.numberOfChildren>1||!o.children[Bt])return ju(new ue(4e3,!1));o=o.children[Bt]}}applyRedirectCommands(n,e,i){const o=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if(e.startsWith("/"))throw new mw(o);return o}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new Wl(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&r.startsWith(":")){const s=r.substring(1);i[o]=e[s]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([s,c])=>{a[s]=this.createSegmentGroup(n,c,i,o)}),new Si(r,a)}createSegments(n,e,i,o){return e.map(r=>r.path.startsWith(":")?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new ue(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const pw={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Jie(t,n,e,i,o){const r=fw(t,n,e);return r.matched?(i=function xie(t,n){return t.providers&&!t._injector&&(t._injector=Qb(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function Zie(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?Ke(o.map(a=>{const s=ed(a,t);return vs(function Vie(t){return t&&wh(t.canMatch)}(s)?s.canMatch(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN()):Ke(!0)}(i,n,e).pipe(nt(a=>!0===a?r:{...pw}))):Ke(r)}function fw(t,n,e){if("**"===n.path)return function ene(t){return{matched:!0,parameters:t.length>0?SR(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...pw}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Pte)(e,t,n);if(!o)return{...pw};const r={};Object.entries(o.posParams??{}).forEach(([s,c])=>{r[s]=c.path});const a=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function aN(t,n,e,i){return e.length>0&&function nne(t,n,e){return e.some(i=>Sg(t,n,i)&&Gr(i)!==Bt)}(t,e,i)?{segmentGroup:new Si(n,ine(i,new Si(e,t.children))),slicedSegments:[]}:0===e.length&&function one(t,n,e){return e.some(i=>Sg(t,n,i))}(t,e,i)?{segmentGroup:new Si(t.segments,tne(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Si(t.segments,t.children),slicedSegments:e}}function tne(t,n,e,i){const o={};for(const r of e)if(Sg(t,n,r)&&!i[Gr(r)]){const a=new Si([],{});o[Gr(r)]=a}return{...i,...o}}function ine(t,n){const e={};e[Bt]=n;for(const i of t)if(""===i.path&&Gr(i)!==Bt){const o=new Si([],{});e[Gr(i)]=o}return e}function Sg(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class sne{}class dne{constructor(n,e,i,o,r,a,s){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=a,this.urlSerializer=s,this.applyRedirects=new Xie(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new ue(4002,`'${n.segmentGroup}'`)}recognize(){const n=aN(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(nt(e=>{const i=new sw([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Bt,this.rootComponentType,null,{}),o=new Sr(i,e),r=new KR("",o),a=function Jte(t,n,e=null,i=null){return LR(FR(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(r._root,null),{state:r,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Bt).pipe(Li(i=>{if(i instanceof mw)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof hw?this.noMatchError(i):i}))}inheritParamsAndData(n,e){const i=n.value,o=aw(i,e,this.paramsInheritanceStrategy);i.params=Object.freeze(o.params),i.data=Object.freeze(o.data),n.children.forEach(r=>this.inheritParamsAndData(r,i))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0).pipe(nt(r=>r instanceof Sr?[r]:[]))}processChildren(n,e,i){const o=[];for(const r of Object.keys(i.children))"primary"===r?o.unshift(r):o.push(r);return Xi(o).pipe(Ol(r=>{const a=i.children[r],s=function Mie(t,n){const e=t.filter(i=>Gr(i)===n);return e.push(...t.filter(i=>Gr(i)!==n)),e}(e,r);return this.processSegmentGroup(n,s,a,r)}),function Ete(t,n){return $i(function Ite(t,n,e,i,o){return(r,a)=>{let s=e,c=n,u=0;r.subscribe(Fi(a,p=>{const g=u++;c=s?t(c,p,g):(s=!0,p),i&&a.next(c)},o&&(()=>{s&&a.next(c),a.complete()})))}}(t,n,arguments.length>=2,!0))}((r,a)=>(r.push(...a),r)),ug(null),function Ote(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,ZC(1),e?ug(n):xR(()=>new dg))}(),Pn(r=>{if(null===r)return id(i);const a=sN(r);return function une(t){t.sort((n,e)=>n.value.outlet===Bt?-1:e.value.outlet===Bt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),Ke(a)}))}processSegment(n,e,i,o,r,a){return Xi(e).pipe(Ol(s=>this.processSegmentAgainstRoute(s._injector??n,e,s,i,o,r,a).pipe(Li(c=>{if(c instanceof hw)return Ke(null);throw c}))),hc(s=>!!s),Li(s=>{if(oN(s))return function ane(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?Ke(new sne):id(i);throw s}))}processSegmentAgainstRoute(n,e,i,o,r,a,s){return function rne(t,n,e,i){return!!(Gr(t)===i||i!==Bt&&Sg(n,e,t))&&fw(n,t,e).matched}(i,o,r,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,a):id(o):id(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,a){const{matched:s,consumedSegments:c,positionalParamSegments:u,remainingSegments:p}=fw(e,o,r);if(!s)return id(e);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const g=this.applyRedirects.applyRedirectCommands(c,o.redirectTo,u);return this.applyRedirects.lineralizeSegments(o,g).pipe(Pn(b=>this.processSegment(n,i,e,b.concat(p),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,r){const a=Jie(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(gn(s=>s.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(gn(({routes:c})=>{const u=i._loadedInjector??n,{consumedSegments:p,remainingSegments:g,parameters:b}=s,w=new sw(p,b,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function mne(t){return t.data||{}}(i),Gr(i),i.component??i._loadedComponent??null,i,function pne(t){return t.resolve||{}}(i)),{segmentGroup:k,slicedSegments:T}=aN(e,p,g,c);if(0===T.length&&k.hasChildren())return this.processChildren(u,c,k).pipe(nt(re=>null===re?null:new Sr(w,re)));if(0===c.length&&0===T.length)return Ke(new Sr(w,[]));const z=Gr(i)===r;return this.processSegment(u,c,k,T,z?Bt:r,!0).pipe(nt(re=>new Sr(w,re instanceof Sr?[re]:[])))})):id(e)))}getChildConfig(n,e,i){return e.children?Ke({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?Ke({routes:e._loadedRoutes,injector:e._loadedInjector}):function Kie(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?Ke(!0):Ke(o.map(a=>{const s=ed(a,t);return vs(function Nie(t){return t&&wh(t.canLoad)}(s)?s.canLoad(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN())}(n,e,i).pipe(Pn(o=>o?this.configLoader.loadChildren(n,e).pipe(qt(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function Qie(t){return ju(eN(!1,tr.GuardRejected))}())):Ke({routes:[],injector:n})}}function hne(t){const n=t.value.routeConfig;return n&&""===n.path}function sN(t){const n=[],e=new Set;for(const i of t){if(!hne(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=sN(i.children);n.push(new Sr(i.value,o))}return n.filter(i=>!e.has(i))}function cN(t){const n=t.children.map(e=>cN(e)).flat();return[t,...n]}function gw(t){return gn(n=>{const e=t(n);return e?Xi(e).pipe(nt(()=>n)):Ke(n)})}let lN=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Bt);return i}getResolvedTitleForRoute(e){return e.data[uh]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(yne),providedIn:"root"})}return t})(),yne=(()=>{class t extends lN{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(yH))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nd=new se("",{providedIn:"root",factory:()=>({})}),od=new se("");let _w=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=De(wT)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ke(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=vs(e.loadComponent()).pipe(nt(dN),qt(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),ec(()=>{this.componentLoaders.delete(e)})),o=new R0(i,()=>new qe).pipe(P0());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ke({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function Cne(t,n,e,i){return vs(t.loadChildren()).pipe(nt(dN),Pn(o=>o instanceof RS||Array.isArray(o)?Ke(o):Xi(n.compileModuleAsync(o))),nt(o=>{i&&i(t);let r,a,s=!1;return Array.isArray(o)?(a=o,!0):(r=o.create(e).injector,a=r.get(od,[],{optional:!0,self:!0}).flat()),{routes:a.map(uw),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(ec(()=>{this.childrenLoaders.delete(i)})),a=new R0(r,()=>new qe).pipe(P0());return this.childrenLoaders.set(i,a),a}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function dN(t){return function wne(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let bw=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(xne),providedIn:"root"})}return t})(),xne=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uN=new se(""),hN=new se("");function Dne(t,n,e){const i=t.get(hN),o=t.get(dt);return t.get(We).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let r;const a=new Promise(u=>{r=u}),s=o.startViewTransition(()=>(r(),function Sne(t){return new Promise(n=>{JD(n,{injector:t})})}(t))),{onViewTransitionCreated:c}=i;return c&&Ha(t,()=>c({transition:s,from:n,to:e})),a})}let kg=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new qe,this.transitionAbortSubject=new qe,this.configLoader=De(_w),this.environmentInjector=De(Ao),this.urlSerializer=De(Kl),this.rootContexts=De(_h),this.location=De(Ws),this.inputBindingEnabled=null!==De(wg,{optional:!0}),this.titleStrategy=De(lN),this.options=De(nd,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=De(bw),this.createViewTransition=De(uN,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>Ke(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new uie(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new die(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new mt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:gh,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(kt(r=>0!==r.id),nt(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),gn(r=>{this.currentTransition=r;let a=!1,s=!1;return Ke(r).pipe(qt(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gn(c=>{const u=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!u&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.rawUrl),g,vg.IgnoredSameUrlNavigation)),c.resolve(null),jo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return Ke(c).pipe(gn(g=>{const b=this.transitions?.getValue();return this.events.next(new bg(g.id,this.urlSerializer.serialize(g.extractedUrl),g.source,g.restoredState)),b!==this.transitions?.getValue()?jo:Promise.resolve(g)}),function fne(t,n,e,i,o,r){return Pn(a=>function cne(t,n,e,i,o,r,a="emptyOnly"){return new dne(t,n,e,i,o,a,r).recognize()}(t,n,e,i,a.extractedUrl,o,r).pipe(nt(({state:s,tree:c})=>({...a,targetSnapshot:s,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),qt(g=>{r.targetSnapshot=g.targetSnapshot,r.urlAfterRedirects=g.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:g.urlAfterRedirects};const b=new UR(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(b)}));if(u&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:g,extractedUrl:b,source:w,restoredState:k,extras:T}=c,z=new bg(g,this.urlSerializer.serialize(b),w,k);this.events.next(z);const re=WR(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:re,urlAfterRedirects:b,extras:{...T,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=b,Ke(r)}{const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.extractedUrl),g,vg.IgnoredByUrlHandlingStrategy)),c.resolve(null),jo}}),qt(c=>{const u=new aie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),nt(c=>(this.currentTransition=r={...c,guards:Eie(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function jie(t,n){return Pn(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:a}}=e;return 0===a.length&&0===r.length?Ke({...e,guardsResult:!0}):function zie(t,n,e,i){return Xi(t).pipe(Pn(o=>function Wie(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?Ke(r.map(s=>{const c=vh(n)??o,u=ed(s,c);return vs(function Bie(t){return t&&wh(t.canDeactivate)}(u)?u.canDeactivate(t,n,e,i):Ha(c,()=>u(t,n,e,i))).pipe(hc())})).pipe(td()):Ke(!0)}(o.component,o.route,e,n,i)),hc(o=>!0!==o,!0))}(a,i,o,t).pipe(Pn(s=>s&&function Rie(t){return"boolean"==typeof t}(s)?function Hie(t,n,e,i){return Xi(n).pipe(Ol(o=>Nu(function $ie(t,n){return null!==t&&n&&n(new hie(t)),Ke(!0)}(o.route.parent,i),function Uie(t,n){return null!==t&&n&&n(new pie(t)),Ke(!0)}(o.route,i),function qie(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(a=>function Oie(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>Vl(()=>Ke(a.guards.map(c=>{const u=vh(a.node)??e,p=ed(c,u);return vs(function Lie(t){return t&&wh(t.canActivateChild)}(p)?p.canActivateChild(i,t):Ha(u,()=>p(i,t))).pipe(hc())})).pipe(td())));return Ke(r).pipe(td())}(t,o.path,e),function Gie(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return Ke(!0);const o=i.map(r=>Vl(()=>{const a=vh(n)??e,s=ed(r,a);return vs(function Fie(t){return t&&wh(t.canActivate)}(s)?s.canActivate(n,t):Ha(a,()=>s(n,t))).pipe(hc())}));return Ke(o).pipe(td())}(t,o.route,e))),hc(o=>!0!==o,!0))}(i,r,t,n):Ke(s)),nt(s=>({...e,guardsResult:s})))})}(this.environmentInjector,c=>this.events.next(c)),qt(c=>{if(r.guardsResult=c.guardsResult,Zl(c.guardsResult))throw JR(0,c.guardsResult);const u=new sie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),kt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",tr.GuardRejected),!1)),gw(c=>{if(c.guards.canActivateChecks.length)return Ke(c).pipe(qt(u=>{const p=new cie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}),gn(u=>{let p=!1;return Ke(u).pipe(function gne(t,n){return Pn(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ke(e);const r=new Set(o.map(c=>c.route)),a=new Set;for(const c of r)if(!a.has(c))for(const u of cN(c))a.add(u);let s=0;return Xi(a).pipe(Ol(c=>r.has(c)?function _ne(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!YR(o)&&(r[uh]=o.title),function bne(t,n,e,i){const o=YC(t);if(0===o.length)return Ke({});const r={};return Xi(o).pipe(Pn(a=>function vne(t,n,e,i){const o=vh(n)??i,r=ed(t,o);return vs(r.resolve?r.resolve(n,e):Ha(o,()=>r(n,e)))}(t[a],n,e,i).pipe(hc(),qt(s=>{r[a]=s}))),ZC(1),Bf(r),Li(a=>oN(a)?jo:ju(a)))}(r,t,n,i).pipe(nt(a=>(t._resolvedData=a,t.data=aw(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=aw(c,c.parent,t).resolve,Ke(void 0))),qt(()=>s++),ZC(1),Pn(c=>s===a.size?Ke(e):jo))})}(this.paramsInheritanceStrategy,this.environmentInjector),qt({next:()=>p=!0,complete:()=>{p||this.cancelNavigationTransition(u,"",tr.NoDataFromResolver)}}))}),qt(u=>{const p=new lie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}))}),gw(c=>{const u=p=>{const g=[];p.routeConfig?.loadComponent&&!p.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(p.routeConfig).pipe(qt(b=>{p.component=b}),nt(()=>{})));for(const b of p.children)g.push(...u(b));return g};return Xs(u(c.targetSnapshot.root)).pipe(ug(null),Pt(1))}),gw(()=>this.afterPreactivation()),gn(()=>{const{currentSnapshot:c,targetSnapshot:u}=r,p=this.createViewTransition?.(this.environmentInjector,c.root,u.root);return p?Xi(p).pipe(nt(()=>r)):Ke(r)}),nt(c=>{const u=function vie(t,n,e){const i=bh(t,n._root,e?e._root:void 0);return new qR(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:u},this.currentNavigation.targetRouterState=u,r}),qt(()=>{this.events.next(new iw)}),((t,n,e,i)=>nt(o=>(new Iie(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),Pt(1),qt({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Oa(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),ot(this.transitionAbortSubject.pipe(qt(c=>{throw c}))),ec(()=>{!a&&!s&&this.cancelNavigationTransition(r,"",tr.SupersededByNewNavigation),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Li(c=>{if(s=!0,tN(c))this.events.next(new Yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function wie(t){return tN(t)&&Zl(t.url)}(c)?this.events.next(new nw(c.url)):r.resolve(!1);else{this.events.next(new yg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0));try{r.resolve(e.errorHandler(c))}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return jo}))}))}cancelNavigationTransition(e,i,o){const r=new Yl(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kne(t){return t!==gh}let Mne=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ine),providedIn:"root"})}return t})();class Tne{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let Ine=(()=>{class t extends Tne{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ene),providedIn:"root"})}return t})(),Ene=(()=>{class t extends mN{constructor(){super(...arguments),this.location=De(Ws),this.urlSerializer=De(Kl),this.options=De(nd,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=De(bw),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new Wl,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=WR(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof bg)this.stateMemento=this.createStateMemento();else if(e instanceof Ql)this.rawUrlTree=i.initialUrl;else if(e instanceof UR){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof iw?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof Yl&&(e.code===tr.GuardRejected||e.code===tr.NoDataFromResolver)?this.restoreHistory(i):e instanceof yg?this.restoreHistory(i,!0):e instanceof Oa&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=lt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var xh=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(xh||{});function pN(t,n){t.events.pipe(kt(e=>e instanceof Oa||e instanceof Yl||e instanceof yg||e instanceof Ql),nt(e=>e instanceof Oa||e instanceof Ql?xh.COMPLETE:e instanceof Yl&&(e.code===tr.Redirect||e.code===tr.SupersededByNewNavigation)?xh.REDIRECTING:xh.FAILED),kt(e=>e!==xh.REDIRECTING),Pt(1)).subscribe(()=>{n()})}function One(t){throw t}const Ane={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Pne={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Rn=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=De(uT),this.stateManager=De(mN),this.options=De(nd,{optional:!0})||{},this.pendingTasks=De(Vs),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=De(kg),this.urlSerializer=De(Kl),this.location=De(Ws),this.urlHandlingStrategy=De(bw),this._events=new qe,this.errorHandler=this.options.errorHandler||One,this.navigated=!1,this.routeReuseStrategy=De(Mne),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=De(od,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!De(wg,{optional:!0}),this.eventsSubscription=new de,this.isNgZoneEnabled=De(We)instanceof We&&We.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof Yl&&i.code!==tr.Redirect&&i.code!==tr.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Oa)this.navigated=!0;else if(i instanceof nw){const a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),s={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||kne(o.source)};this.scheduleNavigation(a,gh,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Nne(t){return!(t instanceof iw||t instanceof nw)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),gh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const s=this.parseUrl(e);this.scheduleNavigation(s,i,a,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(uw),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:a,queryParamsHandling:s,preserveFragment:c}=i,u=c?this.currentUrlTree.fragment:a;let g,p=null;switch(s){case"merge":p={...this.currentUrlTree.queryParams,...r};break;case"preserve":p=this.currentUrlTree.queryParams;break;default:p=r||null}null!==p&&(p=this.removeEmptyProps(p));try{g=FR(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),g=this.currentUrlTree.root}return LR(g,e,p,u??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Zl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,gh,null,i)}navigate(e,i={skipLocationChange:!1}){return function Rne(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,a){if(this.disposed)return Promise.resolve(!1);let s,c,u;a?(s=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,b)=>{s=g,c=b});const p=this.pendingTasks.add();return pN(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(p))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:s,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),qr=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=a,this.locationStrategy=s,this.href=null,this.commands=null,this.onChanges=new qe,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(u=>{u instanceof Oa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,a){const s=this.urlTree;return!!(null===s||this.isAnchorElement&&(0!==e||i||o||r||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(s,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function I1(t,n,e){return function jL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?T1:qo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(Jl),oo("tabindex"),_(ca),_(Be),_(qs))};static#t=this.\u0275dir=Q({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,o){1&i&&A("click",function(a){return o.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),2&i&&Xe("target",o.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[ge.HasDecoratorInputTransform,"preserveFragment","preserveFragment",Cl],skipLocationChange:[ge.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",Cl],replaceUrl:[ge.HasDecoratorInputTransform,"replaceUrl","replaceUrl",Cl],routerLink:"routerLink"},standalone:!0,features:[PS,fi]})}return t})();class fN{}let Bne=(()=>{class t{constructor(e,i,o,r,a){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(kt(e=>e instanceof Oa),Ol(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Qb(r.providers,e,`Route: ${r.path}`));const a=r._injector??e,s=r._loadedInjector??a;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(a,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(s,r.children??r._loadedRoutes))}return Xi(o).pipe(Ml())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ke(null);const r=o.pipe(Pn(a=>null===a?Ke(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?Xi([r,this.loader.loadComponent(i)]).pipe(Ml()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Rn),X(wT),X(Ao),X(fN),X(_w))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const vw=new se("");let gN=(()=>{class t{constructor(e,i,o,r,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof bg?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Oa?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ql&&e.code===vg.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof $R&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new $R(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function Wr(t,n){return{\u0275kind:t,\u0275providers:n}}function bN(){const t=De(ji);return n=>{const e=t.get(Za);if(n!==e.components[0])return;const i=t.get(Rn),o=t.get(vN);1===t.get(yw)&&i.initialNavigation(),t.get(yN,null,$t.Optional)?.setUpPreloading(),t.get(vw,null,$t.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const vN=new se("",{factory:()=>new qe}),yw=new se("",{providedIn:"root",factory:()=>1}),yN=new se("");function Hne(t){return Wr(0,[{provide:yN,useExisting:Bne},{provide:fN,useExisting:t}])}function $ne(t){return Wr(9,[{provide:uN,useValue:Dne},{provide:hN,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const CN=new se("ROUTER_FORROOT_GUARD"),Gne=[Ws,{provide:Kl,useClass:QC},Rn,_h,{provide:Jl,useFactory:function _N(t){return t.routerState.root},deps:[Rn]},_w,[]];let wN=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[Gne,[],{provide:od,multi:!0,useValue:e},{provide:CN,useFactory:Zne,deps:[[Rn,new za,new Vc]]},{provide:nd,useValue:i||{}},i?.useHash?{provide:qs,useClass:s7}:{provide:qs,useClass:r2},{provide:vw,useFactory:()=>{const t=De(C9),n=De(We),e=De(nd),i=De(kg),o=De(Kl);return e.scrollOffset&&t.setOffset(e.scrollOffset),new gN(o,i,t,n,e)}},i?.preloadingStrategy?Hne(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Yne(i):[],i?.bindToComponentInputs?Wr(8,[QR,{provide:wg,useExisting:QR}]).\u0275providers:[],i?.enableViewTransitions?$ne().\u0275providers:[],[{provide:xN,useFactory:bN},{provide:Bv,multi:!0,useExisting:xN}]]}}static forChild(e){return{ngModule:t,providers:[{provide:od,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(CN,8))};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({})}return t})();function Zne(t){return"guarded"}function Yne(t){return["disabled"===t.initialNavigation?Wr(3,[{provide:Fv,multi:!0,useFactory:()=>{const n=De(Rn);return()=>{n.setUpLocationChangeListener()}}},{provide:yw,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Wr(2,[{provide:yw,useValue:0},{provide:Fv,multi:!0,deps:[ji],useFactory:n=>{const e=n.get(r7,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(Rn),r=n.get(vN);pN(o,()=>{i(!0)}),n.get(kg).afterPreactivation=()=>(i(!0),r.closed?Ke(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const xN=new se("");var Jn=function(t){return t.DirectConnect="directConnect",t.DumpFile="dumpFile",t.SessionFile="sessionFile",t.ResumeSession="resumeSession",t}(Jn||{}),Wi=function(t){return t.Type="inputType",t.Config="config",t.SourceDbName="sourceDbName",t}(Wi||{}),ir=function(t){return t.MySQL="MySQL",t.Postgres="Postgres",t.SQLServer="SQL Server",t.Oracle="Oracle",t}(ir||{}),jt=function(t){return t.DbName="databaseName",t.Tables="tables",t.Table="tableName",t.Indexes="indexes",t.Index="indexName",t.Sequences="sequences",t.Sequence="sequenceName",t}(jt||{}),Kr=function(t){return t.schemaOnly="Schema",t.dataOnly="Data",t.schemaAndData="Schema And Data",t}(Kr||{}),ys=function(t){return t.Table="table",t.Index="index",t.Sequence="sequence",t}(ys||{}),Hn=function(t){return t.bulkMigration="bulk",t.lowDowntimeMigration="lowdt",t}(Hn||{}),he=function(t){return t.MigrationMode="migrationMode",t.MigrationType="migrationType",t.IsTargetDetailSet="isTargetDetailSet",t.IsSourceConnectionProfileSet="isSourceConnectionProfileSet",t.IsSourceDetailsSet="isSourceDetailsSet",t.IsTargetConnectionProfileSet="isTargetConnectionProfileSet",t.IsMigrationDetailSet="isMigrationDetailSet",t.IsMigrationInProgress="isMigrationInProgress",t.HasDataMigrationStarted="hasDataMigrationStarted",t.HasSchemaMigrationStarted="hasSchemaMigrationStarted",t.SchemaProgressMessage="schemaProgressMessage",t.DataProgressMessage="dataProgressMessage",t.DataMigrationProgress="dataMigrationProgress",t.SchemaMigrationProgress="schemaMigrationProgress",t.HasForeignKeyUpdateStarted="hasForeignKeyUpdateStarted",t.ForeignKeyProgressMessage="foreignKeyProgressMessage",t.ForeignKeyUpdateProgress="foreignKeyUpdateProgress",t.GeneratingResources="generatingResources",t.NumberOfShards="numberOfShards",t.NumberOfInstances="numberOfInstances",t.isForeignKeySkipped="isForeignKeySkipped",t.IsGcsMetadataPathSet="isGcsMetadataPathSet",t}(he||{}),yt=function(t){return t.TargetDB="targetDb",t.Dialect="dialect",t.SourceConnProfile="sourceConnProfile",t.TargetConnProfile="targetConnProfile",t.ReplicationSlot="replicationSlot",t.Publication="publication",t.GcsMetadataName="gcsName",t.GcsMetadataRootPath="gcsRootPath",t}(yt||{});var rd=function(t){return t[t.SchemaMigrationComplete=1]="SchemaMigrationComplete",t[t.SchemaCreationInProgress=2]="SchemaCreationInProgress",t[t.DataMigrationComplete=3]="DataMigrationComplete",t[t.DataWriteInProgress=4]="DataWriteInProgress",t[t.ForeignKeyUpdateInProgress=5]="ForeignKeyUpdateInProgress",t[t.ForeignKeyUpdateComplete=6]="ForeignKeyUpdateComplete",t}(rd||{});const DN=[{value:"google_standard_sql",displayName:"Google Standard SQL Dialect"},{value:"postgresql",displayName:"PostgreSQL Dialect"}],In={StorageMaxLength:0x8000000000000000,StringMaxLength:2621440,ByteMaxLength:10485760,DataTypes:["STRING","BYTES","VARCHAR"]},SN_GoogleStandardSQL=["BOOL","BYTES","DATE","FLOAT64","INT64","STRING","TIMESTAMP","NUMERIC","JSON"],SN_PostgreSQL=["BOOL","BYTEA","DATE","FLOAT8","INT8","VARCHAR","TIMESTAMPTZ","NUMERIC","JSONB"];var Zr=function(t){return t.DirectConnectForm="directConnectForm",t.IsConnectionSuccessful="isConnectionSuccessful",t}(Zr||{});const kN=["MySQL"],MN={width:"50%",minWidth:"40%",maxWidth:"70%"},Jne={width:"100%",minWidth:"50%",maxWidth:"75%"},eoe={width:"30vw",minWidth:"400px",maxWidth:"500px"};function ad(t){return"mysql"==t||"mysqldump"==t?ir.MySQL:"postgres"===t||"pgdump"===t||"pg_dump"===t?ir.Postgres:"oracle"===t?ir.Oracle:"sqlserver"===t?ir.SQLServer:t}function TN(t){var n=document.createElement("a");let e=JSON.stringify(t).replace(/9223372036854776000/g,"9223372036854775807");n.href="data:text/json;charset=utf-8,"+encodeURIComponent(e),n.download=`${t.SessionName}_${t.DatabaseType}_${t.DatabaseName}.json`,n.click()}function IN(t){const n={};return Object.keys(t).forEach(e=>{n[e]=function toe(t){return t.reduce((n,e)=>{const i=e.GenerationType;return n[i]||(n[i]=[]),n[i].push(e),n},{})}(t[e])}),n}function EN(t,n){return e=>{const i=e,o=i.get(t),r=i.get(n);return o&&r&&(o.value&&!r.value||!o.value&&r.value)?{linkedError:"Both Skip Range Min and Max are required"}:null}}let En=(()=>{class t{constructor(e){this.http=e,this.url=window.location.origin}connectTodb(e,i){const{dbEngine:o,isSharded:r,hostName:a,port:s,dbName:c,userName:u,password:p}=e;return this.http.post(`${this.url}/connect`,{Driver:o,IsSharded:r,Host:a,Port:s,Database:c,User:u,Password:p,Dialect:i},{observe:"response"})}getLastSessionDetails(){return this.http.get(`${this.url}/GetLatestSessionDetails`)}getSchemaConversionFromDirectConnect(){return this.http.get(`${this.url}/convert/infoschema`)}getSchemaConversionFromDump(e){return this.http.post(`${this.url}/convert/dump`,e)}setSourceDBDetailsForDump(e){return this.http.post(`${this.url}/SetSourceDBDetailsForDump`,e)}setSourceDBDetailsForDirectConnect(e){const{dbEngine:i,hostName:o,port:r,dbName:a,userName:s,password:c}=e;return this.http.post(`${this.url}/SetSourceDBDetailsForDirectConnect`,{Driver:i,Host:o,Port:r,Database:a,User:s,Password:c})}setShardsSourceDBDetailsForBulk(e){const{dbConfigs:i,isRestoredSession:o}=e;let r=[];return i.forEach(a=>{r.push({Driver:a.dbEngine,Host:a.hostName,Port:a.port,Database:a.dbName,User:a.userName,Password:a.password,DataShardId:a.shardId})}),this.http.post(`${this.url}/SetShardsSourceDBDetailsForBulk`,{DbConfigs:r,IsRestoredSession:o})}setShardsSourceDBDetailsForDataflow(e){return this.http.post(`${this.url}/SetShardsSourceDBDetailsForDataflow`,{MigrationProfile:e})}setDatastreamDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDatastreamDetailsForShardedMigrations`,e)}setGcsDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetGcsDetailsForShardedMigrations`,e)}setDataflowDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDataflowDetailsForShardedMigrations`,e)}getSourceProfile(){return this.http.get(`${this.url}/GetSourceProfileConfig`)}getSchemaConversionFromSessionFile(e){return this.http.post(`${this.url}/convert/session`,e)}getDStructuredReport(){return this.http.get(`${this.url}/downloadStructuredReport`)}getDTextReport(){return this.http.get(`${this.url}/downloadTextReport`)}getDSpannerDDL(){return this.http.get(`${this.url}/downloadDDL`)}getIssueDescription(){return this.http.get(`${this.url}/issueDescription`)}getConversionRate(){return this.http.get(`${this.url}/conversion`)}getConnectionProfiles(e){return this.http.get(`${this.url}/GetConnectionProfiles?source=${e}`)}getGeneratedResources(){return this.http.get(`${this.url}/GetGeneratedResources`)}getStaticIps(){return this.http.get(`${this.url}/GetStaticIps`)}createConnectionProfile(e){return this.http.post(`${this.url}/CreateConnectionProfile`,e)}verifyJsonConfiguration(e){return this.http.post(`${this.url}/VerifyJsonConfiguration`,{MigrationProfile:e})}getSummary(){return this.http.get(`${this.url}/summary`)}getDdl(){return this.http.get(`${this.url}/ddl`)}getSequenceDdl(){return this.http.get(`${this.url}/seqDdl`)}getTypeMap(){return this.http.get(`${this.url}/typemap`)}getAutoGenMap(){return this.http.get(`${this.url}/autoGenMap`)}getSequenceKind(){return this.http.get(`${this.url}/getSequenceKind`)}getSpannerDefaultTypeMap(){return this.http.get(`${this.url}/spannerDefaultTypeMap`)}reviewTableUpdate(e,i){return this.http.post(`${this.url}/typemap/reviewTableSchema?table=${e}`,i)}updateTable(e,i){return this.http.post(`${this.url}/typemap/table?table=${e}`,i)}removeInterleave(e){return this.http.post(`${this.url}/removeParent?tableId=${e}`,{})}restoreTables(e){return this.http.post(`${this.url}/restore/tables`,e)}restoreTable(e){return this.http.post(`${this.url}/restore/table?table=${e}`,{})}dropTable(e){return this.http.post(`${this.url}/drop/table?table=${e}`,{})}dropTables(e){return this.http.post(`${this.url}/drop/tables`,e)}updatePk(e){return this.http.post(`${this.url}/primaryKey`,e)}updateFk(e,i){return this.http.post(`${this.url}/update/fks?table=${e}`,i)}addColumn(e,i){return this.http.post(`${this.url}/AddColumn?table=${e}`,i)}addSequence(e){return this.http.post(`${this.url}/AddSequence`,e)}removeFk(e,i){return this.http.post(`${this.url}/drop/fk?table=${e}`,{Id:i})}getTableWithErrors(){return this.http.get(`${this.url}/GetTableWithErrors`)}getSessions(){return this.http.get(`${this.url}/GetSessions`)}getConvForSession(e){return this.http.get(`${this.url}/GetSession/${e}`,{responseType:"blob"})}resumeSession(e){return this.http.post(`${this.url}/ResumeSession/${e}`,{})}saveSession(e){return this.http.post(`${this.url}/SaveRemoteSession`,e)}getSpannerConfig(){return this.http.get(`${this.url}/GetConfig`)}setSpannerConfig(e){return this.http.post(`${this.url}/SetSpannerConfig`,e)}getIsOffline(){return this.http.get(`${this.url}/IsOffline`)}updateIndex(e,i){return this.http.post(`${this.url}/update/indexes?table=${e}`,i)}updateSequence(e){return this.http.post(`${this.url}/UpdateSequence`,e)}dropIndex(e,i){return this.http.post(`${this.url}/drop/secondaryindex?table=${e}`,{Id:i})}dropSequence(e){return this.http.post(`${this.url}/drop/sequence?sequence=${e}`,{})}restoreIndex(e,i){return this.http.post(`${this.url}/restore/secondaryIndex?tableId=${e}&indexId=${i}`,{})}getInterleaveStatus(e){return this.http.get(`${this.url}/setparent?table=${e}&update=false`)}setInterleave(e){return this.http.get(`${this.url}/setparent?table=${e}&update=true`)}getSourceDestinationSummary(){return this.http.get(`${this.url}/GetSourceDestinationSummary`)}migrate(e){return this.http.post(`${this.url}/Migrate`,e)}getProgress(){return this.http.get(`${this.url}/GetProgress`)}uploadFile(e){return this.http.post(`${this.url}/uploadFile`,e)}cleanUpStreamingJobs(){return this.http.post(`${this.url}/CleanUpStreamingJobs`,{})}applyRule(e){return this.http.post(`${this.url}/applyrule`,e)}dropRule(e){return this.http.post(`${this.url}/dropRule?id=${e}`,{})}getStandardTypeToPGSQLTypemap(){return this.http.get(`${this.url}/typemap/GetStandardTypeToPGSQLTypemap`)}getPGSQLToStandardTypeTypemap(){return this.http.get(`${this.url}/typemap/GetPGSQLToStandardTypeTypemap`)}checkBackendHealth(){return this.http.get(`${this.url}/ping`)}static#e=this.\u0275fac=function(i){return new(i||t)(X(pf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nr=(()=>{class t{constructor(e){this.snackBar=e}openSnackBar(e,i,o){o||(o=10),this.snackBar.open(e,i,{duration:1e3*o})}openSnackBarWithoutTimeout(e,i){this.snackBar.open(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(FJ))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),or=(()=>{class t{constructor(){this.spannerConfigSub=new mt(!1),this.datebaseLoaderSub=new mt({type:"",databaseName:""}),this.viewAssesmentSub=new mt({srcDbType:"",connectionDetail:"",conversionRates:{good:0,ok:0,bad:0}}),this.tabToSpannerSub=new mt(!1),this.cancelDbLoadSub=new mt(!1),this.spannerConfig=this.spannerConfigSub.asObservable(),this.databaseLoader=this.datebaseLoaderSub.asObservable(),this.viewAssesment=this.viewAssesmentSub.asObservable(),this.tabToSpanner=this.tabToSpannerSub.asObservable(),this.cancelDbLoad=this.cancelDbLoadSub.asObservable()}openSpannerConfig(){this.spannerConfigSub.next(!0)}openDatabaseLoader(e,i){this.datebaseLoaderSub.next({type:e,databaseName:i})}closeDatabaseLoader(){this.datebaseLoaderSub.next({type:"",databaseName:""})}setViewAssesmentData(e){this.viewAssesmentSub.next(e)}setTabToSpanner(){this.tabToSpannerSub.next(!0)}cancelDbLoading(){this.cancelDbLoadSub.next(!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cw=(()=>{class t{constructor(){this.reviewTableChangesSub=new mt({Changes:[],DDL:""}),this.tableUpdateDetailSub=new mt({tableName:"",tableId:"",updateDetail:{UpdateCols:{}}}),this.reviewTableChanges=this.reviewTableChangesSub.asObservable(),this.tableUpdateDetail=this.tableUpdateDetailSub.asObservable()}setTableReviewChanges(e){this.reviewTableChangesSub.next(e)}setTableUpdateDetail(e){this.tableUpdateDetailSub.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pc=(()=>{class t{constructor(e){this.fetch=e,this.standardTypeToPGSQLTypeMapSub=new mt(new Map),this.pgSQLToStandardTypeTypeMapSub=new mt(new Map),this.standardTypeToPGSQLTypeMap=this.standardTypeToPGSQLTypeMapSub.asObservable(),this.pgSQLToStandardTypeTypeMap=this.pgSQLToStandardTypeTypeMapSub.asObservable(),this.srcDbName=localStorage.getItem(Wi.SourceDbName)}getStandardTypeToPGSQLTypemap(){return this.fetch.getStandardTypeToPGSQLTypemap().subscribe({next:e=>{this.standardTypeToPGSQLTypeMapSub.next(new Map(Object.entries(e)))}})}getPGSQLToStandardTypeTypemap(){return this.fetch.getPGSQLToStandardTypeTypemap().subscribe({next:e=>{this.pgSQLToStandardTypeTypeMapSub.next(new Map(Object.entries(e)))}})}createTreeNode(e,i,o="",r=""){e.DatabaseType&&(this.srcDbName=ad(e.DatabaseType));let a=Object.keys(e.SpSchema).filter(w=>e.SpSchema[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s=Object.keys(e.SpSequences).filter(w=>e.SpSequences[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),c=Object.keys(e.SrcSchema).filter(w=>-1==a.indexOf(w)&&e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_").includes(o.toLocaleLowerCase())),u=this.getDeletedIndexes(e),p={name:`Tables (${a.length})`,type:jt.Tables,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:a.map(w=>{let k=e.SpSchema[w];return{name:k.Name,status:i[w],type:jt.Table,parent:""!=k.ParentId?e.SpSchema[k.ParentId]?.Name:"",pos:-1,isSpannerNode:!0,id:w,parentId:k.ParentId,children:[{name:`Indexes (${k.Indexes?k.Indexes.length:0})`,status:"",type:jt.Indexes,parent:e.SpSchema[w].Name,pos:-1,isSpannerNode:!0,id:"",parentId:w,children:k.Indexes?k.Indexes.map((T,z)=>({name:T.Name,type:jt.Index,parent:e.SpSchema[w].Name,pos:z,isSpannerNode:!0,id:T.Id,parentId:w})):[]}]}})};c.forEach(w=>{p.children?.push({name:e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_"),status:"DARK",type:jt.Table,pos:-1,isSpannerNode:!0,children:[],isDeleted:!0,id:w,parent:"",parentId:""})}),p.children?.forEach((w,k)=>{u[w.id]&&u[w.id].forEach(T=>{p.children[k].children[0].children?.push({name:T.Name.replace(/[^A-Za-z0-9_]/g,"_"),type:jt.Index,parent:e.SpSchema[w.name]?.Name,pos:k,isSpannerNode:!0,isDeleted:!0,id:T.Id,parentId:w.id})})});let g={name:`Sequences (${s.length})`,type:jt.Sequences,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:s.map(w=>({name:e.SpSequences[w].Name,status:"",type:jt.Sequence,parent:"",pos:-1,isSpannerNode:!0,id:w,parentId:"",children:[]}))};this.sortNodeChildren(p,r),this.sortNodeChildren(g,r);let b=[p];return kN.includes(this.srcDbName)&&b.push(g),[{name:e.DatabaseName,children:b,type:jt.DbName,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:""}]}sortNodeChildren(e,i){"asc"===i||""===i?e.children?.sort((o,r)=>o.name>r.name?1:r.name>o.name?-1:0):"desc"===i&&e.children?.sort((o,r)=>r.name>o.name?1:o.name>r.name?-1:0)}createTreeNodeForSource(e,i,o="",r=""){let a=Object.keys(e.SrcSchema).filter(c=>e.SrcSchema[c].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s={name:`Tables (${a.length})`,type:jt.Tables,pos:-1,isSpannerNode:!1,id:"",parent:"",parentId:"",children:a.map(c=>{let u=e.SrcSchema[c];return{name:u.Name,status:i[c]?i[c]:"NONE",type:jt.Table,parent:"",pos:-1,isSpannerNode:!1,id:c,parentId:"",children:[{name:`Indexes (${u.Indexes?.length||"0"})`,status:"",type:jt.Indexes,parent:"",pos:-1,isSpannerNode:!1,id:"",parentId:"",children:u.Indexes?u.Indexes.map((p,g)=>({name:p.Name,type:jt.Index,parent:e.SrcSchema[c].Name,isSpannerNode:!1,pos:g,id:p.Id,parentId:c})):[]}]}})};return"asc"===r||""===r?s.children?.sort((c,u)=>c.name>u.name?1:u.name>c.name?-1:0):"desc"===r&&s.children?.sort((c,u)=>u.name>c.name?1:c.name>u.name?-1:0),[{name:e.DatabaseName,children:[s],type:jt.DbName,isSpannerNode:!1,parent:"",pos:-1,id:"",parentId:""}]}getColumnMapping(e,i){let u,o=this.getSpannerTableNameFromId(e,i),r=i.SrcSchema[e].ColIds,a=i.SpSchema[e]?i.SpSchema[e].ColIds:null,s=i.SrcSchema[e].PrimaryKeys,c=a?i.SpSchema[e].PrimaryKeys:null;this.standardTypeToPGSQLTypeMap.subscribe(b=>{u=b});const p=In.StorageMaxLength,g=i.SrcSchema[e].ColIds.map((b,w)=>{let k;o&&i.SpSchema[e].PrimaryKeys.forEach(re=>{re.ColId==b&&(k=re.Order)});let T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";return{spOrder:T?w+1:"",srcOrder:w+1,spColName:T?T.Name:"",spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:i.SrcSchema[e].ColDefs[b].Name,srcDataType:i.SrcSchema[e].ColDefs[b].Type.Name,spIsPk:!(!T||!o)&&-1!==i.SpSchema[e].PrimaryKeys?.map(re=>re.ColId).indexOf(b),srcIsPk:!!s&&-1!==s.map(re=>re.ColId).indexOf(b),spIsNotNull:!(!T||!o)&&T.NotNull,srcIsNotNull:i.SrcSchema[e].ColDefs[b].NotNull,srcId:b,spId:T?b:"",spColMaxLength:0!=T?.T.Len?T?.T.Len!=p?T?.T.Len:"MAX":"",srcColMaxLength:null!=i.SrcSchema[e].ColDefs[b].Type.Mods?i.SrcSchema[e].ColDefs[b].Type.Mods[0]:"",spAutoGen:null!=T?.AutoGen?T?.AutoGen:{Name:"",GenerationType:""},srcAutoGen:i.SrcSchema[e].ColDefs[b].AutoGen?i.SrcSchema[e].ColDefs[b].AutoGen:{Name:"",GenerationType:""}}});return a&&a.forEach((b,w)=>{if(r.indexOf(b)<0){let k=i.SpSchema[e].ColDefs[b],T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";g.push({spOrder:w+1,srcOrder:"",spColName:k.Name,spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:"",srcDataType:"",spIsPk:!!c&&-1!==c.map(re=>re.ColId).indexOf(b),srcIsPk:!1,spIsNotNull:k.NotNull,srcIsNotNull:!1,srcId:"",spId:b,srcColMaxLength:"",spColMaxLength:T?.T.Len,spAutoGen:k.AutoGen,srcAutoGen:{Name:"",GenerationType:""}})}}),g}getPkMapping(e){let i=e.filter(o=>o.spIsPk||o.srcIsPk);return JSON.parse(JSON.stringify(i))}getFkMapping(e,i){let o=i.SrcSchema[e]?.ForeignKeys;return o?o.map(r=>{let a=this.getSpannerFkFromId(i,e,r.Id),s=a?a.ColIds.map(w=>i.SpSchema[e].ColDefs[w].Name):[],c=a?a.ColIds:[],u=r.ColIds.map(w=>i.SrcSchema[e].ColDefs[w].Name),p=a?a.ReferColumnIds.map(w=>i.SpSchema[r.ReferTableId].ColDefs[w].Name):[],g=a?a.ReferColumnIds:[],b=r.ReferColumnIds.map(w=>i.SrcSchema[r.ReferTableId].ColDefs[w].Name);return{srcFkId:r.Id,spFkId:a?.Id,spName:a?a.Name:"",srcName:r.Name,spColumns:s,srcColumns:u,spReferTable:a?i.SpSchema[a.ReferTableId].Name:"",srcReferTable:i.SrcSchema[r.ReferTableId].Name,spReferColumns:p,srcReferColumns:b,spColIds:c,spReferColumnIds:g,spReferTableId:a?a.ReferTableId:"",srcOnDelete:r.OnDelete,spOnDelete:a?a.OnDelete:"",srcOnUpdate:r.OnUpdate,spOnUpdate:a?a.OnUpdate:""}}):[]}getIndexMapping(e,i,o){let r=this.getSourceIndexFromId(i,e,o),a=this.getSpannerIndexFromId(i,e,o),s=r?r.Keys.map(p=>p.ColId):[],c=a?a.Keys.map(p=>p.ColId):[],u=r?r.Keys.map(p=>{let g=this.getSpannerIndexKeyFromColId(i,e,o,p.ColId);return{srcColId:p.ColId,spColId:g?g.ColId:void 0,srcColName:i.SrcSchema[e].ColDefs[p.ColId].Name,srcOrder:p.Order,srcDesc:p.Desc,spColName:g?i.SpSchema[e].ColDefs[g.ColId].Name:"",spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0}}):[];return c.forEach(p=>{if(-1==s.indexOf(p)){let g=this.getSpannerIndexKeyFromColId(i,e,o,p);u.push({srcColName:"",srcOrder:"",srcColId:void 0,srcDesc:void 0,spColName:i.SpSchema[e].ColDefs[p].Name,spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0,spColId:g?g.ColId:void 0})}}),u}getSequenceMapping(e,i){let a={};if(null!=this.getSpannerSequenceNameFromId(e,i)){let s=i.SpSequences[e];a.spSeqName=s.Name,a.spSequenceKind=s.SequenceKind,a.spSkipRangeMax=s.SkipRangeMax,a.spSkipRangeMin=s.SkipRangeMin,a.spStartWithCounter=s.StartWithCounter}return a}getSpannerFkFromId(e,i,o){let r=null;return e.SpSchema[i]?.ForeignKeys?.forEach(a=>{a.Id==o&&(r=a)}),r}getSourceIndexFromId(e,i,o){let r=null;return e.SrcSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerIndexFromId(e,i,o){let r=null;return e.SpSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerSequenceNameFromId(e,i){let o=null;return Object.keys(i.SpSequences).forEach(r=>{i.SpSequences[r].Id===e&&(o=i.SpSequences[r].Name)}),o}getSpannerIndexKeyFromColId(e,i,o,r){let a=null,s=e.SpSchema[i]?.Indexes?e.SpSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSourceIndexKeyFromColId(e,i,o,r){let a=null,s=e.SrcSchema[i]?.Indexes?e.SrcSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSpannerColDefFromId(e,i,o){let r=null;return Object.keys(o.SpSchema[e].ColDefs).forEach(a=>{o.SpSchema[e].ColDefs[a].Id==i&&(r=o.SpSchema[e].ColDefs[a])}),r}getSourceTableNameFromId(e,i){let o="";return Object.keys(i.SrcSchema).forEach(r=>{i.SrcSchema[r].Id===e&&(o=i.SrcSchema[r].Name)}),o}getSpannerTableNameFromId(e,i){let o=null;return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Id===e&&(o=i.SpSchema[r].Name)}),o}getTableIdFromSpName(e,i){let o="";return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Name===e&&(o=i.SpSchema[r].Id)}),o}getColIdFromSpannerColName(e,i,o){let r="";return Object.keys(o.SpSchema[i].ColDefs).forEach(a=>{o.SpSchema[i].ColDefs[a].Name===e&&(r=o.SpSchema[i].ColDefs[a].Id)}),r}getDeletedIndexes(e){let i={};return Object.keys(e.SpSchema).forEach(o=>{let r=e.SpSchema[o],a=e.SrcSchema[o],s=r&&r.Indexes?r.Indexes.map(u=>u.Id):[],c=a&&a.Indexes?a.Indexes?.filter(u=>!s.includes(u.Id)):null;r&&a&&c&&c.length>0&&(i[o]=c)}),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(En))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Hi=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snackbar=i,this.clickEvent=o,this.tableUpdatePubSub=r,this.conversion=a,this.convSubject=new mt({}),this.conversionRateSub=new mt({}),this.typeMapSub=new mt({}),this.defaultTypeMapSub=new mt({}),this.autoGenMapSub=new mt({}),this.summarySub=new mt(new Map),this.ddlSub=new mt({}),this.seqDdlSub=new mt({}),this.tableInterleaveStatusSub=new mt({}),this.sessionsSub=new mt({}),this.configSub=new mt({}),this.currentSessionSub=new mt({}),this.isOfflineSub=new mt(!1),this.ruleMapSub=new mt([]),this.treeUpdatedSub=new qe,this.rule=this.ruleMapSub.asObservable(),this.conv=this.convSubject.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.conversionRate=this.conversionRateSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.typeMap=this.typeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.defaultTypeMap=this.defaultTypeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.autoGenMap=this.autoGenMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.treeUpdate=this.treeUpdatedSub.asObservable(),this.summary=this.summarySub.asObservable(),this.ddl=this.ddlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.seqDdl=this.seqDdlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.tableInterleaveStatus=this.tableInterleaveStatusSub.asObservable(),this.sessions=this.sessionsSub.asObservable(),this.config=this.configSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.isOffline=this.isOfflineSub.asObservable(),this.currentSession=this.currentSessionSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.getLastSessionDetails(),this.getConfig(),this.updateIsOffline()}resetStore(){this.convSubject.next({}),this.conversionRateSub.next({}),this.typeMapSub.next({}),this.defaultTypeMapSub.next({}),this.autoGenMapSub.next({}),this.summarySub.next(new Map),this.ddlSub.next({}),this.tableInterleaveStatusSub.next({})}getDdl(){this.fetch.getDdl().subscribe(e=>{this.ddlSub.next(e)})}getSequenceDdl(){this.fetch.getSequenceDdl().subscribe(e=>{this.seqDdlSub.next(e)})}getAutoGenMap(){this.fetch.getAutoGenMap().subscribe(e=>{this.autoGenMapSub.next(e)})}notifyTreeUpdate(){this.treeUpdatedSub.next()}getSchemaConversionFromDb(){this.fetch.getSchemaConversionFromDirectConnect().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(e.error,"Close")}})}getAllSessions(){this.fetch.getSessions().subscribe({next:e=>{this.sessionsSub.next(e)},error:e=>{this.snackbar.openSnackBar("Unable to fetch sessions.","Close")}})}getLastSessionDetails(){this.fetch.getLastSessionDetails().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.snackbar.openSnackBar(e.error,"Close")}})}getSchemaConversionFromDump(e){return this.fetch.getSchemaConversionFromDump(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(i.error,"Close")}})}getSchemaConversionFromSession(e){return this.fetch.getSchemaConversionFromSessionFile(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}getSchemaConversionFromResumeSession(e){this.fetch.resumeSession(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}getConversionRate(){this.fetch.getConversionRate().subscribe(e=>{this.conversionRateSub.next(e)})}getRateTypemapAndSummary(){return x0({rates:this.fetch.getConversionRate(),typeMap:this.fetch.getTypeMap(),defaultTypeMap:this.fetch.getSpannerDefaultTypeMap(),summary:this.fetch.getSummary(),ddl:this.fetch.getDdl(),seqDdl:this.fetch.getSequenceDdl(),autoGenMap:this.fetch.getAutoGenMap()}).pipe(Li(e=>Ke(e))).subscribe(({rates:e,typeMap:i,defaultTypeMap:o,summary:r,ddl:a,seqDdl:s,autoGenMap:c})=>{this.conversionRateSub.next(e),this.typeMapSub.next(i),this.defaultTypeMapSub.next(o),this.summarySub.next(new Map(Object.entries(r))),this.ddlSub.next(a),this.seqDdlSub.next(s),this.autoGenMapSub.next(c)})}getSummary(){return this.fetch.getSummary().subscribe({next:e=>{this.summarySub.next(new Map(Object.entries(e)))}})}reviewTableUpdate(e,i){return this.fetch.reviewTableUpdate(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>{if(o.error)return o.error;{let r;return this.conversion.standardTypeToPGSQLTypeMap.subscribe(a=>{r=a}),this.conv.subscribe(a=>{o.Changes.forEach(s=>{s.InterleaveColumnChanges.forEach(c=>{if("postgresql"===a.SpDialect){let u=r.get(c.Type),p=r.get(c.UpdateType);c.Type=void 0===u?c.Type:u,c.UpdateType=void 0===p?c.UpdateType:p}In.DataTypes.indexOf(c.Type.toString())>-1&&(c.Type+=this.updateColumnSize(c.Size)),In.DataTypes.indexOf(c.UpdateType.toString())>-1&&(c.UpdateType+=this.updateColumnSize(c.UpdateSize))})})}),this.tableUpdatePubSub.setTableReviewChanges(o),""}}))}updateColumnSize(e){return e===In.StorageMaxLength?"(MAX)":"("+e+")"}updateTable(e,i){return this.fetch.updateTable(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}removeInterleave(e){return this.fetch.removeInterleave(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>(this.getDdl(),i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),""))))}restoreTables(e){return this.fetch.restoreTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables restored successfully","Close",5),"")))}restoreTable(e){return this.fetch.restoreTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table restored successfully","Close",5),"")))}dropTable(e){return this.fetch.dropTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table skipped successfully","Close",5),"")))}dropTables(e){return this.fetch.dropTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables skipped successfully","Close",5),"")))}updatePk(e){return this.fetch.updatePk(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getDdl(),"")))}updateFkNames(e,i){return this.fetch.updateFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}dropFk(e,i){return this.fetch.removeFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}getConfig(){this.fetch.getSpannerConfig().subscribe(e=>{this.configSub.next(e)})}updateConfig(e){this.configSub.next(e)}updateIsOffline(){this.fetch.getIsOffline().subscribe(e=>{this.isOfflineSub.next(e)})}addColumn(e,i){this.fetch.addColumn(e,i).subscribe({next:o=>{this.convSubject.next(o),this.getDdl(),this.snackbar.openSnackBar("Added new column.","Close",5)},error:o=>{this.snackbar.openSnackBar(o.error,"Close")}})}addSequence(e){this.fetch.addSequence(e).subscribe({next:i=>{this.convSubject.next(i),this.getSequenceDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Added new sequence.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}applyRule(e){this.fetch.applyRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Added new rule.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}updateIndex(e,i){return this.fetch.updateIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}updateSequence(e){return this.fetch.updateSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getSequenceDdl(),this.notifyTreeUpdate(),"")))}dropIndex(e,i){return this.fetch.dropIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.getDdl(),this.ruleMapSub.next(o?.Rules),this.snackbar.openSnackBar("Index skipped successfully","Close",5),"")))}dropSequence(e){return this.fetch.dropSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.getDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Sequence Deleted successfully","Close",5),"")))}restoreIndex(e,i){return this.fetch.restoreIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.snackbar.openSnackBar("Index restored successfully","Close",5),"")))}getInterleaveConversionForATable(e){this.fetch.getInterleaveStatus(e).subscribe(i=>{this.tableInterleaveStatusSub.next(i)})}setInterleave(e){this.fetch.setInterleave(e).subscribe(i=>{this.convSubject.next(i.sessionState),this.getDdl(),i.sessionState&&this.convSubject.next(i.sessionState)})}uploadFile(e){return this.fetch.uploadFile(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar("File upload failed","Close"),i.error):(this.snackbar.openSnackBar("File uploaded successfully","Close",5),"")))}dropRule(e){return this.fetch.dropRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Rule deleted successfully","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(nr),X(or),X(Cw),X(pc))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mg=(()=>{class t{constructor(){this.isLoadingSub=new mt(!1),this.isLoading=this.isLoadingSub.asObservable()}startLoader(){this.isLoadingSub.next(!0)}stopLoader(){this.isLoadingSub.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ioe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function noe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function ooe(t,n){1&t&&(d(0,"b"),h(1,"Note: For sharded migrations, please enter below the details of the shard you want Spanner migration tool to read the schema from. The complete connection configuration of all the shards will be taken in later, during data migration."),l())}function roe(t,n){if(1&t&&(d(0,"div",19)(1,"div",20)(2,"mat-form-field",21)(3,"mat-label"),h(4,"Sharded Migration"),l(),d(5,"mat-select",22),y(6,noe,2,2,"mat-option",6),l()(),d(7,"mat-icon",23),h(8,"info"),l(),d(9,"mat-chip",24),h(10," Preview "),l()(),D(11,"br"),y(12,ooe,2,0,"b",25),l()),2&t){const e=C();m(6),f("ngForOf",e.shardedResponseList),m(3),f("removable",!1),m(3),f("ngIf",e.connectForm.value.isSharded)}}function aoe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function soe(t,n){1&t&&(d(0,"mat-icon",26),h(1," check_circle "),l())}let coe=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.fetch=i,this.data=o,this.loader=r,this.snackbarService=a,this.clickEvent=s,this.connectForm=new ti({dbEngine:new U("",[ee.required]),isSharded:new U(!1),hostName:new U("",[ee.required]),port:new U("",[ee.required,ee.pattern("^[0-9]+$")]),userName:new U("",[ee.required]),password:new U(""),dbName:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.isTestConnectionSuccessful=!1,this.connectRequest=null,this.getSchemaRequest=null,this.shardedResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=DN}ngOnInit(){null!=localStorage.getItem(Zr.DirectConnectForm)&&this.connectForm.setValue(JSON.parse(localStorage.getItem(Zr.DirectConnectForm))),null!=localStorage.getItem(Zr.IsConnectionSuccessful)&&(this.isTestConnectionSuccessful="true"===localStorage.getItem(Zr.IsConnectionSuccessful)),this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.connectRequest&&(this.connectRequest.unsubscribe(),this.getSchemaRequest&&this.getSchemaRequest.unsubscribe())}})}testConn(){this.clickEvent.openDatabaseLoader("test-connection",this.connectForm.value.dbName);const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.snackbarService.openSnackBar("SUCCESS! Spanner migration tool was able to successfully ping source database","Close",3),localStorage.setItem(Zr.IsConnectionSuccessful,"true"),this.clickEvent.closeDatabaseLoader()},error:g=>{this.isTestConnectionSuccessful=!1,this.snackbarService.openSnackBar(g.error,"Close"),localStorage.setItem(Zr.IsConnectionSuccessful,"false"),this.clickEvent.closeDatabaseLoader()}})}connectToDb(){this.clickEvent.openDatabaseLoader("direct",this.connectForm.value.dbName),window.scroll(0,0),this.data.resetStore(),localStorage.clear();const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.getSchemaRequest=this.data.getSchemaConversionFromDb(),this.data.conv.subscribe(g=>{localStorage.setItem(Wi.Config,JSON.stringify({dbEngine:e,hostName:o,port:r,userName:a,password:s,dbName:c})),localStorage.setItem(Wi.Type,Jn.DirectConnect),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),localStorage.removeItem(Zr.DirectConnectForm),this.router.navigate(["/workspace"])})},error:g=>{this.snackbarService.openSnackBar(g.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}refreshDbSpecifcConnectionOptions(){this.connectForm.value.isSharded=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(En),_(Hi),_(Mg),_(nr),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-direct-connection"]],decls:54,vars:8,consts:[["id","direct-connection-component",1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup"],[1,"primary-header"],["appearance","outline",1,"full-width"],["formControlName","dbEngine","id","dbengine-input",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["class","shardingConfig",4,"ngIf"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName","id","hostname-input"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port","id","port-input"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName","id","username-input"],["matInput","","name","password","type","password","formControlName","password","id","password-input"],["matInput","","name","dbname","type","text","formControlName","dbName","id","dbname-input"],["matSelect","","name","dialect","formControlName","dialect","appearance","outline","id","spanner-dialect-input"],["class","success","matTooltip","Source Connection Successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","id","test-connect-btn","type","submit","color","accent",3,"disabled","click"],["mat-raised-button","","id","connect-btn","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","",3,"routerLink"],[3,"value"],[1,"shardingConfig"],[1,"flex-container"],["appearance","outline",1,"flex-item"],["formControlName","isSharded"],["matTooltip","Configure multiple source database instances (shards) and consolidate them by migrating to a single Cloud Spanner instance to take advantage of Spanner's horizontal scalability and consistency semantics.",1,"flex-item","configure"],[1,"flex-item","rounded-chip",3,"removable"],[4,"ngIf"],["matTooltip","Source Connection Successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h3",3),h(4,"Connect to Source Database"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),A("selectionChange",function(){return o.refreshDbSpecifcConnectionOptions()}),y(9,ioe,2,2,"mat-option",6),l()(),y(10,roe,13,3,"div",7),D(11,"br"),d(12,"h3",3),h(13,"Connection Detail"),l(),d(14,"mat-form-field",4)(15,"mat-label"),h(16,"Hostname"),l(),D(17,"input",8),l(),d(18,"mat-form-field",4)(19,"mat-label"),h(20,"Port"),l(),D(21,"input",9),d(22,"mat-error"),h(23," Only numbers are allowed. "),l()(),D(24,"br"),d(25,"mat-form-field",4)(26,"mat-label"),h(27,"User name"),l(),D(28,"input",10),l(),d(29,"mat-form-field",4)(30,"mat-label"),h(31,"Password"),l(),D(32,"input",11),l(),D(33,"br"),d(34,"mat-form-field",4)(35,"mat-label"),h(36,"Database Name"),l(),D(37,"input",12),l(),D(38,"br"),d(39,"h3",3),h(40,"Spanner Dialect"),l(),d(41,"mat-form-field",4)(42,"mat-label"),h(43,"Spanner dialect"),l(),d(44,"mat-select",13),y(45,aoe,2,2,"mat-option",6),l()(),D(46,"br"),y(47,soe,2,0,"mat-icon",14),d(48,"button",15),A("click",function(){return o.testConn()}),h(49," Test Connection "),l(),d(50,"button",16),A("click",function(){return o.connectToDb()}),h(51," Connect "),l(),d(52,"button",17),h(53,"Cancel"),l()()()()),2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(),f("ngIf","mysql"===o.connectForm.value.dbEngine),m(35),f("ngForOf",o.dialect),m(2),f("ngIf",o.isTestConnectionSuccessful),m(),f("disabled",!o.connectForm.valid),m(2),f("disabled",!o.connectForm.valid||!o.isTestConnectionSuccessful),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,iC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,uc,vn],styles:[".connect-load-database-container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:0}.configure[_ngcontent-%COMP%]{color:#1967d2}.flex-container[_ngcontent-%COMP%]{display:flex;align-items:center}.flex-item[_ngcontent-%COMP%]{margin-right:8px;align-self:baseline}.rounded-chip[_ngcontent-%COMP%]{background-color:#fff!important;color:#0f33ab!important;border-radius:16px;padding:6px 12px;border:1px solid black;cursor:not-allowed;pointer-events:none}"]})}return t})();function loe(t,n){if(1&t){const e=_e();d(0,"button",7),A("click",function(){return ie(e),ne(C().onConfirm())}),h(1," Continue "),l()}}let Uo=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,void 0===i.title&&(i.title="Update can not be saved")}ngOnInit(){}onConfirm(){this.dialogRef.close(!0)}onDismiss(){this.dialogRef.close(!1)}getIconFromMessageType(){switch(this.data.type){case"warning":return"warning";case"error":return"error";case"success":return"check_circle";default:return"message"}}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-infodialog"]],decls:9,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],["mat-dialog-content",""],[1,"dialog-message",3,"innerHtml"],["mat-dialog-actions","",1,"dialog-action"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","color","primary",3,"click",4,"ngIf"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h1",1),h(2),l(),d(3,"div",2),D(4,"p",3),l(),d(5,"div",4)(6,"button",5),h(7,"CANCEL"),l(),y(8,loe,2,0,"button",6),l()()),2&i&&(m(2),Pe(o.data.title),m(2),f("innerHtml",o.data.message,M1),m(4),f("ngIf","error"!=o.data.type))},dependencies:[It,Yt,zn,tee,So,ko]})}return t})();function ON(t=0,n=Pu){return t<0&&(t=0),Pf(t,t,n)}let doe=(()=>{class t{constructor(e,i){this.fetch=e,this.dialog=i,this.healthCheckSubscription=new de,this.unHealthyCheckCount=0,this.MAX_UNHEALTHY_CHECK_ATTEMPTS=5}startHealthCheck(){this.healthCheckSubscription=ON(5e3).subscribe(()=>{this.checkBackendHealth()})}stopHealthCheck(){this.healthCheckSubscription&&this.healthCheckSubscription.unsubscribe()}checkBackendHealth(){this.checkHealth().subscribe(e=>{e?this.unHealthyCheckCount=0:(this.unHealthyCheckCount==this.MAX_UNHEALTHY_CHECK_ATTEMPTS&&this.openHealthDialog(),this.unHealthyCheckCount++)})}openHealthDialog(){let e=this.dialog.open(Uo,{width:"500px",data:{message:"Please check terminal logs for more details. In case of a crash please file a github issue with all the details.",type:"error",title:"Spanner migration tool unresponsive"}});this.stopHealthCheck(),e.afterClosed().subscribe(()=>{this.startHealthCheck()})}checkHealth(){return Xi(this.fetch.checkBackendHealth()).pipe(nt(()=>!0),Li(()=>Ke(!1)))}ngOnDestroy(){this.stopHealthCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(Hr))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function uoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function hoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function moe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",24)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.sessionName,o)||(r.filterColumnsValue.sessionName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"sessionName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.sessionName)}}function poe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Session Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("sessionName"))}),y(5,uoe,2,0,"mat-icon",22)(6,hoe,2,0,"mat-icon",22),l()(),y(7,moe,4,1,"mat-form-field",23),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.sessionName),m(),f("ngIf",!e.displayFilter.sessionName),m(),f("ngIf",e.displayFilter.sessionName)}}function foe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.SessionName)}}function goe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function _oe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function boe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.editorName,o)||(r.filterColumnsValue.editorName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"editorName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.editorName)}}function voe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Editor"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("editorName"))}),y(5,goe,2,0,"mat-icon",22)(6,_oe,2,0,"mat-icon",22),l()(),y(7,boe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.editorName),m(),f("ngIf",!e.displayFilter.editorName),m(),f("ngIf",e.displayFilter.editorName)}}function yoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.EditorName)}}function Coe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function woe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function xoe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseType,o)||(r.filterColumnsValue.databaseType=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseType"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseType)}}function Doe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Type"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseType"))}),y(5,Coe,2,0,"mat-icon",22)(6,woe,2,0,"mat-icon",22),l()(),y(7,xoe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseType),m(),f("ngIf",!e.displayFilter.databaseType),m(),f("ngIf",e.displayFilter.databaseType)}}function Soe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseType)}}function koe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Moe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Toe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseName,o)||(r.filterColumnsValue.databaseName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseName)}}function Ioe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseName"))}),y(5,koe,2,0,"mat-icon",22)(6,Moe,2,0,"mat-icon",22),l()(),y(7,Toe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseName),m(),f("ngIf",!e.displayFilter.databaseName),m(),f("ngIf",e.displayFilter.databaseName)}}function Eoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseName)}}function Ooe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Aoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Poe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.dialect,o)||(r.filterColumnsValue.dialect=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"dialect"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.dialect)}}function Roe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Spanner Dialect"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("dialect"))}),y(5,Ooe,2,0,"mat-icon",22)(6,Aoe,2,0,"mat-icon",22),l()(),y(7,Poe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.dialect),m(),f("ngIf",!e.displayFilter.dialect),m(),f("ngIf",e.displayFilter.dialect)}}function Noe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Dialect)}}function Foe(t,n){1&t&&(d(0,"th",19),h(1,"Notes"),l())}function Loe(t,n){if(1&t){const e=_e();d(0,"button",34),A("click",function(){ie(e);const o=C(2).index,r=C(2);return ne(r.notesToggle[o]=!r.notesToggle[o])}),h(1," ... "),l()}}function Boe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e)}}function Voe(t,n){if(1&t&&(d(0,"div"),y(1,Boe,2,1,"p",35),l()),2&t){const e=C(2).$implicit;m(),f("ngForOf",e.Notes)}}function joe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),Pe(null==e.Notes||null==e.Notes[0]?null:e.Notes[0].substring(0,20))}}function zoe(t,n){if(1&t&&(d(0,"div",30),y(1,Loe,2,0,"button",31)(2,Voe,2,1,"div",32)(3,joe,2,1,"ng-template",null,33,br),l()),2&t){const e=Ft(4),i=C(),o=i.$implicit,r=i.index,a=C(2);m(),f("ngIf",(null==o.Notes?null:o.Notes.length)>1||(null==o.Notes[0]?null:o.Notes[0].length)>20),m(),f("ngIf",a.notesToggle[r])("ngIfElse",e)}}function Hoe(t,n){if(1&t&&(d(0,"td",26),y(1,zoe,5,3,"div",29),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.Notes)}}function Uoe(t,n){1&t&&(d(0,"th",19),h(1,"Created At"),l())}function $oe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit,i=C(2);m(),Pe(i.convertDateTime(e.CreateTimestamp))}}function Goe(t,n){1&t&&D(0,"th",19)}function qoe(t,n){if(1&t){const e=_e();d(0,"td",26)(1,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).resumeFromSessionFile(r.VersionId))}),h(2," Resume "),l(),d(3,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).downloadSessionFile(r.VersionId,r.SessionName,r.DatabaseType,r.DatabaseName))}),h(4," Download "),l()()}}function Woe(t,n){1&t&&D(0,"tr",37)}function Koe(t,n){1&t&&D(0,"tr",38)}function Zoe(t,n){if(1&t&&(d(0,"div",5)(1,"table",6),me(2,7),y(3,poe,8,3,"th",8)(4,foe,2,1,"td",9),pe(),me(5,10),y(6,voe,8,3,"th",8)(7,yoe,2,1,"td",9),pe(),me(8,11),y(9,Doe,8,3,"th",8)(10,Soe,2,1,"td",9),pe(),me(11,12),y(12,Ioe,8,3,"th",8)(13,Eoe,2,1,"td",9),pe(),me(14,13),y(15,Roe,8,3,"th",8)(16,Noe,2,1,"td",9),pe(),me(17,14),y(18,Foe,2,0,"th",8)(19,Hoe,2,1,"td",9),pe(),me(20,15),y(21,Uoe,2,0,"th",8)(22,$oe,2,1,"td",9),pe(),me(23,16),y(24,Goe,1,0,"th",8)(25,qoe,5,0,"td",9),pe(),y(26,Woe,1,0,"tr",17)(27,Koe,1,0,"tr",18),l()()),2&t){const e=C();m(),f("dataSource",e.filteredDataSource),m(25),f("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",!0),m(),f("matRowDefColumns",e.displayedColumns)}}function Yoe(t,n){if(1&t){const e=_e();d(0,"div",39),ei(),d(1,"svg",40),D(2,"rect",41)(3,"path",42),l(),pr(),d(4,"button",43),A("click",function(){return ie(e),ne(C().openSpannerConfigDialog())}),h(5," Configure Spanner Details "),l(),d(6,"span"),h(7,"Do not have any previous session to display. "),d(8,"u"),h(9," OR "),l(),D(10,"br"),h(11," Invalid Spanner configuration. "),l()()}}let Qoe=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.router=o,this.clickEvent=r,this.displayedColumns=["SessionName","EditorName","DatabaseType","DatabaseName","Dialect","Notes","CreateTimestamp","Action"],this.notesToggle=[],this.dataSource=[],this.filteredDataSource=[],this.filterColumnsValue={sessionName:"",editorName:"",databaseType:"",databaseName:"",dialect:""},this.displayFilter={sessionName:!1,editorName:!1,databaseType:!1,databaseName:!1,dialect:!1}}ngOnInit(){this.data.getAllSessions(),this.data.sessions.subscribe({next:e=>{null!=e?(this.filteredDataSource=e,this.dataSource=e):(this.filteredDataSource=[],this.dataSource=[])}})}toggleFilterDisplay(e){this.displayFilter[e]=!this.displayFilter[e]}updateFilterValue(e,i){e.stopPropagation(),this.filterColumnsValue[i]=e.target.value,this.applyFilter()}applyFilter(){this.filteredDataSource=this.dataSource.filter(e=>!!e.SessionName.toLowerCase().includes(this.filterColumnsValue.sessionName.toLowerCase())).filter(e=>!!e.EditorName.toLowerCase().includes(this.filterColumnsValue.editorName.toLowerCase())).filter(e=>!!e.DatabaseType.toLowerCase().includes(this.filterColumnsValue.databaseType.toLowerCase())).filter(e=>!!e.DatabaseName.toLowerCase().includes(this.filterColumnsValue.databaseName.toLowerCase())).filter(e=>!!e.Dialect.toLowerCase().includes(this.filterColumnsValue.dialect.toLowerCase()))}downloadSessionFile(e,i,o,r){this.fetch.getConvForSession(e).subscribe(a=>{var s=document.createElement("a");s.href=URL.createObjectURL(a),s.download=`${i}_${o}_${r}.json`,s.click()})}resumeFromSessionFile(e){this.data.resetStore(),this.data.getSchemaConversionFromResumeSession(e),this.data.conv.subscribe(i=>{localStorage.setItem(Wi.Config,e),localStorage.setItem(Wi.Type,Jn.ResumeSession),this.router.navigate(["/workspace"])})}openSpannerConfigDialog(){this.clickEvent.openSpannerConfig()}convertDateTime(e){return(e=(e=new Date(e).toString()).substring(e.indexOf(" ")+1)).substring(0,e.indexOf("("))}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-session-listing"]],decls:8,vars:2,consts:[[1,"sessions-wrapper"],[1,"primary-header"],[1,"summary"],["class","session-container mat-elevation-z3",4,"ngIf"],["class","mat-elevation-z3 warning-container",4,"ngIf"],[1,"session-container","mat-elevation-z3"],["mat-table","",3,"dataSource"],["matColumnDef","SessionName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","EditorName"],["matColumnDef","DatabaseType"],["matColumnDef","DatabaseName"],["matColumnDef","Dialect"],["matColumnDef","Notes"],["matColumnDef","CreateTimestamp"],["matColumnDef","Action"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[1,"table-header-container"],["mat-icon-button","",3,"click"],[4,"ngIf"],["appearance","outline","class","full-width",4,"ngIf"],["appearance","outline",1,"full-width"],["matInput","","autocomplete","off",3,"ngModel","ngModelChange","keyup"],["mat-cell",""],["appearance","outline",4,"ngIf"],["appearance","outline"],["class","notes-wrapper",4,"ngIf"],[1,"notes-wrapper"],["class","notes-toggle-button",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["short",""],[1,"notes-toggle-button",3,"click"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],["mat-header-row",""],["mat-row",""],[1,"mat-elevation-z3","warning-container"],["width","49","height","48","viewBox","0 0 49 48","fill","none","xmlns","http://www.w3.org/2000/svg"],["x","0.907227","width","48","height","48","rx","4","fill","#E6ECFA"],["fill-rule","evenodd","clip-rule","evenodd","d","M17.9072 15C16.8027 15 15.9072 15.8954 15.9072 17V31C15.9072 32.1046 16.8027 33 17.9072 33H31.9072C33.0118 33 33.9072 32.1046 33.9072 31V17C33.9072 15.8954 33.0118 15 31.9072 15H17.9072ZM20.9072 18H18.9072V20H20.9072V18ZM21.9072 18H23.9072V20H21.9072V18ZM20.9072 23H18.9072V25H20.9072V23ZM21.9072 23H23.9072V25H21.9072V23ZM20.9072 28H18.9072V30H20.9072V28ZM21.9072 28H23.9072V30H21.9072V28ZM30.9072 18H24.9072V20H30.9072V18ZM24.9072 23H30.9072V25H24.9072V23ZM30.9072 28H24.9072V30H30.9072V28Z","fill","#3367D6"],["mat-button","","color","primary",1,"spanner-config-button",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Session history"),l(),d(3,"div",2),h(4," Choose a session to resume an existing migration session, or download the session file. "),l(),D(5,"br"),y(6,Zoe,28,4,"div",3)(7,Yoe,12,0,"div",4),l()),2&i&&(m(6),f("ngIf",o.dataSource.length>0),m(),f("ngIf",0===o.dataSource.length))},dependencies:[rn,It,Yt,ba,Mi,Di,xi,qi,Ci,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,Nl],styles:[".session-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.session-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .table-header-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.sessions-wrapper[_ngcontent-%COMP%]{margin-top:20px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:57vh;text-align:center}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-bottom:10px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] .spanner-config-button[_ngcontent-%COMP%]{text-decoration:underline}.mat-mdc-column-Notes[_ngcontent-%COMP%]{max-width:200px;padding-right:10px}.notes-toggle-button[_ngcontent-%COMP%]{float:right;margin-right:32px;background-color:#f5f5f5;border:none;border-radius:2px;padding:0 5px 5px}.notes-toggle-button[_ngcontent-%COMP%]:hover{background-color:#ebe7e7;cursor:pointer}.notes-wrapper[_ngcontent-%COMP%]{margin-top:10px}.mat-mdc-column-SessionName[_ngcontent-%COMP%], .mat-mdc-column-EditorName[_ngcontent-%COMP%], .mat-mdc-column-DatabaseType[_ngcontent-%COMP%], .mat-mdc-column-DatabaseName[_ngcontent-%COMP%], .mat-mdc-column-Dialect[_ngcontent-%COMP%]{width:13vw;min-width:150px}.mat-mdc-column-Action[_ngcontent-%COMP%], .mat-mdc-column-Notes[_ngcontent-%COMP%], .mat-mdc-column-CreateTimestamp[_ngcontent-%COMP%]{width:15vw;min-width:150px}.mat-mdc-form-field[_ngcontent-%COMP%]{width:80%}"]})}return t})(),Xoe=(()=>{class t{constructor(e,i,o){this.dialog=e,this.router=i,this.healthCheckService=o}ngOnInit(){this.healthCheckService.startHealthCheck(),null!=localStorage.getItem(he.IsMigrationInProgress)&&"true"===localStorage.getItem(he.IsMigrationInProgress)&&(this.dialog.open(Uo,{data:{title:"Redirecting to prepare migration page",message:"Another migration already in progress",type:"error"},maxWidth:"500px"}),this.router.navigate(["/prepare-migration"]))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(Rn),_(doe))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-home"]],decls:21,vars:4,consts:[[1,"container"],[1,"primary-header"],[1,"summary","global-font-color","body-font-size"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool#readme","target","_blank"],[1,"btn-source-select"],["mat-raised-button","","color","primary","id","connect-to-database-btn",1,"split-button-left",3,"routerLink"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"routerLink"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Get started with Spanner migration tool"),l(),d(3,"div",2),h(4," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation and migration, using data from an existing PostgreSQL, MySQL, SQL Server, Oracle or DynamoDB database. "),d(5,"a",3),h(6,"Learn More"),l(),h(7,". "),l(),d(8,"div",4)(9,"button",5),h(10," Connect to database "),l(),d(11,"button",6)(12,"mat-icon",7),h(13,"expand_more"),l()(),d(14,"mat-menu",8,9)(16,"button",10),h(17,"Load database dump"),l(),d(18,"button",10),h(19,"Load session file"),l()()(),D(20,"app-session-listing"),l()),2&i){const r=Ft(15);m(9),f("routerLink","/source/direct-connection"),m(2),f("matMenuTriggerFor",r),m(5),f("routerLink","/source/load-dump"),m(2),f("routerLink","/source/load-session")}},dependencies:[qr,Yt,Mi,jl,wa,zl,Qoe],styles:[".container[_ngcontent-%COMP%]{padding:7px 27px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{width:500px;font-weight:lighter}.container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 5px}.container[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-color:#fff;margin-bottom:20px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{margin:20px 0;padding-bottom:5px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}"]})}return t})(),eo=(()=>{class t{constructor(){this.sidenavOpenSub=new mt(!1),this.sidenavComponentSub=new mt(""),this.sidenavRuleTypeSub=new mt(""),this.sidenavAddIndexTableSub=new mt(""),this.setSidenavDatabaseNameSub=new mt(""),this.ruleDataSub=new mt({}),this.displayRuleFlagSub=new mt(!1),this.setMiddleColumn=new mt(!1),this.isSidenav=this.sidenavOpenSub.asObservable(),this.sidenavComponent=this.sidenavComponentSub.asObservable(),this.sidenavRuleType=this.sidenavRuleTypeSub.asObservable(),this.sidenavAddIndexTable=this.sidenavAddIndexTableSub.asObservable(),this.sidenavDatabaseName=this.setSidenavDatabaseNameSub.asObservable(),this.ruleData=this.ruleDataSub.asObservable(),this.displayRuleFlag=this.displayRuleFlagSub.asObservable(),this.setMiddleColumnComponent=this.setMiddleColumn.asObservable()}openSidenav(){this.sidenavOpenSub.next(!0)}closeSidenav(){this.sidenavOpenSub.next(!1)}setSidenavComponent(e){this.sidenavComponentSub.next(e)}setSidenavRuleType(e){this.sidenavRuleTypeSub.next(e)}setSidenavAddIndexTable(e){this.sidenavAddIndexTableSub.next(e)}setSidenavDatabaseName(e){this.setSidenavDatabaseNameSub.next(e)}setRuleData(e){this.ruleDataSub.next(e)}setDisplayRuleFlag(e){this.displayRuleFlagSub.next(e)}setMiddleColComponent(e){this.setMiddleColumn.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),AN=(()=>{class t{constructor(e){this.sidenav=e}ngOnInit(){}closeInstructionSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-instruction"]],decls:150,vars:0,consts:[[1,"instructions-div"],[1,"instruction-header-div"],["mat-icon-button","",3,"click"],["src","../../../assets/icons/google-spanner-logo.png",1,"instructions-icon"],[1,"textCenter"],[1,"instructions-main-heading"],[1,"instructions-sub-heading"],[1,"instructions-command"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool",1,"instructionsLink"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"button",2),A("click",function(){return o.closeInstructionSidenav()}),d(3,"mat-icon"),h(4,"close"),l()()(),D(5,"img",3),d(6,"h1",4),h(7,"Spanner migration tool User Manual"),l(),D(8,"br")(9,"br"),d(10,"h3",5),h(11,"1 \xa0 \xa0 \xa0Introduction"),l(),d(12,"p"),h(13," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation, using data from an existing PostgreSQL or MySQL database. The tool ingests schema and data from either a pg_dump/mysqldump file or directly from the source database, automatically builds a Spanner schema, and creates a new Spanner database populated with data from the source database. "),D(14,"br")(15,"br")(16,"br"),h(17," Spanner migration tool is designed to simplify Spanner evaluation, and in particular to bootstrap the process by getting moderate-size PostgreSQL/MySQL datasets into Spanner (up to a few tens of GB). Many features of PostgreSQL/MySQL, especially those that don't map directly to Spanner features, are ignored, e.g. (non-primary) indexes, functions, and sequences. Types such as integers, floats, char/text, bools, timestamps, and (some) array types, map fairly directly to Spanner, but many other types do not and instead are mapped to Spanner's STRING(MAX). "),l(),D(18,"br"),d(19,"h4",6),h(20,"1.1 \xa0 \xa0 \xa0Spanner migration tool UI"),l(),d(21,"p"),h(22," Spanner migration tool UI is designed to focus on generating spanner schema from either a pg_dump/mysqldump file or directly from the source database and providing edit functionality to the spanner schema and thereby creating a new spanner database populated with new data. UI gives the provision to edit column name, edit data type, edit constraints, drop foreign key and drop secondary index of spanner schema. "),l(),D(23,"br"),d(24,"h3",5),h(25,"2 \xa0 \xa0 \xa0Key Features of UI"),l(),d(26,"ul")(27,"li"),h(28,"Connecting to a new database"),l(),d(29,"li"),h(30,"Load dump file"),l(),d(31,"li"),h(32,"Load session file"),l(),d(33,"li"),h(34,"Storing session for each conversion"),l(),d(35,"li"),h(36,"Edit data type globally for each table in schema"),l(),d(37,"li"),h(38,"Edit data type, column name, constraint for a particular table"),l(),d(39,"li"),h(40,"Edit foreign key and secondary index name"),l(),d(41,"li"),h(42,"Drop a column from a table"),l(),d(43,"li"),h(44,"Drop foreign key from a table"),l(),d(45,"li"),h(46,"Drop secondary index from a table"),l(),d(47,"li"),h(48,"Convert foreign key into interleave table"),l(),d(49,"li"),h(50,"Search a table"),l(),d(51,"li"),h(52,"Download schema, report and session files"),l()(),D(53,"br"),d(54,"h3",5),h(55,"3 \xa0 \xa0 \xa0UI Setup"),l(),d(56,"ul")(57,"li"),h(58,"Install go in local"),l(),d(59,"li"),h(60," Clone Spanner migration tool project and run following command in the terminal: "),D(61,"br"),d(62,"span",7),h(63,"go run main.go --web"),l()(),d(64,"li"),h(65,"Open "),d(66,"span",7),h(67,"http://localhost:8080"),l(),h(68,"in browser"),l()(),D(69,"br"),d(70,"h3",5),h(71," 4 \xa0 \xa0 \xa0Different modes to select source database "),l(),d(72,"h4",6),h(73,"4.1 \xa0 \xa0 \xa0Connect to Database"),l(),d(74,"ul")(75,"li"),h(76,"Enter database details in connect to database dialog box"),l(),d(77,"li"),h(78," Input Fields: database type, database host, database port, database user, database name, database password "),l()(),d(79,"h4",6),h(80,"4.2 \xa0 \xa0 \xa0Load Database Dump"),l(),d(81,"ul")(82,"li"),h(83,"Enter dump file path in load database dialog box"),l(),d(84,"li"),h(85,"Input Fields: database type, file path"),l()(),d(86,"h4",6),h(87,"4.3 \xa0 \xa0 \xa0Import Schema File"),l(),d(88,"ul")(89,"li"),h(90,"Enter session file path in load session dialog box"),l(),d(91,"li"),h(92,"Input Fields: database type, session file path"),l()(),d(93,"h3",5),h(94,"5 \xa0 \xa0 \xa0Session Table"),l(),d(95,"ul")(96,"li"),h(97,"Session table is used to store the previous sessions of schema conversion"),l()(),d(98,"h3",5),h(99,"6 \xa0 \xa0 \xa0Edit Global Data Type"),l(),d(100,"ul")(101,"li"),h(102,"Click on edit global data type button on the screen"),l(),d(103,"li"),h(104,"Select required spanner data type from the dropdown available for each source data type"),l(),d(105,"li"),h(106,"Click on next button after making all the changes"),l()(),d(107,"h3",5),h(108," 7 \xa0 \xa0 \xa0Edit Spanner Schema for a particular table "),l(),d(109,"ul")(110,"li"),h(111,"Expand any table"),l(),d(112,"li"),h(113,"Click on edit spanner schema button"),l(),d(114,"li"),h(115,"Edit column name/ data type/ constraint of spanner schema"),l(),d(116,"li"),h(117,"Edit name of secondary index or foreign key"),l(),d(118,"li"),h(119,"Select to convert foreign key to interleave or use as is (if option is available)"),l(),d(120,"li"),h(121,"Drop a column by unselecting any checkbox"),l(),d(122,"li"),h(123," Drop a foreign key or secondary index by expanding foreign keys or secondary indexes tab inside table "),l(),d(124,"li"),h(125,"Click on save changes button to save the changes"),l(),d(126,"li"),h(127," If current table is involved in foreign key/secondary indexes relationship with other table then user will be prompt to delete foreign key or secondary indexes and then proceed with save changes "),l()(),d(128,"p"),h(129,"- Warning before deleting secondary index from a table"),l(),d(130,"p"),h(131,"- Error on saving changes"),l(),d(132,"p"),h(133,"- Changes saved successfully after resolving all errors"),l(),d(134,"h3",5),h(135,"8 \xa0 \xa0 \xa0Download Session File"),l(),d(136,"ul")(137,"li"),h(138,"Save all the changes done in spanner schema table wise or globally"),l(),d(139,"li"),h(140,"Click on download session file button on the top right corner"),l(),d(141,"li"),h(142,"Save the generated session file with all the changes in local machine"),l()(),d(143,"h3",5),h(144,"9 \xa0 \xa0 \xa0How to use Session File"),l(),d(145,"p"),h(146," Please refer below link to get more information on how to use session file with Spanner migration tool "),l(),d(147,"a",8),h(148,"Refer this to use Session File"),l(),D(149,"br"),l())},dependencies:[ba,Mi],styles:[".instructions-div[_ngcontent-%COMP%]{padding:5px 20px 20px}.instructions-div[_ngcontent-%COMP%] .instruction-header-div[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.instructions-icon[_ngcontent-%COMP%]{height:200px;display:block;margin-left:auto;margin-right:auto}.textCenter[_ngcontent-%COMP%]{text-align:center}.instructions-main-heading[_ngcontent-%COMP%]{font-size:1.25rem;color:#4285f4;font-weight:700}.instructions-sub-heading[_ngcontent-%COMP%]{font-size:1rem;color:#4285f4;font-weight:700}.instructions-command[_ngcontent-%COMP%]{background-color:#8080806b;border-radius:5px;padding:0 5px}.instructions-img-width[_ngcontent-%COMP%]{width:800px}.instructionsLink[_ngcontent-%COMP%]{color:#4285f4;text-decoration:underline}"]})}return t})();const Joe=["determinateSpinner"];function ere(t,n){if(1&t&&(ei(),d(0,"svg",11),D(1,"circle",12),l()),2&t){const e=C();Xe("viewBox",e._viewBox()),m(),Sn("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Xe("r",e._circleRadius())}}const tre=is(class{constructor(t){this._elementRef=t}},"primary"),ire=new se("mat-progress-spinner-default-options",{providedIn:"root",factory:function nre(){return{diameter:PN}}}),PN=100;let sd=(()=>{class t extends tre{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=PN,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,yi(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=yi(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=yi(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ui,8),_(ire))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&vt(Joe,5),2&i){let r;Oe(r=Ae())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(i,o){2&i&&(Xe("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Sn("width",o.diameter,"px")("height",o.diameter,"px")("--mdc-circular-progress-size",o.diameter+"px")("--mdc-circular-progress-active-indicator-width",o.diameter+"px"),et("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[ve],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,o){if(1&i&&(y(0,ere,2,8,"ng-template",null,0,br),d(2,"div",1,2),ei(),d(4,"svg",3),D(5,"circle",4),l()(),pr(),d(6,"div",5)(7,"div",6)(8,"div",7),ro(9,8),l(),d(10,"div",9),ro(11,8),l(),d(12,"div",10),ro(13,8),l()()()),2&i){const r=Ft(1);m(4),Xe("viewBox",o._viewBox()),m(),Sn("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Xe("r",o._circleRadius()),m(4),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r)}},dependencies:[kp],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}return t})(),rre=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[Vn,Mt]})}return t})();function are(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function sre(t,n){1&t&&D(0,"mat-spinner",18),2&t&&f("diameter",25)}function cre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"check_circle"),l())}function lre(t,n){1&t&&(d(0,"mat-icon",20),h(1,"cancel"),l())}function dre(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let ure=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysqldump",[ee.required]),filePath:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysqldump",displayName:"MySQL"},{value:"pg_dump",displayName:"PostgreSQL"}],this.dialect=DN,this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromDump(){this.clickEvent.openDatabaseLoader("dump",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i,dialect:o}=this.connectForm.value,s={Config:{Driver:e,Path:i},SpannerDetails:{Dialect:o}};this.getSchemaRequest=this.data.getSchemaConversionFromDump(s),this.data.conv.subscribe(c=>{localStorage.setItem(Wi.Config,JSON.stringify(s)),localStorage.setItem(Wi.Type,Jn.DumpFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-dump"]],decls:36,vars:8,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["matSelect","","name","dialect","formControlName","dialect","appearance","outline"],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromDump()}),d(3,"h3",3),h(4,"Load from database dump"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,are,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Dump File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,sre,1,1,"mat-spinner",8)(17,cre,2,0,"mat-icon",9)(18,lre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"h3",3),h(25,"Spanner Dialect"),l(),d(26,"mat-form-field",4)(27,"mat-label"),h(28,"Select a spanner dialect"),l(),d(29,"mat-select",14),y(30,dre,2,2,"mat-option",6),l()(),D(31,"br"),d(32,"button",15),h(33," Convert "),l(),d(34,"button",16),h(35,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(12),f("ngForOf",o.dialect),m(2),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function hre(t,n){if(1&t&&(d(0,"mat-option",16),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function mre(t,n){1&t&&D(0,"mat-spinner",17),2&t&&f("diameter",25)}function pre(t,n){1&t&&(d(0,"mat-icon",18),h(1,"check_circle"),l())}function fre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"cancel"),l())}let gre=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysql",[ee.required]),filePath:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromSessionFile(){this.clickEvent.openDatabaseLoader("session",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i}=this.connectForm.value,o={driver:e,filePath:i};this.getSchemaRequest=this.data.getSchemaConversionFromSession(o),this.data.conv.subscribe(r=>{localStorage.setItem(Wi.Config,JSON.stringify(o)),localStorage.setItem(Wi.Type,Jn.SessionFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-session"]],decls:28,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromSessionFile()}),d(3,"h3",3),h(4,"Load from session"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,hre,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Session File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,mre,1,1,"mat-spinner",8)(17,pre,2,0,"mat-icon",9)(18,fre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"button",14),h(25," Convert "),l(),d(26,"button",15),h(27,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(6),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function _re(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Reading schema for ",e.databaseName," database. Please wait...")}}function bre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool will read the information schema at source and automatically map it to Cloud Spanner"),l())}function vre(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Testing connection to ",e.databaseName," database...")}}function yre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool is attempting to ping the source database, it will retry a couple of times before timing out."),l())}function Cre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the dump file..."),l())}function wre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the session file..."),l())}let xre=(()=>{class t{constructor(e,i){this.router=e,this.clickEvent=i,this.loaderType="",this.databaseName="",this.timeElapsed=0,this.timeElapsedInterval=setInterval(()=>{this.timeElapsed+=1},1e3)}ngOnInit(){this.timeElapsed=0}ngOnDestroy(){clearInterval(this.timeElapsedInterval)}cancelDbLoad(){this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/"])}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-database-loader"]],inputs:{loaderType:"loaderType",databaseName:"databaseName"},decls:12,vars:7,consts:[[1,"container","content-height"],["src","../../../assets/gifs/database-loader.gif","alt","database-loader-gif",1,"loader-gif"],[4,"ngIf"],["mat-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"img",1),y(2,_re,2,1,"h3",2)(3,bre,2,0,"h4",2)(4,vre,2,1,"h3",2)(5,yre,2,0,"h4",2)(6,Cre,2,0,"h3",2)(7,wre,2,0,"h3",2),d(8,"h5"),h(9),l(),d(10,"button",3),A("click",function(){return o.cancelDbLoad()}),h(11,"Cancel"),l()()),2&i&&(m(2),f("ngIf","direct"===o.loaderType),m(),f("ngIf","direct"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","dump"===o.loaderType),m(),f("ngIf","session"===o.loaderType),m(2),xe("",o.timeElapsed," seconds have elapsed"))},dependencies:[It,Yt],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .loader-gif[_ngcontent-%COMP%]{width:10rem;height:10rem}"]})}return t})();function Dre(t,n){1&t&&(d(0,"div"),D(1,"router-outlet"),l())}function Sre(t,n){if(1&t&&(d(0,"div"),D(1,"app-database-loader",1),l()),2&t){const e=C();m(),f("loaderType",e.loaderType)("databaseName",e.databaseName)}}let kre=(()=>{class t{constructor(e){this.clickevent=e,this.isDatabaseLoading=!1,this.loaderType="",this.databaseName=""}ngOnInit(){this.clickevent.databaseLoader.subscribe(e=>{this.loaderType=e.type,this.databaseName=e.databaseName,this.isDatabaseLoading=""!==this.loaderType})}static#e=this.\u0275fac=function(i){return new(i||t)(_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-selection"]],decls:2,vars:2,consts:[[4,"ngIf"],[3,"loaderType","databaseName"]],template:function(i,o){1&i&&y(0,Dre,2,0,"div",0)(1,Sre,2,2,"div",0),2&i&&(f("ngIf",!o.isDatabaseLoading),m(),f("ngIf",o.isDatabaseLoading))},dependencies:[It,Cg,xre],styles:[".mat-card-class[_ngcontent-%COMP%]{padding:0 20px}"]})}return t})();var RN=Re(304);function Mre(t,n){if(1&t){const e=_e();d(0,"mat-chip-row",16),A("removed",function(){const r=ie(e).$implicit;return ne(C().removeFilter(r))}),h(1),d(2,"button",17)(3,"mat-icon"),h(4,"cancel"),l()()()}if(2&t){const e=n.$implicit;m(),xe(" ",e," ")}}function Tre(t,n){if(1&t){const e=_e();d(0,"mat-option",18),A("click",function(){const r=ie(e).$implicit;return ne(C().addFilter(r))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function Ire(t,n){1&t&&(d(0,"mat-icon",31),h(1," error "),l())}function Ere(t,n){1&t&&(d(0,"mat-icon",32),h(1," warning "),l())}function Ore(t,n){1&t&&(d(0,"mat-icon",33),h(1," wb_incandescent "),l())}function Are(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function Pre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as read"),l()()}}function Rre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as unread"),l()()}}function Nre(t,n){if(1&t&&(d(0,"section",21)(1,"div",2)(2,"div",3),y(3,Ire,2,0,"mat-icon",22)(4,Ere,2,0,"mat-icon",23)(5,Ore,2,0,"mat-icon",24)(6,Are,2,0,"mat-icon",25),l(),d(7,"div",26),h(8),l(),d(9,"div",6)(10,"mat-icon",27),h(11,"more_vert"),l(),d(12,"mat-menu",28,29),y(14,Pre,3,0,"button",30)(15,Rre,3,0,"button",30),l()()()()),2&t){const e=n.$implicit,i=Ft(13);m(3),f("ngIf","error"==e.type),m(),f("ngIf","warning"==e.type),m(),f("ngIf","suggestion"==e.type),m(),f("ngIf","note"==e.type),m(2),Pe(e.content),m(2),f("matMenuTriggerFor",i),m(4),f("ngIf",!e.isRead),m(),f("ngIf",e.isRead)}}function Fre(t,n){if(1&t&&(d(0,"div",19),y(1,Nre,16,8,"section",20),l()),2&t){const e=C();m(),f("ngForOf",e.filteredSummaryRows)}}function Lre(t,n){1&t&&(d(0,"div",36)(1,"div",37),ei(),d(2,"svg",38),D(3,"path",39),l()(),pr(),d(4,"div",40),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l()())}let Bre=(()=>{class t{constructor(e,i){this.data=e,this.clickEvent=i,this.changeIssuesLabel=new Ne,this.summaryRows=[],this.summary=new Map,this.filteredSummaryRows=[],this.separatorKeysCodes=[],this.summaryCount=0,this.totalNoteCount=0,this.totalWarningCount=0,this.totalSuggestionCount=0,this.totalErrorCount=0,this.filterInput=new U,this.options=["read","unread","warning","suggestion","note","error"],this.obsFilteredOptions=new li,this.searchFilters=["unread","warning","note","suggestion","error"],this.currentObject=null}ngOnInit(){this.data.summary.subscribe({next:e=>{if(this.summary=e,this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.initialiseSummaryCollectionForAllTables(this.summary),this.summaryCount=this.totalNoteCount+this.totalErrorCount+this.totalSuggestionCount+this.totalWarningCount,this.changeIssuesLabel.emit(this.summaryCount)}}),this.registerAutoCompleteChange()}initialiseSummaryCollectionForAllTables(e){this.summaryRows=[],this.totalErrorCount=0,this.totalNoteCount=0,this.totalSuggestionCount=0,this.totalWarningCount=0;for(const i of e.values())this.initiateSummaryCollection(i);this.applyFilters()}ngOnChanges(e){if(this.currentObject=e?.currentObject?.currentValue||this.currentObject,this.summaryRows=[],this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.summaryCount=0,this.changeIssuesLabel.emit(0)}initiateSummaryCollection(e){this.totalErrorCount+=e.ErrorsCount,this.totalNoteCount+=e.NotesCount,this.totalWarningCount+=e.WarningsCount,this.totalSuggestionCount+=e.SuggestionsCount,e.Errors.forEach(i=>{this.summaryRows.push({type:"error",content:i.description,isRead:!1})}),e.Warnings.forEach(i=>{this.summaryRows.push({type:"warning",content:i.description,isRead:!1})}),e.Suggestions.forEach(i=>{this.summaryRows.push({type:"suggestion",content:i.description,isRead:!1})}),e.Notes.forEach(i=>{this.summaryRows.push({type:"note",content:i.description,isRead:!1})})}applyFilters(){let e=[],i=[];this.searchFilters.includes("read")&&i.push(o=>o.isRead),this.searchFilters.includes("unread")&&i.push(o=>!o.isRead),this.searchFilters.includes("warning")&&e.push(o=>"warning"==o.type),this.searchFilters.includes("note")&&e.push(o=>"note"==o.type),this.searchFilters.includes("suggestion")&&e.push(o=>"suggestion"==o.type),this.searchFilters.includes("error")&&e.push(o=>"error"==o.type),this.filteredSummaryRows=this.summaryRows.filter(o=>(!i.length||i.some(r=>r(o)))&&(!e.length||e.some(r=>r(o))))}addFilter(e){e&&!this.searchFilters.includes(e)&&this.searchFilters.push(e),this.applyFilters(),this.registerAutoCompleteChange()}removeFilter(e){const i=this.searchFilters.indexOf(e);i>=0&&this.searchFilters.splice(i,1),this.applyFilters()}toggleRead(e){e.isRead=!e.isRead,this.applyFilters()}registerAutoCompleteChange(){this.obsFilteredOptions=this.filterInput.valueChanges.pipe(an(""),nt(e=>this.autoCompleteOnChangeFilter(e)))}autoCompleteOnChangeFilter(e){return this.options.filter(i=>i.toLowerCase().includes(e))}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-summary"]],inputs:{currentObject:"currentObject"},outputs:{changeIssuesLabel:"changeIssuesLabel"},features:[fi],decls:29,vars:11,consts:[[1,"container"],[1,"filter"],[1,"columns"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],[1,"chip-list"],["chipGrid",""],["class","primary",3,"removed",4,"ngFor","ngForOf"],["placeholder","New Filter...",3,"formControl","matChipInputFor","matChipInputSeparatorKeyCodes","matChipInputAddOnBlur","matAutocomplete"],["auto","matAutocomplete"],[3,"value","click",4,"ngFor","ngForOf"],[1,"header"],["class","content",4,"ngIf"],["class","no-issue-container",4,"ngIf"],[1,"primary",3,"removed"],["matChipRemove",""],[3,"value","click"],[1,"content"],["class","summary-row",4,"ngFor","ngForOf"],[1,"summary-row"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above","class","danger",4,"ngIf"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above","class","warning",4,"ngIf"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above","class","suggestion",4,"ngIf"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above","class","success",4,"ngIf"],[1,"middle"],[3,"matMenuTriggerFor"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click",4,"ngIf"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above",1,"success"],["mat-menu-item","",3,"click"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div")(2,"div",1)(3,"div",2)(4,"div",3)(5,"span",4),h(6,"filter_list"),l(),d(7,"span",5),h(8,"Filter"),l()(),d(9,"div",6)(10,"mat-form-field",7)(11,"mat-chip-grid",null,8),y(13,Mre,5,1,"mat-chip-row",9),l(),D(14,"input",10),d(15,"mat-autocomplete",null,11),y(17,Tre,2,2,"mat-option",12),lu(18,"async"),l()()()()(),d(19,"div",13)(20,"div",2)(21,"div",3)(22,"span"),h(23," Status "),l()(),d(24,"div",6)(25,"span"),h(26," Summary "),l()()()(),y(27,Fre,2,1,"div",14)(28,Lre,8,0,"div",15),l()()),2&i){const r=Ft(12),a=Ft(16);m(13),f("ngForOf",o.searchFilters),m(),f("formControl",o.filterInput)("matChipInputFor",r)("matChipInputSeparatorKeyCodes",o.separatorKeysCodes)("matChipInputAddOnBlur",!1)("matAutocomplete",a),m(3),f("ngForOf",du(18,9,o.obsFilteredOptions)),m(10),f("ngIf",0!==o.summaryCount),m(),f("ngIf",0===o.summaryCount)}},dependencies:[rn,It,Mi,Di,Tn,Ci,_i,Fl,jl,wa,zl,MP,TP,DP,IC,vn,Kee,_R,x2],styles:[".container[_ngcontent-%COMP%]{height:calc(100vh - 271px);position:relative;overflow-y:auto;background-color:#fff}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%]{width:100%;position:absolute;top:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}h3[_ngcontent-%COMP%]{margin-bottom:0;padding-left:15px}.filter[_ngcontent-%COMP%]{display:flex;flex:1;min-height:65px;padding:0 15px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{order:1;position:relative;padding-top:20px;width:100px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{position:absolute;font-size:20px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-text[_ngcontent-%COMP%]{position:absolute;margin-left:30px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{order:2;width:100%}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;min-height:22px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-chip-input[_ngcontent-%COMP%]{height:24px;flex:0}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;opacity:.4}.filter[_ngcontent-%COMP%] .mat-mdc-form-field-underline{display:none}.filter[_ngcontent-%COMP%] .mat-mdc-chip[_ngcontent-%COMP%]{min-height:24px;font-weight:lighter}.header[_ngcontent-%COMP%]{display:flex;flex:1;padding:5px 0;background-color:#f5f5f5;text-align:center}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%]{display:flex;flex:1;padding:10px 0;border-bottom:1px solid #ccc}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1;text-align:center;padding-top:5px}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:30px;order:3;cursor:pointer}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:18px}.chip-list[_ngcontent-%COMP%]{width:100%}.mat-mdc-standard-chip[_ngcontent-%COMP%]{--mdc-chip-label-text-color: #fff}"]})}return t})();function Vre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Skip ",e.eligibleTables.length," table(s)?")}}function jre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Restore ",e.eligibleTables.length," table(s) and all associated indexes?")}}function zre(t,n){1&t&&(d(0,"span",9),h(1," Confirm skip by typing the following below: "),d(2,"b"),h(3,"SKIP"),l(),D(4,"br"),l())}function Hre(t,n){1&t&&(d(0,"span",9),h(1," Confirm restoration by typing the following below: "),d(2,"b"),h(3,"RESTORE"),l(),D(4,"br"),l())}function Ure(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already skipped tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be skipped since they are already skipped."),m(4),xe(" ",e.ineligibleTables," ")}}function $re(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already active tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be restored since they are already active."),m(4),xe(" ",e.ineligibleTables," ")}}let NN=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.eligibleTables=[],this.ineligibleTables=[];let o="";"SKIP"==this.data.operation?(o="SKIP",this.data.tables.forEach(r=>{r.isDeleted?this.ineligibleTables.push(r.TableName):this.eligibleTables.push(r.TableName)})):(o="RESTORE",this.data.tables.forEach(r=>{r.isDeleted?this.eligibleTables.push(r.TableName):this.ineligibleTables.push(r.TableName)})),this.confirmationInput=new U("",[ee.required,ee.pattern(o)]),i.disableClose=!0}confirm(){this.dialogRef.close(this.data.operation)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-bulk-drop-restore-table-dialog"]],decls:19,vars:8,consts:[["mat-dialog-content",""],[4,"ngIf"],[1,"form-container"],["class","form-custom-label",4,"ngIf"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"form-custom-label"]],template:function(i,o){1&i&&(d(0,"div",0),y(1,Vre,2,1,"h2",1)(2,jre,2,1,"h2",1),d(3,"mat-dialog-content")(4,"div",2)(5,"form"),y(6,zre,5,0,"span",3)(7,Hre,5,0,"span",3),d(8,"mat-form-field",4)(9,"mat-label"),h(10,"Confirm"),l(),D(11,"input",5),l(),y(12,Ure,8,3,"div",1)(13,$re,8,3,"div",1),l()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.confirm()}),h(18," Confirm "),l()()()),2&i&&(m(),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("formControl",o.confirmationInput),m(),f("ngIf","SKIP"==o.data.operation&&0!=o.ineligibleTables.length),m(),f("ngIf","RESTORE"==o.data.operation&&0!=o.ineligibleTables.length),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Gre(t,n){if(1&t&&(d(0,"mat-option",13),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}let FN=(()=>{class t{constructor(e,i,o,r){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.selectedSequenceKind="",this.sequenceKinds=[],this.addNewSequenceForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],sequenceKind:["",ee.required],skipRangeMin:["",ee.pattern("^[0-9]+$")],skipRangeMax:["",ee.pattern("^[0-9]+$")],startWithCounter:["",ee.pattern("^[0-9]+$")]},{validator:EN("skipRangeMin","skipRangeMax")}),this.fetchSerice.getSequenceKind().subscribe(a=>{this.sequenceKinds=a})}ngOnInit(){}addNewSequence(){let e=this.addNewSequenceForm.value;this.dataService.addSequence({Name:e.name,SequenceKind:this.selectedSequenceKind,SkipRangeMin:e.skipRangeMin,SkipRangeMax:e.skipRangeMax,StartWithCounter:e.startWithCounter}),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-sequence"]],decls:35,vars:4,consts:[["mat-dialog-content",""],[1,"add-new-sequence-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Sequence Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","sequenceKind","required","true",1,"input-field",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","Skip Range Min","type","text","formControlName","skipRangeMin"],["matInput","","placeholder","Skip Range Max","type","text","formControlName","skipRangeMax"],["matInput","","placeholder","Start With Counter","type","text","formControlName","startWithCounter"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Sequence Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Sequence Type"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedSequenceKind,a)||(o.selectedSequenceKind=a),a}),y(13,Gre,2,2,"mat-option",6),l()(),D(14,"br"),d(15,"mat-form-field",2)(16,"mat-label"),h(17,"Skip Range Minimum"),l(),D(18,"input",7),l(),D(19,"br"),d(20,"mat-form-field",2)(21,"mat-label"),h(22,"Skip Range Maximum"),l(),D(23,"input",8),l(),D(24,"br"),d(25,"mat-form-field",2)(26,"mat-label"),h(27,"Start With Counter"),l(),D(28,"input",9),l(),D(29,"br"),l(),d(30,"div",10)(31,"button",11),h(32,"CANCEL"),l(),d(33,"button",12),A("click",function(){return o.addNewSequence()}),h(34," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewSequenceForm),m(11),dn("ngModel",o.selectedSequenceKind),m(),f("ngForOf",o.sequenceKinds),m(20),f("disabled",!o.addNewSequenceForm.valid))},dependencies:[rn,Yt,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko]})}return t})();const LN=t=>({"blue-font-color":t});function qre(t,n){if(1&t&&(d(0,"span",25),h(1),l()),2&t){const e=C();f("ngClass",hi(2,LN,"source"===e.selectedTab)),m(),xe(" ",e.srcDbName.toUpperCase()," ")}}function Wre(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function Kre(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function Zre(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function Yre(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function Qre(t,n){if(1&t&&(d(0,"td",27),y(1,Kre,2,0,"svg",28)(2,Zre,2,0,"mat-icon",29)(3,Yre,2,0,"mat-icon",30),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status)}}function Xre(t,n){1&t&&(d(0,"mat-icon",38),h(1,"arrow_upward"),l())}function Jre(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function eae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function tae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().srcTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,Xre,2,0,"mat-icon",36)(5,Jre,2,0,"mat-icon",37)(6,eae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.srcSortOrder),m(),f("ngIf","asc"===e.srcSortOrder),m(),f("ngIf","desc"===e.srcSortOrder)}}function iae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function nae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function oae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function rae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function aae(t,n){if(1&t&&(d(0,"span",56)(1,"mat-icon",57),h(2,"more_vert"),l(),d(3,"mat-menu",null,58)(5,"button",59)(6,"span"),h(7,"Add Index"),l()()()()),2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function sae(t,n){if(1&t){const e=_e();d(0,"td",40)(1,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().srcTreeControl.toggle(r))}),y(2,iae,2,0,"svg",42)(3,nae,2,0,"ng-template",null,43,br),l(),d(5,"span",44),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(6,"span"),y(7,oae,2,0,"svg",45)(8,rae,2,0,"svg",46),d(9,"span"),h(10),l()(),y(11,aae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(4),o=C();m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.srcTreeControl.isExpanded(e))("ngIfElse",i),m(5),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)&&e.isSpannerNode)}}function cae(t,n){1&t&&D(0,"tr",60)}const BN=t=>({"selected-row":t});function lae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}function dae(t,n){if(1&t&&(d(0,"span",25),h(1," SPANNER DRAFT "),l()),2&t){const e=C();f("ngClass",hi(1,LN,"spanner"===e.selectedTab))}}function uae(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function hae(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function mae(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function pae(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function fae(t,n){1&t&&(d(0,"mat-icon",63),h(1," delete "),l())}function gae(t,n){if(1&t&&(d(0,"td",27),y(1,hae,2,0,"svg",28)(2,mae,2,0,"mat-icon",29)(3,pae,2,0,"mat-icon",30)(4,fae,2,0,"mat-icon",62),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status),m(),f("ngIf","DARK"===e.status||1==e.isDeleted)}}function _ae(t,n){1&t&&(d(0,"mat-icon",65),h(1,"arrow_upward"),l())}function bae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function vae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function yae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().spannerTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,_ae,2,0,"mat-icon",64)(5,bae,2,0,"mat-icon",37)(6,vae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.spannerSortOrder),m(),f("ngIf","asc"===e.spannerSortOrder),m(),f("ngIf","desc"===e.spannerSortOrder)}}function Cae(t,n){if(1&t){const e=_e();d(0,"mat-checkbox",70),A("change",function(){ie(e);const o=C().$implicit;return ne(C().selectionToggle(o))}),l()}if(2&t){const e=C().$implicit;f("checked",C().checklistSelection.isSelected(e))}}function wae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function xae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function Dae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function Sae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function kae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",71),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){ie(e);const o=C().$implicit;return ne(C().openAddIndexForm(o.parent))}),d(6,"span"),h(7,"Add Index"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Mae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",74),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){return ie(e),ne(C(2).openAddSequenceForm())}),d(6,"span"),h(7,"Add Sequence"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Tae=()=>({sidebar_link:!0}),Iae=t=>({"gray-out":t});function Eae(t,n){if(1&t){const e=_e();d(0,"td",66),y(1,Cae,1,1,"mat-checkbox",67),d(2,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().treeControl.toggle(r))}),y(3,wae,2,0,"svg",42)(4,xae,2,0,"ng-template",null,43,br),l(),d(6,"span",68),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(7,"span"),y(8,Dae,2,0,"svg",45)(9,Sae,2,0,"svg",46),d(10,"span",69),h(11),l()(),y(12,kae,8,1,"span",47)(13,Mae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(5),o=C();f("ngClass",No(14,Tae)),m(),f("ngIf",o.isTableLikeNode(e)),m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.treeControl.isExpanded(e))("ngIfElse",i),m(3),f("ngClass",hi(15,Iae,e.isDeleted)),m(2),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)),m(),f("ngIf",o.isSequenceNode(e.type))}}function Oae(t,n){1&t&&D(0,"tr",60)}function Aae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}const ww=t=>[t];let Pae=(()=>{class t{constructor(e,i,o,r,a){this.conversion=e,this.dialog=i,this.data=o,this.sidenav=r,this.clickEvent=a,this.isLeftColumnCollapse=!1,this.currentSelectedObject=null,this.srcSortOrder="",this.spannerSortOrder="",this.srcSearchText="",this.spannerSearchText="",this.selectedTab="spanner",this.selectedDatabase=new Ne,this.selectObject=new Ne,this.updateSpannerTable=new Ne,this.updateSrcTable=new Ne,this.leftCollaspe=new Ne,this.updateSidebar=new Ne,this.spannerTree=[],this.srcTree=[],this.srcDbName="",this.selectedIndex=1,this.transformer=(s,c)=>({expandable:!!s.children&&s.children.length>0,name:s.name,status:s.status,type:s.type,parent:s.parent,parentId:s.parentId,pos:s.pos,isSpannerNode:s.isSpannerNode,level:c,isDeleted:!!s.isDeleted,id:s.id}),this.treeControl=new EP(s=>s.level,s=>s.expandable),this.srcTreeControl=new EP(s=>s.level,s=>s.expandable),this.treeFlattener=new LX(this.transformer,s=>s.level,s=>s.expandable,s=>s.children),this.dataSource=new AP(this.treeControl,this.treeFlattener),this.srcDataSource=new AP(this.srcTreeControl,this.treeFlattener),this.checklistSelection=new qu(!0,[]),this.displayedColumns=["status","name"]}ngOnInit(){this.clickEvent.tabToSpanner.subscribe({next:e=>{this.setSpannerTab()}})}ngOnChanges(e){let i=e?.spannerTree?.currentValue,o=e?.srcTree?.currentValue;o&&(this.srcDataSource.data=o,this.srcTreeControl.expand(this.srcTreeControl.dataNodes[0]),this.srcTreeControl.expand(this.srcTreeControl.dataNodes[1])),i&&(this.dataSource.data=i,this.treeControl.expand(this.treeControl.dataNodes[0]),this.treeControl.expand(this.treeControl.dataNodes[1]))}filterSpannerTable(){this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}filterSrcTable(){this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}srcTableSort(){this.srcSortOrder=""===this.srcSortOrder?"asc":"asc"===this.srcSortOrder?"desc":"",this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}spannerTableSort(){this.spannerSortOrder=""===this.spannerSortOrder?"asc":"asc"===this.spannerSortOrder?"desc":"",this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}objectSelected(e){this.currentSelectedObject=e,(e.type===jt.Index||e.type===jt.Table||e.type===jt.Sequence)&&this.selectObject.emit(e)}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse,this.leftCollaspe.emit()}isTableNode(e){return new RegExp("^tables").test(e)}isIndexNode(e){return new RegExp("^indexes").test(e)}isSequenceNode(e){return new RegExp("^sequences").test(e)}isIndexLikeNode(e){return e.type==jt.Index||e.type==jt.Indexes}isTableLikeNode(e){return e.type==jt.Table||e.type==jt.Tables}isSequenceLikeNode(e){return e.type==jt.Sequence||e.type==jt.Sequences}openAddIndexForm(e){this.sidenav.setSidenavAddIndexTable(e),this.sidenav.setSidenavRuleType("addIndex"),this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("rule"),this.sidenav.setRuleData([]),this.sidenav.setDisplayRuleFlag(!1)}openAddSequenceForm(){this.dialog.open(FN,MN)}shouldHighlight(e){return e.name===this.currentSelectedObject?.name&&(e.type===jt.Table||e.type===jt.Index)}onTabChanged(){"spanner"==this.selectedTab?(this.selectedTab="source",this.selectedIndex=0):(this.selectedTab="spanner",this.selectedIndex=1),this.selectedDatabase.emit(this.selectedTab),this.currentSelectedObject=null,this.selectObject.emit(void 0)}setSpannerTab(){this.selectedIndex=1}checkDropSelection(){return 0!=this.countSelectionByCategory().eligibleForDrop}checkRestoreSelection(){return 0!=this.countSelectionByCategory().eligibleForRestore}countSelectionByCategory(){let i=0,o=0;return this.checklistSelection.selected.forEach(r=>{r.isDeleted?o+=1:i+=1}),{eligibleForDrop:i,eligibleForRestore:o}}dropSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",maxHeight:"90vh",data:{tables:i,operation:"SKIP"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"SKIP"==a&&(this.data.dropTables(r).pipe(Pt(1)).subscribe(s=>{""===s&&(this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.checklistSelection.clear())})}restoreSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{tables:i,operation:"RESTORE"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"RESTORE"==a&&(this.data.restoreTables(r).pipe(Pt(1)).subscribe(s=>{this.data.getConversionRate(),this.data.getDdl()}),this.checklistSelection.clear())})}selectionToggle(e){this.checklistSelection.toggle(e);const i=this.treeControl.getDescendants(e);this.checklistSelection.isSelected(e)?this.checklistSelection.select(...i):this.checklistSelection.deselect(...i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(pc),_(Hr),_(Hi),_(eo),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-object-explorer"]],inputs:{spannerTree:"spannerTree",srcTree:"srcTree",srcDbName:"srcDbName"},outputs:{selectedDatabase:"selectedDatabase",selectObject:"selectObject",updateSpannerTable:"updateSpannerTable",updateSrcTable:"updateSrcTable",leftCollaspe:"leftCollaspe",updateSidebar:"updateSidebar"},features:[fi],decls:59,vars:20,consts:[[1,"container"],[3,"ngClass","selectedIndex","selectedTabChange"],["mat-tab-label",""],[1,"filter-wrapper"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],["placeholder","Filter by table name",3,"ngModel","ngModelChange"],[1,"explorer-table"],["mat-table","",3,"dataSource"],["matColumnDef","status"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","name"],["mat-header-cell","","class","mat-header-cell-name cursor-pointer",3,"click",4,"matHeaderCellDef"],["mat-cell","","class","sidebar_link",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"ngClass",4,"matRowDef","matRowDefColumns"],["clas","delete-selected-btn"],["mat-button","","color","primary",1,"icon","drop",3,"disabled","click"],["clas","restore-selected-btn"],["mat-table","","id","schema-object-list",3,"dataSource"],["mat-cell","",3,"ngClass",4,"matCellDef"],["id","left-column-toggle-button",3,"click"],[3,"ngClass"],["mat-header-cell",""],["mat-cell",""],["class","icon success","matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",4,"ngIf"],["class","work","matTooltip","Requires minimal conversion changes","matTooltipPosition","above",4,"ngIf"],["class","work_history","matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",4,"ngIf"],["matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",1,"icon","success"],["d","m10.4 17.6-2-4.4-4.4-2 4.4-2 2-4.4 2 4.4 4.4 2-4.4 2Zm6.4 1.6-1-2.2-2.2-1 2.2-1 1-2.2 1 2.2 2.2 1-2.2 1Z"],["matTooltip","Requires minimal conversion changes","matTooltipPosition","above",1,"work"],["matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",1,"work_history"],["mat-header-cell","",1,"mat-header-cell-name","cursor-pointer",3,"click"],["class","src-unsorted-icon sort-icon",4,"ngIf"],["class","sort-icon",4,"ngIf"],[1,"src-unsorted-icon","sort-icon"],[1,"sort-icon"],["mat-cell","",1,"sidebar_link"],["mat-icon-button","",3,"click"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf","ngIfElse"],["collaps",""],[1,"sidebar_link",3,"click"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["class","actions",4,"ngIf"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M12 0L0 0L6 6L12 0Z","fill","black","fill-opacity","0.54"],["width","6","height","12","viewBox","0 0 6 12","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M-5.24537e-07 2.62268e-07L0 12L6 6L-5.24537e-07 2.62268e-07Z","fill","black","fill-opacity","0.54"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M0 0V18H18V0H0ZM16 2V6H2V2H16ZM7.33 11V8H10.66V11H7.33ZM10.67 13V16H7.34V13H10.67ZM5.33 11H2V8H5.33V11ZM12.67 8H16V11H12.67V8ZM2 13H5.33V16H2V13ZM12.67 16V13H16V16H12.67Z","fill","black","fill-opacity","0.54"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.005 14C11.555 14 12 13.554 12 13.002V5L10 3V12H2V14H11.005ZM0 0.996C0 0.446 0.438 0 1.003 0H7L9 2.004V10.004C9 10.554 8.554 11 8.002 11H0.998C0.867035 11.0003 0.737304 10.9747 0.616233 10.9248C0.495162 10.8748 0.385128 10.8015 0.292428 10.709C0.199729 10.6165 0.126186 10.5066 0.0760069 10.3856C0.0258282 10.2646 -2.64036e-07 10.135 0 10.004V0.996ZM6 1L5 5.5H2L6 1ZM3 10L4 5.5H7L3 10Z","fill","black","fill-opacity","0.54"],[1,"actions"],[3,"matMenuTriggerFor"],["menu","matMenu"],["mat-menu-item",""],["mat-header-row",""],["mat-row","",3,"ngClass"],["class","icon dark","matTooltip","Deleted","matTooltipPosition","above",4,"ngIf"],["matTooltip","Deleted","matTooltipPosition","above",1,"icon","dark"],["class","spanner-unsorted-icon sort-icon",4,"ngIf"],[1,"spanner-unsorted-icon","sort-icon"],["mat-cell","",3,"ngClass"],["class","checklist-node",3,"checked","change",4,"ngIf"],[1,"sidebar_link",3,"ngClass","click"],[1,"object-name"],[1,"checklist-node",3,"checked","change"],[1,"add-index-icon",3,"matMenuTriggerFor"],["xPosition","before"],["mat-menu-item","",3,"click"],[1,"add-sequence-icon",3,"matMenuTriggerFor"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-tab-group",1),A("selectedTabChange",function(){return o.onTabChanged()}),d(2,"mat-tab"),y(3,qre,2,4,"ng-template",2),d(4,"div",3)(5,"div",4)(6,"span",5),h(7,"filter_list"),l(),d(8,"span",6),h(9,"Filter"),l()(),d(10,"div",7)(11,"input",8),un("ngModelChange",function(a){return kn(o.srcSearchText,a)||(o.srcSearchText=a),a}),A("ngModelChange",function(){return o.filterSrcTable()}),l()()(),d(12,"div",9)(13,"table",10),me(14,11),y(15,Wre,2,0,"th",12)(16,Qre,4,3,"td",13),pe(),me(17,14),y(18,tae,7,3,"th",15)(19,sae,12,10,"td",16),pe(),y(20,cae,1,0,"tr",17)(21,lae,1,3,"tr",18),l()()(),d(22,"mat-tab"),y(23,dae,2,3,"ng-template",2),d(24,"div",3)(25,"div",4)(26,"span",5),h(27,"filter_list"),l(),d(28,"span",6),h(29,"Filter"),l()(),d(30,"div",7)(31,"input",8),un("ngModelChange",function(a){return kn(o.spannerSearchText,a)||(o.spannerSearchText=a),a}),A("ngModelChange",function(){return o.filterSpannerTable()}),l()(),d(32,"div",19)(33,"button",20),A("click",function(){return o.dropSelected()}),d(34,"mat-icon"),h(35,"delete"),l(),d(36,"span"),h(37,"SKIP"),l()()(),d(38,"div",21)(39,"button",20),A("click",function(){return o.restoreSelected()}),d(40,"mat-icon"),h(41,"undo"),l(),d(42,"span"),h(43,"RESTORE"),l()()()(),d(44,"div",9)(45,"table",22),me(46,11),y(47,uae,2,0,"th",12)(48,gae,5,4,"td",13),pe(),me(49,14),y(50,yae,7,3,"th",15)(51,Eae,14,17,"td",23),pe(),y(52,Oae,1,0,"tr",17)(53,Aae,1,3,"tr",18),l()()()(),d(54,"button",24),A("click",function(){return o.leftColumnToggle()}),d(55,"mat-icon",25),h(56,"first_page"),l(),d(57,"mat-icon",25),h(58,"last_page"),l()()()),2&i&&(m(),f("ngClass",hi(14,ww,o.isLeftColumnCollapse?"hidden":"display"))("selectedIndex",o.selectedIndex),m(10),dn("ngModel",o.srcSearchText),m(2),f("dataSource",o.srcDataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(10),dn("ngModel",o.spannerSearchText),m(2),f("disabled",!o.checkDropSelection()),m(6),f("disabled",!o.checkRestoreSelection()),m(6),f("dataSource",o.dataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(2),f("ngClass",hi(16,ww,o.isLeftColumnCollapse?"hidden":"display")),m(2),f("ngClass",hi(18,ww,o.isLeftColumnCollapse?"display":"hidden")))},dependencies:[yr,It,Yt,ba,Mi,Ci,_i,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,FC,eg,BC,vn,og,Nl],styles:[".container[_ngcontent-%COMP%]{position:relative;background-color:#fff}.container[_ngcontent-%COMP%] .filter-wrapper[_ngcontent-%COMP%]{padding:0 10px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]{height:35px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .src-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .src-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%]{font-size:1.1rem;vertical-align:middle}.selected-row[_ngcontent-%COMP%]{background-color:#61b3ff4a}.explorer-table[_ngcontent-%COMP%]{height:calc(100vh - 320px);width:100%;overflow:auto}.mdc-data-table__cell[_ngcontent-%COMP%], .mdc-data-table__header-cell[_ngcontent-%COMP%]{padding:0 0 0 16px}.mat-mdc-table[_ngcontent-%COMP%]{width:100%;border:inset}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;height:40px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-right:10px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{height:40px;margin-left:14px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .add-index-icon[_ngcontent-%COMP%]{margin-top:7px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%], .mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-row[_ngcontent-%COMP%]{height:29px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{font-family:Roboto;font-size:13px;font-style:normal;font-weight:500;line-height:18px;background:#f5f5f5}.mat-mdc-table[_ngcontent-%COMP%] .mat-column-status[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:medium}.mat-mdc-table[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{margin-right:20px}.filter-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;height:48px}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:30%;display:flex;align-items:center}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{margin-right:5px}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:70%}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:70%;border:none;outline:none;background-color:transparent}#left-column-toggle-button[_ngcontent-%COMP%]{z-index:100;position:absolute;right:4px;top:10px;border:none;background-color:inherit}#left-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer}.mat-mdc-column-status[_ngcontent-%COMP%]{width:80px} .column-left .mat-mdc-tab-label-container{margin-right:40px} .column-left .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-left .mat-mdc-tab-header-pagination-after{margin-right:40px}"]})}return t})();function Rae(t,n){1&t&&(d(0,"div",9)(1,"mat-icon"),h(2,"warning"),l(),d(3,"span"),h(4,"This operation cannot be undone"),l()())}let xw=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.ObjectDetailNodeType=ys,this.confirmationInput=new U("",[ee.required,ee.pattern(`^${e.name}$`)]),i.disableClose=!0}delete(){this.dialogRef.close(this.data.type)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-drop-index-dialog"]],decls:19,vars:7,consts:[["mat-dialog-content",""],["class","alert-container",4,"ngIf"],[1,"form-container"],[1,"form-custom-label"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"alert-container"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2),l(),y(3,Rae,5,0,"div",1),d(4,"div",2)(5,"form")(6,"span",3),h(7," Confirm deletion by typing the following below: "),d(8,"b"),h(9),l()(),d(10,"mat-form-field",4)(11,"mat-label"),h(12),l(),D(13,"input",5),l()()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.delete()}),h(18," Confirm "),l()()),2&i&&(m(2),_l("Skip ",o.data.type," (",o.data.name,")?"),m(),f("ngIf","Index"===o.data.type),m(6),Pe(o.data.name),m(3),xe("",o.data.type==o.ObjectDetailNodeType.Table?"Table":"Index"," Name"),m(),f("formControl",o.confirmationInput),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Nae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Fae(t,n){1&t&&(d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Length"),l(),D(4,"input",13),l(),D(5,"br"),l())}function Lae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Bae(t,n){if(1&t&&(me(0),y(1,Lae,2,2,"mat-option",16),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Vae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function jae(t,n){if(1&t&&(d(0,"mat-optgroup",18),y(1,Vae,2,2,"mat-option",6),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function zae(t,n){if(1&t&&(me(0),y(1,jae,2,2,"mat-optgroup",17),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Hae(t,n){if(1&t&&(me(0),y(1,zae,2,1,"ng-container",15),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf;m(),f("ngForOf",du(2,1,e))}}function Uae(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Auto Generated"),l(),d(4,"mat-select",14),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedAutoGen,o)||(r.selectedAutoGen=o),ne(o)}),y(5,Bae,2,1,"ng-container",15)(6,Hae,3,3,"ng-container",7),l()(),D(7,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedAutoGen),m(),f("ngForOf",e.autoGenMap[e.selectedDatatype]),m(),f("ngIf",e.processedAutoGenMap[e.selectedDatatype])}}function $ae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let Gae=(()=>{class t{constructor(e,i,o,r,a){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.data=a,this.dialect="",this.datatypes=[],this.selectedDatatype="",this.tableId="",this.selectedNull=!0,this.dataTypesWithColLen=In.DataTypes,this.autoGenMap={},this.selectedAutoGen={Name:"",GenerationType:""},this.processedAutoGenMap={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.autoGenSupportedDbs=["MySQL"],this.autGenSupported=!1,this.isColumnNullable=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=a.dialect,this.tableId=a.tableId,this.addNewColumnForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],datatype:["",ee.required],length:["",ee.pattern("^[0-9]+$")],isNullable:[],autoGen:[{Name:"",GenerationType:""}]}),this.fetchSerice.getAutoGenMap().subscribe(s=>{this.autoGenMap=s,this.processedAutoGenMap=IN(this.autoGenMap)}),this.autGenSupported=this.autoGenSupportedDbs.includes(this.srcDbName)}ngOnInit(){this.datatypes="google_standard_sql"==this.dialect?SN_GoogleStandardSQL:SN_PostgreSQL}changeValidator(){this.addNewColumnForm.controls.length.clearValidators(),"BYTES"===this.selectedDatatype?this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.ByteMaxLength)]):("VARCHAR"===this.selectedDatatype||"STRING"===this.selectedDatatype)&&this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.StringMaxLength)]),this.addNewColumnForm.controls.length.updateValueAndValidity()}addNewColumn(){let e=this.addNewColumnForm.value,i={Name:e.name,Datatype:this.selectedDatatype,Length:parseInt(e.length),IsNullable:this.selectedNull,AutoGen:this.selectedAutoGen};this.dataService.addColumn(this.tableId,i),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-column"]],decls:27,vars:8,consts:[["mat-dialog-content",""],[1,"add-new-column-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Column Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","datatype","required","true",1,"input-field",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["formControlName","isNullable","required","true",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],["matInput","","placeholder","Length","type","text","formControlName","length"],["formControlName","autoGen",1,"input-field",3,"ngModel","ngModelChange"],[4,"ngFor","ngForOf"],[3,"value",4,"ngIf"],[3,"label",4,"ngIf"],[3,"label"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Column Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Datatype"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedDatatype,a)||(o.selectedDatatype=a),a}),A("selectionChange",function(){return o.changeValidator()}),y(13,Nae,2,2,"mat-option",6),l()(),D(14,"br"),y(15,Fae,6,0,"div",7)(16,Uae,8,3,"div",7),d(17,"mat-form-field",4)(18,"mat-label"),h(19,"IsNullable"),l(),d(20,"mat-select",8),un("ngModelChange",function(a){return kn(o.selectedNull,a)||(o.selectedNull=a),a}),y(21,$ae,2,2,"mat-option",6),l()()(),d(22,"div",9)(23,"button",10),h(24,"CANCEL"),l(),d(25,"button",11),A("click",function(){return o.addNewColumn()}),h(26," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewColumnForm),m(11),dn("ngModel",o.selectedDatatype),m(),f("ngForOf",o.datatypes),m(2),f("ngIf",o.dataTypesWithColLen.indexOf(o.selectedDatatype)>-1),m(),f("ngIf",""!=o.selectedDatatype&&o.autoGenMap[o.selectedDatatype].length>1&&o.autGenSupported),m(4),dn("ngModel",o.selectedNull),m(),f("ngForOf",o.isColumnNullable),m(4),f("disabled",!o.addNewColumnForm.valid))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,TE,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,ay]})}return t})();function qae(t,n){1&t&&(d(0,"span"),h(1," To view and modify an object details, click on the object name on the Spanner draft panel. "),l())}function Wae(t,n){if(1&t&&(d(0,"span"),h(1),l()),2&t){const e=C(2);m(),xe(" To view an object details, click on the object name on the ",e.srcDbName," panel. ")}}const Tg=t=>[t];function Kae(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"div",3)(2,"h3",4),h(3,"OBJECT VIEWER"),l(),d(4,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(5,"mat-icon",6),h(6,"first_page"),l(),d(7,"mat-icon",6),h(8,"last_page"),l()()(),D(9,"mat-divider"),d(10,"div",7)(11,"div",8),ei(),d(12,"svg",9),D(13,"path",10),l()(),pr(),d(14,"div",11),y(15,qae,2,0,"span",12)(16,Wae,2,1,"span",12),l()()()}if(2&t){const e=C();m(5),f("ngClass",hi(4,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(6,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(8),f("ngIf","spanner"==e.currentDatabase),m(),f("ngIf","source"==e.currentDatabase)}}function Zae(t,n){1&t&&(d(0,"mat-icon",24),h(1," table_chart"),l())}function Yae(t,n){1&t&&(ei(),d(0,"svg",25),D(1,"path",26),l())}function Qae(t,n){if(1&t&&(d(0,"span"),h(1),lu(2,"uppercase"),l()),2&t){const e=C(2);m(),xe("( TABLE: ",du(2,1,e.currentObject.parent)," ) ")}}function Xae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropIndex())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP INDEX"),l()()}}function Jae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropSequence())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"DELETE SEQUENCE"),l()()}}function ese(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreIndex())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE INDEX"),l()()}}function tse(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropTable())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP TABLE"),l()()}}function ise(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreSpannerTable())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE TABLE"),l()()}}function nse(t,n){if(1&t&&(d(0,"div",28),h(1," Interleaved: "),d(2,"div",29),h(3),l()()),2&t){const e=C(2);m(3),xe(" ",e.interleaveParentName," ")}}function ose(t,n){1&t&&(d(0,"span"),h(1,"COLUMNS "),l())}function rse(t,n){if(1&t&&(d(0,"th",82),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function ase(t,n){1&t&&(d(0,"th",83),h(1,"S No."),l())}function sse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function cse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function lse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function dse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function use(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function hse(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function mse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColMaxLength").value," ")}}function pse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function fse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function gse(t,n){1&t&&(me(0,85),y(1,pse,2,0,"th",42)(2,fse,2,1,"td",39),pe())}function _se(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function bse(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function vse(t,n){if(1&t&&(d(0,"td",84),y(1,bse,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function yse(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Cse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function wse(t,n){1&t&&D(0,"tr",88)}function xse(t,n){1&t&&D(0,"tr",88)}const Dse=t=>({"scr-column-data-edit-mode":t});function Sse(t,n){if(1&t&&D(0,"tr",89),2&t){const e=C(3);f("ngClass",hi(1,Dse,e.isEditMode))}}function kse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).toggleEdit())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," EDIT "),l()}}function Mse(t,n){if(1&t&&(d(0,"div"),y(1,kse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Tse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewColumn())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD COLUMN "),l()}}function Ise(t,n){if(1&t&&(d(0,"div"),y(1,Tse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ese(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewSequence())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD SEQUENCE "),l()}}function Ose(t,n){if(1&t&&(d(0,"div"),y(1,Ese,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ase(t,n){if(1&t&&(d(0,"th",90)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,Mse,2,1,"div",12)(5,Ise,2,1,"div",12)(6,Ose,2,1,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted&&e.autoGenSupported)}}function Pse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Rse(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spColName"))("matTooltipDisabled",!(null!=(i=e.get("spColName"))&&i.hasError("pattern")))}}function Nse(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function Fse(t,n){if(1&t&&(d(0,"td",84),y(1,Rse,2,2,"div",12)(2,Nse,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode||""===e.get("srcId").value)}}function Lse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Bse(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Vse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayT),m(),xe(" ",e.DisplayT," ")}}function jse(t,n){1&t&&(d(0,"mat-option",107),h(1," STRING "),l())}function zse(t,n){1&t&&(d(0,"mat-option",108),h(1," VARCHAR "),l())}function Hse(t,n){if(1&t){const e=_e();d(0,"mat-form-field",100)(1,"mat-select",101,102),A("selectionChange",function(){ie(e);const o=Ft(2),r=C().index;return ne(C(3).spTableEditSuggestionHandler(r,o.value))}),y(3,Vse,2,2,"mat-option",103)(4,jse,2,0,"mat-option",104)(5,zse,2,0,"mat-option",105),l()()}if(2&t){const e=C().$implicit,i=C(3);m(),f("formControl",e.get("spDataType")),m(2),f("ngForOf",i.typeMap[e.get("srcDataType").value]),m(),f("ngIf",""==e.get("srcDataType").value&&!i.isPostgreSQLDialect),m(),f("ngIf",""==e.get("srcDataType").value&&i.isPostgreSQLDialect)}}function Use(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spDataType").value)}}function $se(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Bse,2,1,"span",97)(3,Hse,6,4,"mat-form-field",98)(4,Use,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spDataType").value),m(),f("ngIf",o.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!o.isEditMode||""===e.get("srcId").value)}}function Gse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function qse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Wse(t,n){if(1&t&&(me(0),y(1,qse,2,2,"mat-option",114),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Kse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function Zse(t,n){if(1&t&&(d(0,"mat-optgroup",116),y(1,Kse,2,2,"mat-option",103),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function Yse(t,n){if(1&t&&(me(0),y(1,Zse,2,2,"mat-optgroup",115),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Qse(t,n){if(1&t&&(me(0),y(1,Yse,2,1,"ng-container",113),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf,i=C(6);m(),f("ngForOf",du(2,1,i.processedAutoGenMap[e]))}}function Xse(t,n){if(1&t&&(me(0),d(1,"mat-form-field",100)(2,"mat-select",111,112),y(4,Wse,2,1,"ng-container",113)(5,Qse,3,3,"ng-container",12),l()(),pe()),2&t){const e=C().$implicit,i=C(4);m(2),f("formControl",e.get("spAutoGen"))("compareWith",i.compareAutoGen),m(2),f("ngForOf",i.autoGenMap[e.get("spDataType").value]),m(),f("ngIf",e.get("spDataType").value)}}function Jse(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function ece(t,n){if(1&t&&(d(0,"td",84)(1,"div",110),y(2,Xse,6,4,"ng-container",12)(3,Jse,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(4);m(2),f("ngIf",i.isEditMode&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode)}}function tce(t,n){1&t&&(me(0,109),y(1,Gse,2,0,"th",42)(2,ece,4,2,"td",39),pe())}function ice(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function nce(t,n){if(1&t&&(d(0,"div"),D(1,"input",117),l()),2&t){const e=C(2).$implicit;m(),f("formControl",e.get("spColMaxLength"))}}function oce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),xe(" ",e.get("spColMaxLength").value," ")}}function rce(t,n){if(1&t&&(d(0,"div"),y(1,nce,2,1,"div",12)(2,oce,2,1,"p",12),l()),2&t){const e=C().$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!=e.get("srcDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function ace(t,n){if(1&t&&(d(0,"td",84),y(1,rce,3,2,"div",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.dataTypesWithColLen.indexOf(e.get("spDataType").value)>-1)}}function sce(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function cce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function lce(t,n){if(1&t&&(d(0,"td",84),y(1,cce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function dce(t,n){1&t&&(d(0,"span"),h(1,"Not Null"),l())}function uce(t,n){1&t&&(d(0,"span"),h(1,"Nullable"),l())}function hce(t,n){if(1&t&&(d(0,"th",83),y(1,dce,2,0,"span",12)(2,uce,2,0,"span",12),l()),2&t){const e=C(3);m(),f("ngIf",e.isEditMode),m(),f("ngIf",!e.isEditMode)}}function mce(t,n){if(1&t&&(d(0,"div"),D(1,"mat-checkbox",119),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spIsNotNull"))}}function pce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function fce(t,n){if(1&t&&(d(0,"td",84)(1,"div",118),y(2,mce,2,1,"div",12)(3,pce,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function gce(t,n){1&t&&D(0,"th",83)}function _ce(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropColumn(o))}),d(6,"span"),h(7,"Drop Column"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Ig=t=>({"drop-button-left-border":t});function bce(t,n){if(1&t&&(d(0,"td",120),y(1,_ce,8,1,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isEditMode)),m(),f("ngIf",i.isEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol)}}function vce(t,n){1&t&&D(0,"tr",88)}function yce(t,n){1&t&&D(0,"tr",88)}function Cce(t,n){1&t&&D(0,"tr",127)}function wce(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function xce(t,n){if(1&t){const e=_e();d(0,"div",128)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setColumn(o.value))}),y(5,wce,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).restoreColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," RESTORE COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addColumnForm),m(5),f("ngForOf",e.droppedSourceColumns)}}function Dce(t,n){1&t&&(d(0,"span"),h(1,"PRIMARY KEY "),l())}function Sce(t,n){if(1&t&&(d(0,"th",132),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function kce(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).togglePkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Mce(t,n){if(1&t&&(d(0,"th",133)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,kce,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isPkEditMode&&e.pkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function Tce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Ice(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function Ece(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Oce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function Ace(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Pce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function Rce(t,n){1&t&&(d(0,"th",83),h(1,"PK"),l())}function Nce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function Fce(t,n){if(1&t&&(d(0,"td",84),y(1,Nce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function Lce(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Bce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function Vce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function jce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function zce(t,n){1&t&&(me(0,85),y(1,Vce,2,0,"th",42)(2,jce,2,1,"td",39),pe())}function Hce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Uce(t,n){if(1&t&&(d(0,"div"),D(1,"input",134),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spOrder"))("matTooltipDisabled",!(null!=(i=e.get("spOrder"))&&i.hasError("pattern")))}}function $ce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Gce(t,n){if(1&t&&(d(0,"td",84),y(1,Uce,2,2,"div",12)(2,$ce,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isPkEditMode&&""!==e.get("spColName").value),m(),f("ngIf",!i.isPkEditMode)}}function qce(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Wce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.get("spColName").value)}}function Kce(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Zce(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Yce(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Zce,2,1,"span",97),d(3,"p"),h(4),l()()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spColName").value),m(2),Pe(e.get("spDataType").value)}}function Qce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function Xce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function Jce(t,n){1&t&&(me(0,109),y(1,Qce,2,0,"th",42)(2,Xce,3,1,"td",39),pe())}function ele(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function tle(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function ile(t,n){if(1&t&&(d(0,"td",84),y(1,tle,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function nle(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function ole(t,n){if(1&t&&(d(0,"td",84)(1,"div",118)(2,"p"),h(3),l()()()),2&t){const e=n.$implicit;m(3),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function rle(t,n){1&t&&D(0,"th",83)}function ale(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropPk(o))}),d(6,"span"),h(7,"Remove primary key"),l()()()()}if(2&t){const e=Ft(4),i=C(4);m(),f("matMenuTriggerFor",e),m(4),f("disabled",!i.isPkEditMode)}}function sle(t,n){if(1&t&&(d(0,"td",120),y(1,ale,8,2,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isPkEditMode)),m(),f("ngIf",i.isPkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spColName").value)}}function cle(t,n){1&t&&D(0,"tr",88)}function lle(t,n){1&t&&D(0,"tr",88)}function dle(t,n){1&t&&D(0,"tr",127)}function ule(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function hle(t,n){if(1&t){const e=_e();d(0,"div",136)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setPkColumn(o.value))}),y(5,ule,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).addPkColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," ADD COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addPkColumnForm),m(5),f("ngForOf",e.pkColumnNames)}}function mle(t,n){1&t&&(d(0,"span"),h(1,"FOREIGN KEY"),l())}function ple(t,n){if(1&t&&(d(0,"th",137),h(1),l()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?6:4),m(),Pe(e.srcDbName)}}function fle(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleFkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function gle(t,n){if(1&t&&(d(0,"th",137)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,fle,5,0,"div",12),l()()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?7:5),m(4),f("ngIf",!e.isFkEditMode&&e.fkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function _le(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcName").value," ")}}function vle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function yle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColumns").value," ")}}function Cle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function wle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferTable").value," ")}}function xle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function Dle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferColumns").value," ")}}function Sle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function kle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnDelete").value," ")}}function Mle(t,n){1&t&&(me(0,138),y(1,Sle,2,0,"th",38)(2,kle,2,1,"td",39),pe())}function Tle(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Ile(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnUpdate").value," ")}}function Ele(t,n){1&t&&(me(0,139),y(1,Tle,2,0,"th",38)(2,Ile,2,1,"td",39),pe())}function Ole(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ale(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spName"))("matTooltipDisabled",!(null!=(i=e.get("spName"))&&i.hasError("pattern")))}}function Ple(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spName").value)}}function Rle(t,n){if(1&t&&(d(0,"td",84),y(1,Ale,2,2,"div",12)(2,Ple,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isFkEditMode&&""!==e.get("spReferTable").value),m(),f("ngIf",!i.isFkEditMode)}}function Nle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function Fle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spColumns").value," ")}}function Lle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function Ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spReferTable").value," ")}}function Vle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function jle(t,n){if(1&t&&(d(0,"td",84)(1,"div",140),h(2),l()()),2&t){const e=n.$implicit;m(2),xe(" ",e.get("spReferColumns").value," ")}}function zle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function Hle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnDelete").value," ")}}function Ule(t,n){1&t&&(me(0,141),y(1,zle,2,0,"th",38)(2,Hle,2,1,"td",39),pe())}function $le(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Gle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnUpdate").value," ")}}function qle(t,n){1&t&&(me(0,142),y(1,$le,2,0,"th",38)(2,Gle,2,1,"td",39),pe())}function Wle(t,n){1&t&&D(0,"th",83)}function Kle(t,n){if(1&t){const e=_e();d(0,"button",135),A("click",function(){return ie(e),ne(C(5).setInterleave())}),d(1,"span"),h(2,"Convert to interleave"),l()()}2&t&&f("disabled",""===C(2).$implicit.get("spName").value)}function Zle(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropFk(o))}),d(6,"span"),h(7,"Drop Foreign Key"),l()(),y(8,Kle,3,1,"button",143),l()()}if(2&t){const e=Ft(4),i=C().$implicit,o=C(3);m(),f("matMenuTriggerFor",e),m(4),f("disabled",""===i.get("spName").value),m(3),f("ngIf",o.interleaveStatus.tableInterleaveStatus&&o.interleaveStatus.tableInterleaveStatus.Possible)}}function Yle(t,n){if(1&t&&(d(0,"td",120),y(1,Zle,9,3,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isFkEditMode)),m(),f("ngIf",i.isFkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spReferTable").value)}}function Qle(t,n){1&t&&D(0,"tr",88)}function Xle(t,n){1&t&&D(0,"tr",88)}function Jle(t,n){1&t&&D(0,"tr",127)}function ede(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).setInterleave())}),h(1," Convert to Interleave "),l()}}function tde(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).removeInterleave())}),h(1," Convert Back to Foreign Key "),l()}}function ide(t,n){if(1&t&&(d(0,"div"),h(1," This table is interleaved with "),d(2,"span",148),h(3),l(),h(4,". Click on the above button to convert back to foreign key. "),l()),2&t){const e=C(4);m(3),Pe(e.interleaveParentName)}}function nde(t,n){if(1&t&&(d(0,"mat-tab",144)(1,"div",145),y(2,ede,2,0,"button",146)(3,tde,2,0,"button",146),D(4,"br"),y(5,ide,5,1,"div",12),l()()),2&t){const e=C(3);m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible&&null===e.interleaveParentName),m(),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName),m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)}}function ode(t,n){1&t&&(d(0,"span"),h(1,"SQL"),l())}function rde(t,n){if(1&t&&(d(0,"mat-tab"),y(1,ode,2,0,"ng-template",31),d(2,"div",149)(3,"pre")(4,"code"),h(5),l()()()()),2&t){const e=C(3);m(5),Pe(e.ddlStmts[e.currentObject.id])}}const ade=t=>({"height-on-edit":t}),sde=()=>["srcDatabase"],VN=()=>["spDatabase"],Dw=()=>["srcDatabase","spDatabase"];function cde(t,n){if(1&t){const e=_e();d(0,"mat-tab-group",30),A("selectedTabChange",function(o){return ie(e),ne(C(2).tabChanged(o))}),d(1,"mat-tab"),y(2,ose,2,0,"ng-template",31),d(3,"div",32)(4,"div",33)(5,"table",34),me(6,35),y(7,rse,2,1,"th",36),pe(),me(8,37),y(9,ase,2,0,"th",38)(10,sse,2,1,"td",39),pe(),me(11,40),y(12,cse,2,0,"th",38)(13,lse,2,1,"td",39),pe(),me(14,41),y(15,dse,2,0,"th",42)(16,use,2,1,"td",39),pe(),me(17,43),y(18,hse,2,0,"th",42)(19,mse,2,1,"td",39),pe(),y(20,gse,3,0,"ng-container",44),me(21,45),y(22,_se,2,0,"th",38)(23,vse,2,1,"td",39),pe(),me(24,46),y(25,yse,2,0,"th",42)(26,Cse,2,1,"td",39),pe(),y(27,wse,1,0,"tr",47)(28,xse,1,0,"tr",47)(29,Sse,1,3,"tr",48),l(),d(30,"table",34),me(31,49),y(32,Ase,7,3,"th",50),pe(),me(33,51),y(34,Pse,2,0,"th",42)(35,Fse,3,2,"td",39),pe(),me(36,52),y(37,Lse,2,0,"th",42)(38,$se,5,3,"td",39),pe(),y(39,tce,3,0,"ng-container",53),me(40,54),y(41,ice,2,0,"th",42)(42,ace,2,1,"td",39),pe(),me(43,55),y(44,sce,2,0,"th",38)(45,lce,2,1,"td",39),pe(),me(46,56),y(47,hce,3,2,"th",42)(48,fce,4,2,"td",39),pe(),me(49,57),y(50,gce,1,0,"th",42)(51,bce,2,4,"td",58),pe(),y(52,vce,1,0,"tr",47)(53,yce,1,0,"tr",47)(54,Cce,1,0,"tr",59),l()(),y(55,xce,10,2,"div",60),l()(),d(56,"mat-tab"),y(57,Dce,2,0,"ng-template",31),d(58,"div",61)(59,"table",34),me(60,35),y(61,Sce,2,1,"th",62),pe(),me(62,49),y(63,Mce,5,1,"th",63),pe(),me(64,37),y(65,Tce,2,0,"th",38)(66,Ice,2,1,"td",39),pe(),me(67,40),y(68,Ece,2,0,"th",38)(69,Oce,2,1,"td",39),pe(),me(70,41),y(71,Ace,2,0,"th",42)(72,Pce,2,1,"td",39),pe(),me(73,45),y(74,Rce,2,0,"th",38)(75,Fce,2,1,"td",39),pe(),me(76,46),y(77,Lce,2,0,"th",42)(78,Bce,2,1,"td",39),pe(),y(79,zce,3,0,"ng-container",44),me(80,64),y(81,Hce,2,0,"th",38)(82,Gce,3,2,"td",39),pe(),me(83,51),y(84,qce,2,0,"th",42)(85,Wce,3,1,"td",39),pe(),me(86,52),y(87,Kce,2,0,"th",42)(88,Yce,5,2,"td",39),pe(),y(89,Jce,3,0,"ng-container",53),me(90,55),y(91,ele,2,0,"th",38)(92,ile,2,1,"td",39),pe(),me(93,56),y(94,nle,2,0,"th",42)(95,ole,4,1,"td",39),pe(),me(96,57),y(97,rle,1,0,"th",42)(98,sle,2,4,"td",58),pe(),y(99,cle,1,0,"tr",47)(100,lle,1,0,"tr",47)(101,dle,1,0,"tr",59),l(),y(102,hle,10,2,"div",65),l()(),d(103,"mat-tab"),y(104,mle,2,0,"ng-template",31),d(105,"div",66)(106,"table",34),me(107,35),y(108,ple,2,2,"th",67),pe(),me(109,49),y(110,gle,5,2,"th",67),pe(),me(111,68),y(112,_le,2,0,"th",38)(113,ble,2,1,"td",39),pe(),me(114,69),y(115,vle,2,0,"th",38)(116,yle,2,1,"td",39),pe(),me(117,70),y(118,Cle,2,0,"th",38)(119,wle,2,1,"td",39),pe(),me(120,71),y(121,xle,2,0,"th",38)(122,Dle,2,1,"td",39),pe(),y(123,Mle,3,0,"ng-container",72)(124,Ele,3,0,"ng-container",73),me(125,74),y(126,Ole,2,0,"th",42)(127,Rle,3,2,"td",39),pe(),me(128,75),y(129,Nle,2,0,"th",38)(130,Fle,2,1,"td",39),pe(),me(131,76),y(132,Lle,2,0,"th",38)(133,Ble,2,1,"td",39),pe(),me(134,77),y(135,Vle,2,0,"th",38)(136,jle,3,1,"td",39),pe(),y(137,Ule,3,0,"ng-container",78)(138,qle,3,0,"ng-container",79),me(139,80),y(140,Wle,1,0,"th",42)(141,Yle,2,4,"td",58),pe(),y(142,Qle,1,0,"tr",47)(143,Xle,1,0,"tr",47)(144,Jle,1,0,"tr",59),l()()(),y(145,nde,6,3,"mat-tab",81)(146,rde,6,1,"mat-tab",12),l()}if(2&t){const e=C(2);f("ngClass",hi(29,ade,e.isEditMode||e.isPkEditMode||e.isFkEditMode)),m(5),f("dataSource",e.srcDataSource),m(15),f("ngIf",e.autoGenSupported),m(7),f("matHeaderRowDef",No(31,sde)),m(),f("matHeaderRowDef",e.srcDisplayedColumns),m(),f("matRowDefColumns",e.srcDisplayedColumns),m(),f("dataSource",e.spDataSource),m(9),f("ngIf",e.autoGenSupported),m(13),f("matHeaderRowDef",No(32,VN)),m(),f("matHeaderRowDef",e.spDisplayedColumns),m(),f("matRowDefColumns",e.spDisplayedColumns),m(),f("ngIf",e.isEditMode&&0!=e.droppedSourceColumns.length),m(4),f("dataSource",e.pkDataSource),m(20),f("ngIf",e.autoGenSupported),m(10),f("ngIf",e.autoGenSupported),m(10),f("matHeaderRowDef",No(33,Dw)),m(),f("matHeaderRowDef",e.displayedPkColumns),m(),f("matRowDefColumns",e.displayedPkColumns),m(),f("ngIf",e.isPkEditMode),m(4),f("dataSource",e.fkDataSource),m(17),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(13),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(4),f("matHeaderRowDef",No(34,Dw)),m(),f("matHeaderRowDef",e.displayedFkColumns),m(),f("matRowDefColumns",e.displayedFkColumns),m(),f("ngIf",(e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)&&e.currentObject.isSpannerNode),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function lde(t,n){if(1&t&&(d(0,"th",161),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function dde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleIndexEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function ude(t,n){if(1&t&&(d(0,"th",162)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,dde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isIndexEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function hde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function mde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function pde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function fde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function gde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function _de(t,n){if(1&t&&(d(0,"td",84),y(1,fde,2,0,"p",12)(2,gde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcDesc").value),m(),f("ngIf",!1===e.get("srcDesc").value)}}function bde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function vde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function yde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function Cde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function wde(t,n){if(1&t&&(d(0,"td",84),y(1,Cde,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spColName").value)}}function xde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function Dde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function Sde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function kde(t,n){if(1&t&&(d(0,"td",84),y(1,Dde,2,0,"p",12)(2,Sde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spDesc").value),m(),f("ngIf",!1===e.get("spDesc").value)}}function Mde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function Tde(t,n){if(1&t&&(d(0,"div"),D(1,"input",163),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spOrder"))}}function Ide(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Ede(t,n){if(1&t&&(d(0,"td",84),y(1,Tde,2,1,"div",12)(2,Ide,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value),m(),f("ngIf",!i.isIndexEditMode)}}function Ode(t,n){1&t&&D(0,"th",83)}function Ade(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().index;return ne(C(3).dropIndexKey(o))}),d(6,"span"),h(7,"Drop Index Key"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Pde(t,n){if(1&t&&(d(0,"td",120),y(1,Ade,8,1,"div",12),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isIndexEditMode)),m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value)}}function Rde(t,n){1&t&&D(0,"tr",88)}function Nde(t,n){1&t&&D(0,"tr",88)}function Fde(t,n){1&t&&D(0,"tr",164)}function Lde(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Bde(t,n){if(1&t){const e=_e();d(0,"div",165)(1,"mat-form-field",166)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",167),y(5,Lde,2,2,"mat-option",103),l()(),d(6,"mat-form-field",168)(7,"mat-label"),h(8,"Sort By"),l(),d(9,"mat-select",169)(10,"mat-option",170),h(11,"Ascending"),l(),d(12,"mat-option",171),h(13,"Descending"),l()()(),d(14,"button",172),A("click",function(){return ie(e),ne(C(3).addIndexKey())}),d(15,"mat-icon"),h(16,"add"),l(),d(17,"span"),h(18," ADD COLUMN"),l()()()}if(2&t){const e=C(3);f("formGroup",e.addIndexKeyForm),m(5),f("ngForOf",e.indexColumnNames),m(9),f("disabled",!e.addIndexKeyForm.valid)}}function Vde(t,n){if(1&t&&(d(0,"div",150)(1,"table",34),me(2,35),y(3,lde,2,1,"th",151),pe(),me(4,49),y(5,ude,5,1,"th",152),pe(),me(6,153),y(7,hde,2,0,"th",38)(8,mde,2,1,"td",39),pe(),me(9,154),y(10,pde,2,0,"th",42)(11,_de,3,2,"td",39),pe(),me(12,155),y(13,bde,2,0,"th",38)(14,vde,2,1,"td",39),pe(),me(15,156),y(16,yde,2,0,"th",42)(17,wde,2,1,"td",39),pe(),me(18,157),y(19,xde,2,0,"th",42)(20,kde,3,2,"td",39),pe(),me(21,158),y(22,Mde,2,0,"th",38)(23,Ede,3,2,"td",39),pe(),me(24,57),y(25,Ode,1,0,"th",42)(26,Pde,2,4,"td",58),pe(),y(27,Rde,1,0,"tr",47)(28,Nde,1,0,"tr",47)(29,Fde,1,0,"tr",159),l(),y(30,Bde,19,3,"div",160),l()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(26),f("matHeaderRowDef",No(5,Dw)),m(),f("matHeaderRowDef",e.indexDisplayedColumns),m(),f("matRowDefColumns",e.indexDisplayedColumns),m(),f("ngIf",e.isIndexEditMode&&e.indexColumnNames.length>0)}}function jde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleSequenceEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function zde(t,n){if(1&t&&(d(0,"th",132)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,jde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isSequenceEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function Hde(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ude(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSeqName").value)}}function $de(t,n){if(1&t&&(d(0,"td",84),y(1,Ude,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spSeqName").value)}}function Gde(t,n){1&t&&(d(0,"th",83),h(1,"Sequence Type"),l())}function qde(t,n){if(1&t&&(me(0),d(1,"mat-option",106),h(2),l(),pe()),2&t){const e=n.$implicit;m(),f("value",e),m(),xe(" ",e," ")}}function Wde(t,n){if(1&t&&(me(0),d(1,"mat-form-field",181)(2,"mat-select",182,183),y(4,qde,3,2,"ng-container",113),l()(),pe()),2&t){const e=C().$implicit,i=C(3);m(2),f("formControl",e.get("spSequenceKind")),m(2),f("ngForOf",i.sequenceKinds)}}function Kde(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(e.get("spSequenceKind").value)}}function Zde(t,n){if(1&t&&(d(0,"td",84)(1,"div",180),y(2,Wde,5,2,"ng-container",12)(3,Kde,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isSequenceEditMode&&""!==e.get("spSequenceKind").value),m(),f("ngIf",!i.isSequenceEditMode)}}function Yde(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Min"),l())}function Qde(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMin"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMin"))&&i.hasError("pattern")))}}function Xde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMin").value)}}function Jde(t,n){if(1&t&&(d(0,"td",84),y(1,Qde,2,2,"div",12)(2,Xde,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMin").value)}}function eue(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Max"),l())}function tue(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMax"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMax"))&&i.hasError("pattern")))}}function iue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMax").value)}}function nue(t,n){if(1&t&&(d(0,"td",84),y(1,tue,2,2,"div",12)(2,iue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMax").value)}}function oue(t,n){1&t&&(d(0,"th",83),h(1,"Start With Counter"),l())}function rue(t,n){if(1&t&&(d(0,"div"),D(1,"input",185),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spStartWithCounter"))("matTooltipDisabled",!(null!=(i=e.get("spStartWithCounter"))&&i.hasError("pattern")))}}function aue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spStartWithCounter").value)}}function sue(t,n){if(1&t&&(d(0,"td",84),y(1,rue,2,2,"div",12)(2,aue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spStartWithCounter").value)}}function cue(t,n){1&t&&D(0,"tr",88)}function lue(t,n){1&t&&D(0,"tr",88)}function due(t,n){1&t&&D(0,"tr",186)}function uue(t,n){if(1&t&&(d(0,"div",173)(1,"table",34),me(2,49),y(3,zde,5,1,"th",62),pe(),me(4,174),y(5,Hde,2,0,"th",42)(6,$de,2,1,"td",39),pe(),me(7,175),y(8,Gde,2,0,"th",42)(9,Zde,4,2,"td",39),pe(),me(10,176),y(11,Yde,2,0,"th",42)(12,Jde,3,2,"td",39),pe(),me(13,177),y(14,eue,2,0,"th",42)(15,nue,3,2,"td",39),pe(),me(16,178),y(17,oue,2,0,"th",42)(18,sue,3,2,"td",39),pe(),y(19,cue,1,0,"tr",47)(20,lue,1,0,"tr",47)(21,due,1,0,"tr",179),l()()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(18),f("matHeaderRowDef",No(4,VN)),m(),f("matHeaderRowDef",e.sequenceDisplayedColumns),m(),f("matRowDefColumns",e.sequenceDisplayedColumns)}}function hue(t,n){1&t&&D(0,"mat-divider")}function mue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleEdit())}),h(1," CANCEL "),l()}}function pue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveColumnTable())}),h(2," SAVE & CONVERT "),l(),y(3,mue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function fue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).togglePkEdit())}),h(1," CANCEL "),l()}}function gue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).savePk())}),h(2," SAVE & CONVERT "),l(),y(3,fue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.pkArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function _ue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleFkEdit())}),h(1," CANCEL "),l()}}function bue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveFk())}),h(2,"SAVE & CONVERT"),l(),y(3,_ue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function vue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleIndexEdit())}),h(1," CANCEL "),l()}}function yue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveIndex())}),h(2,"SAVE & CONVERT"),l(),y(3,vue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function Cue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleSequenceEdit())}),h(1," CANCEL "),l()}}function wue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveSequence())}),h(2," SAVE & CONVERT "),l(),y(3,Cue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function xue(t,n){if(1&t){const e=_e();d(0,"div",13)(1,"div",3)(2,"span")(3,"h3",4),y(4,Zae,2,0,"mat-icon",14)(5,Yae,2,0,"svg",15),d(6,"span",16),h(7),l(),y(8,Qae,3,3,"span",12)(9,Xae,5,0,"button",17)(10,Jae,5,0,"button",17)(11,ese,5,0,"button",17)(12,tse,5,0,"button",17)(13,ise,5,0,"button",17),l(),y(14,nse,4,1,"div",18),l(),d(15,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(16,"mat-icon",6),h(17,"first_page"),l(),d(18,"mat-icon",6),h(19,"last_page"),l()()(),y(20,cde,147,35,"mat-tab-group",19)(21,Vde,31,6,"div",20)(22,uue,22,5,"div",21),d(23,"div",22),y(24,hue,1,0,"mat-divider",12)(25,pue,4,2,"div",23)(26,gue,4,2,"div",23)(27,bue,4,1,"div",23)(28,yue,4,1,"div",23)(29,wue,4,2,"div",23),l()()}if(2&t){const e=C();m(4),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Index||e.currentObject.type===e.ObjectExplorerNodeType.Sequence),m(2),Pe(" "+e.currentObject.name+" "),m(),f("ngIf",""!=e.currentObject.parent),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"indexName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"sequenceName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Index),m(),f("ngIf",e.currentObject.isSpannerNode&&"indexName"!==e.currentObject.type&&"sequenceName"!==e.currentObject.type&&!e.currentObject.isDeleted),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.interleaveParentName&&e.currentObject.isSpannerNode),m(2),f("ngClass",hi(21,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(23,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(2),f("ngIf","tableName"===e.currentObject.type),m(),f("ngIf","indexName"===e.currentObject.type),m(),f("ngIf","sequenceName"===e.currentObject.type&&e.autoGenSupported),m(2),f("ngIf",e.isEditMode||e.isPkEditMode||e.isFkEditMode),m(),f("ngIf",e.isEditMode&&0===e.currentTabIndex),m(),f("ngIf",e.isPkEditMode&&1===e.currentTabIndex),m(),f("ngIf",e.isFkEditMode&&2===e.currentTabIndex),m(),f("ngIf",e.isIndexEditMode&&-1===e.currentTabIndex),m(),f("ngIf",e.isSequenceEditMode&&-1===e.currentTabIndex)}}let Due=(()=>{class t{constructor(e,i,o,r,a,s,c,u){this.data=e,this.dialog=i,this.snackbar=o,this.conversion=r,this.sidenav=a,this.tableUpdatePubSub=s,this.fb=c,this.fetchSerice=u,this.currentObject=null,this.typeMap={},this.defaultTypeMap={},this.autoGenMap={},this.ddlStmts={},this.fkData=[],this.tableData=[],this.currentDatabase="spanner",this.indexData=[],this.sequenceData={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.updateSidebar=new Ne,this.ObjectExplorerNodeType=jt,this.conv={},this.interleaveParentName=null,this.localTableData=[],this.localIndexData=[],this.localSequenceData={},this.isMiddleColumnCollapse=!1,this.isPostgreSQLDialect=!1,this.processedAutoGenMap={},this.sequenceKinds=[],this.autoGenSupported=!1,this.foreignKeyActionsSupported=!1,this.srcDisplayedColumns=["srcOrder","srcColName","srcDataType","srcColMaxLength","srcIsPk","srcIsNotNull"],this.spDisplayedColumns=["spColName","spDataType","spColMaxLength","spIsPk","spIsNotNull","dropButton"],this.displayedFkColumns=["srcName","srcColumns","srcReferTable","srcReferColumns","spName","spColumns","spReferTable","spReferColumns","dropButton"],this.displayedPkColumns=["srcOrder","srcColName","srcDataType","srcIsPk","srcIsNotNull","spOrder","spColName","spDataType","spIsPk","spIsNotNull","dropButton"],this.indexDisplayedColumns=["srcIndexColName","srcSortBy","srcIndexOrder","spIndexColName","spSortBy","spIndexOrder","dropButton"],this.sequenceDisplayedColumns=["spSeqName","spSequenceKind","spSkipRangeMin","spSkipRangeMax","spStartWithCounter"],this.spDataSource=[],this.srcDataSource=[],this.fkDataSource=[],this.pkDataSource=[],this.pkData=[],this.isPkEditMode=!1,this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isObjectSelected=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.pkArray=this.fb.array([]),this.fkArray=this.fb.array([]),this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.currentTabIndex=0,this.addedColumnName="",this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.indexColumnNames=[],this.shardIdCol="",this.addColumnForm=new ti({columnName:new U("",[ee.required])}),this.addIndexKeyForm=new ti({columnName:new U("",[ee.required]),ascOrDesc:new U("",[ee.required])}),this.addedPkColumnName="",this.addPkColumnForm=new ti({columnName:new U("",[ee.required])}),this.pkObj={},this.dataTypesWithColLen=In.DataTypes,this.spColspan=6,this.srcColspan=6}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),this.autoGenSupported=kN.includes(this.srcDbName),(this.srcDbName==ir.MySQL||this.srcDbName==ir.Postgres)&&(this.foreignKeyActionsSupported=!0)}ngOnChanges(e){this.fkData=e.fkData?.currentValue||this.fkData,this.currentObject=e.currentObject?.currentValue||this.currentObject,this.tableData=e.tableData?.currentValue||this.tableData,this.indexData=e.indexData?.currentValue||this.indexData,this.sequenceData=e.sequenceData?.currentValue||this.sequenceData,this.currentDatabase=e.currentDatabase?.currentValue||this.currentDatabase,this.currentTabIndex=this.currentObject?.type===jt.Index||this.currentObject?.type===jt.Sequence?-1:0,this.isObjectSelected=!!this.currentObject,this.pkData=this.conversion.getPkMapping(this.tableData),this.interleaveParentName=this.getInterleaveParentFromConv(),this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isPkEditMode=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.interleaveParentName=this.getInterleaveParentFromConv(),this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.localIndexData=JSON.parse(JSON.stringify(this.indexData)),this.localSequenceData=JSON.parse(JSON.stringify(this.sequenceData)),this.srcDbName==ir.MySQL&&!this.spDisplayedColumns.includes("spAutoGen")&&(this.spDisplayedColumns.splice(2,0,"spAutoGen"),this.displayedPkColumns.splice(8,0,"spAutoGen"),this.srcDisplayedColumns.splice(2,0,"srcAutoGen"),this.displayedPkColumns.splice(2,0,"srcAutoGen"),this.spColspan++,this.srcColspan++),this.foreignKeyActionsSupported&&!this.displayedFkColumns.includes("srcOnDelete")&&(this.displayedFkColumns.splice(4,0,"srcOnDelete","srcOnUpdate"),this.displayedFkColumns.splice(10,0,"spOnDelete","spOnUpdate")),this.currentObject?.type===jt.Table?(this.checkIsInterleave(),this.interleaveObj=this.data.tableInterleaveStatus.subscribe(i=>{this.interleaveStatus=i}),this.setSrcTableRows(),this.setSpTableRows(),this.setColumnsToAdd(),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.setFkRows(),this.updateSpTableSuggestion(),this.setShardIdColumn(),this.processedAutoGenMap=IN(this.autoGenMap)):this.currentObject?.type===jt.Index?(this.indexOrderValidation(),this.setIndexRows()):this.currentObject?.type===jt.Sequence&&(this.setSequence(),this.fetchSerice.getSequenceKind().subscribe(i=>{this.sequenceKinds=i})),this.data.getSummary()}setSpTableRows(){this.spRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(e.spOrder){let i=new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength,[ee.required]),spAutoGen:new U(e.spAutoGen)});this.dataTypesWithColLen.indexOf(e.spDataType.toString())>-1?(i.get("spColMaxLength")?.setValidators([ee.required,ee.pattern("([1-9][0-9]*|MAX)")]),(void 0===e.spColMaxLength||"MAX"!==e.spColMaxLength&&(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.ByteMaxLength))&&i.get("spColMaxLength")?.setValue("MAX")):i.controls.spColMaxLength.clearValidators(),i.controls.spColMaxLength.updateValueAndValidity(),this.spRowArray.push(i)}}),this.spDataSource=this.spRowArray.controls}setSrcTableRows(){this.srcRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(""!=e.spColName)this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.spOrder),spColName:new U(e.spColName),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength),spAutoGen:new U(e.spAutoGen)}));else{let i="",o=e.srcColMaxLength;void 0===this.defaultTypeMap[e.srcDataType]?(i="STRING",o="MAX"):i=this.defaultTypeMap[e.srcDataType].Name,""==o&&("STRING"==i||"BYTES"==i)&&(o="MAX"),this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.srcColName),spDataType:new U(i),spIsPk:new U(e.srcIsPk),spIsNotNull:new U(e.srcIsNotNull),spColMaxLength:new U(o),spAutoGen:new U(e.spAutoGen)}))}}),this.srcDataSource=this.srcRowArray.controls}setColumnsToAdd(){this.localTableData.forEach(e=>{e.spColName||this.srcRowArray.value.forEach(i=>{e.srcColName==i.srcColName&&""!=i.srcColName&&(this.droppedColumns.push(i),this.droppedSourceColumns.push(i.srcColName))})})}toggleEdit(){this.currentTabIndex=0,this.isEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.setSpTableRows(),this.isEditMode=!1):this.isEditMode=!0}saveColumnTable(){this.isEditMode=!1;let i,e={UpdateCols:{}};this.conversion.pgSQLToStandardTypeTypeMap.subscribe(o=>{i=o}),this.spRowArray.value.forEach((o,r)=>{for(let a=0;aIn.StringMaxLength||"BYTES"===o.spDataType&&"number"==typeof o.spColMaxLength&&o.spColMaxLength>In.ByteMaxLength)&&(o.spColMaxLength="MAX"),"number"==typeof o.spColMaxLength&&(o.spColMaxLength=o.spColMaxLength.toString()),"STRING"!=o.spDataType&&"BYTES"!=o.spDataType&&"VARCHAR"!=o.spDataType&&(o.spColMaxLength=""),o.srcId==this.tableData[a].srcId&&""!=this.tableData[a].srcId){e.UpdateCols[this.tableData[a].srcId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen};break}o.spId==this.tableData[a].spId&&(e.UpdateCols[this.tableData[a].spId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen})}}),this.droppedColumns.forEach(o=>{e.UpdateCols[o.spId]={Add:!1,Rename:"",NotNull:"",Removed:!0,ToType:"",MaxColLength:"",AutoGen:{Name:"",GenerationType:""}}}),this.data.reviewTableUpdate(this.currentObject.id,e).subscribe({next:o=>{""==o?(this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("reviewChanges"),this.tableUpdatePubSub.setTableUpdateDetail({tableName:this.currentObject.name,tableId:this.currentObject.id,updateDetail:e}),this.isEditMode=!0):(this.dialog.open(Uo,{data:{message:o,type:"error"},maxWidth:"500px"}),this.isEditMode=!0)}})}addNewColumn(){this.dialog.open(Gae,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{dialect:this.conv.SpDialect,tableId:this.currentObject?.id}})}addNewSequence(){this.dialog.open(FN,MN),this.updateSidebar.emit(!0)}setColumn(e){this.addedColumnName=e}restoreColumn(){let e=this.tableData.map(r=>r.srcColName).indexOf(this.addedColumnName),i=this.droppedColumns.map(r=>r.srcColName).indexOf(this.addedColumnName);this.localTableData[e].spColName=this.droppedColumns[i].spColName,this.localTableData[e].spDataType=this.droppedColumns[i].spDataType,this.localTableData[e].spOrder=-1,this.localTableData[e].spIsPk=this.droppedColumns[i].spIsPk,this.localTableData[e].spIsNotNull=this.droppedColumns[i].spIsNotNull,this.localTableData[e].spColMaxLength=this.droppedColumns[i].spColMaxLength,this.localTableData[e].spAutoGen=this.droppedColumns[i].spAutoGen;let o=this.droppedColumns.map(r=>r.spColName).indexOf(this.addedColumnName);o>-1&&(this.droppedColumns.splice(o,1),this.droppedSourceColumns.indexOf(this.addedColumnName)>-1&&this.droppedSourceColumns.splice(this.droppedSourceColumns.indexOf(this.addedColumnName),1)),this.setSpTableRows()}dropColumn(e){let i=e.get("srcColName").value,o=e.get("srcId").value,r=e.get("spId").value,a=""!=o?o:r,s=e.get("spColName").value,c=this.getAssociatedIndexs(a);if(this.checkIfPkColumn(a)||0!=c.length){let u="",p="",g="";this.checkIfPkColumn(a)&&(u=" Primary key"),0!=c.length&&(p=` Index ${c}`),""!=u&&""!=p&&(g=" and"),this.dialog.open(Uo,{data:{message:`Column ${s} is a part of${u}${g}${p}. Remove the dependencies from respective tabs before dropping the Column. `,type:"error"},maxWidth:"500px"})}else this.spRowArray.value.forEach((u,p)=>{u.spId===r&&this.droppedColumns.push(u)}),this.dropColumnFromUI(r),""!==i&&this.droppedSourceColumns.push(i)}checkIfPkColumn(e){let i=!1;return null!=this.conv.SpSchema[this.currentObject.id].PrimaryKeys&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(o=>o.ColId).includes(e)&&(i=!0),i}setShardIdColumn(){void 0!==this.conv.SpSchema[this.currentObject.id]&&(this.shardIdCol=this.conv.SpSchema[this.currentObject.id].ShardIdColumn)}getAssociatedIndexs(e){let i=[];return null!=this.conv.SpSchema[this.currentObject.id].Indexes&&this.conv.SpSchema[this.currentObject.id].Indexes.forEach(o=>{o.Keys.map(r=>r.ColId).includes(e)&&i.push(o.Name)}),i}dropColumnFromUI(e){this.localTableData.forEach((i,o)=>{i.spId==e&&(i.spColName="",i.spDataType="",i.spIsNotNull=!1,i.spIsPk=!1,i.spOrder="",i.spColMaxLength="",i.spAutoGen={Name:"",GenerationType:""})}),this.setSpTableRows()}updateSpTableSuggestion(){this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.localTableData.forEach(e=>{const i=e.srcDataType,o=e.spDataType;let r="";this.typeMap[i]?.forEach(a=>{o==a.DiplayT&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay.push(""!==r),this.spTableSuggestion.push(r)})}spTableEditSuggestionHandler(e,i){let r="";this.typeMap[this.localTableData[e].srcDataType].forEach(a=>{i==a.T&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay[e]=""!==r,this.spTableSuggestion[e]=r}compareAutoGen(e,i){return e&&i?e.Name===i.Name&&e.GenerationType===i.GenerationType:e===i}setPkRows(){this.pkArray=this.fb.array([]),this.pkOrderValidation();var e=new Array,i=new Array;this.pkData.forEach(o=>{o.srcIsPk&&e.push({srcColName:o.srcColName,srcDataType:o.srcDataType,srcIsNotNull:o.srcIsNotNull,srcIsPk:o.srcIsPk,srcOrder:o.srcOrder,srcId:o.srcId,srcAutoGen:o.srcAutoGen}),o.spIsPk&&i.push({spColName:o.spColName,spDataType:o.spDataType,spIsNotNull:o.spIsNotNull,spIsPk:o.spIsPk,spOrder:o.spOrder,spId:o.spId,spAutoGen:o.spAutoGen})}),i.sort((o,r)=>o.spOrder-r.spOrder);for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);or.spColName).indexOf(this.addedPkColumnName),i=this.localTableData[e],o=1;this.localTableData[e].spIsPk=!0,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),e=this.pkData.findIndex(r=>r.srcId===i.srcId||r.spId==i.spId),this.pkArray.value.forEach(r=>{r.spIsPk&&(o+=1);for(let a=0;a{i.spIsPk&&e.push(i.spColName)});for(let i=0;i{if(this.pkData[i].spId===this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].ColId)this.pkData[i].spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].Order;else{let o=this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);e.spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[o]?.Order}}:(e,i)=>{let o=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);-1!==o&&(e.spOrder=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys[o].Order)})}pkOrderValidation(){let e=this.pkData.filter(i=>i.spIsPk).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.pkData.forEach(r=>{r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{"number"==typeof o.spOrder&&o.spOrder{o.spIsPk&&i.push({ColId:o.spId,Desc:typeof this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId)<"u"&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId).Desc,Order:parseInt(o.spOrder)})}),this.pkObj.TableId=e,this.pkObj.Columns=i}togglePkEdit(){this.currentTabIndex=1,this.isPkEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.pkData=this.conversion.getPkMapping(this.tableData),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.isPkEditMode=!1):this.isPkEditMode=!0}savePk(){if(this.pkArray.value.forEach(e=>{for(let i=0;i{o&&this.data.removeInterleave(""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.currentObject.id:this.conv.SpSchema[e].Id).pipe(Pt(1)).subscribe(a=>{this.updatePk()})}):this.updatePk()}}updatePk(){this.isPkEditMode=!1,this.data.updatePk(this.pkObj).subscribe({next:e=>{""==e?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:e,type:"error"},maxWidth:"500px"}),this.isPkEditMode=!0)}})}dropPk(e){let i=this.localTableData.map(a=>a.spColName).indexOf(e.value.spColName);this.localTableData[i].spId==(this.conv.SyntheticPKeys[this.currentObject.id]?this.conv.SyntheticPKeys[this.currentObject.id].ColId:"")?this.dialog.open(Uo,{data:{message:"Removing this synthetic id column from primary key will drop the column from the table",title:"Confirm removal of synthetic id",type:"warning"},maxWidth:"500px"}).afterClosed().subscribe(s=>{s&&this.dropPkHelper(i,e.value.spOrder)}):this.dropPkHelper(i,e.value.spOrder)}dropPkHelper(e,i){this.localTableData[e].spIsPk=!1,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),this.pkArray.value.forEach(o=>{for(let r=0;r{"number"==typeof o.spOrder&&o.spOrder>i&&(o.spOrder=Number(o.spOrder)-1)}),this.setAddPkColumnList(),this.setPkRows()}setFkRows(){this.fkArray=this.fb.array([]);var e=new Array,i=new Array;this.fkData.forEach(o=>{e.push({srcName:o.srcName,srcColumns:o.srcColumns,srcRefTable:o.srcReferTable,srcRefColumns:o.srcReferColumns,srcOnDelete:o.srcOnDelete,srcOnUpdate:o.srcOnUpdate,Id:o.srcFkId}),""!=o.spName&&i.push({spName:o.spName,spColumns:o.spColumns,spRefTable:o.spReferTable,spRefColumns:o.spReferColumns,spOnDelete:o.spOnDelete,spOnUpdate:o.spOnUpdate,Id:o.spFkId,spColIds:o.spColIds,spReferColumnIds:o.spReferColumnIds,spReferTableId:o.spReferTableId})});for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);o{e.push({Name:i.spName,ColIds:i.spColIds,ReferTableId:i.spReferTableId,ReferColumnIds:i.spReferColumnIds,OnDelete:i.spOnDelete,OnUpdate:i.spOnUpdate,Id:i.spFkId})}),this.data.updateFkNames(this.currentObject.id,e).subscribe({next:i=>{""==i?this.isFkEditMode=!1:this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"})}})}dropFk(e){this.fkData.forEach(i=>{i.spName==e.get("spName").value&&(i.spName="",i.spColumns=[],i.spReferTable="",i.spReferColumns=[],i.spColIds=[],i.spReferColumnIds=[],i.spReferTableId="",i.spOnDelete="",i.spOnUpdate="")}),this.setFkRows()}getRemovedFkIndex(e){let i=-1;return this.fkArray.value.forEach((o,r)=>{o.spName===e.get("spName").value&&(i=r)}),i}removeInterleave(){this.data.removeInterleave(this.currentObject.id).pipe(Pt(1)).subscribe(i=>{""===i&&this.snackbar.openSnackBar("Interleave removed and foreign key restored successfully","Close",5)})}checkIsInterleave(){this.currentObject&&!this.currentObject?.isDeleted&&this.currentObject?.isSpannerNode&&this.data.getInterleaveConversionForATable(this.currentObject.id)}setInterleave(){this.data.setInterleave(this.currentObject.id)}getInterleaveParentFromConv(){return this.currentObject?.type===jt.Table&&this.currentObject.isSpannerNode&&!this.currentObject.isDeleted&&""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentId]?.Name:null}setIndexRows(){this.spRowArray=this.fb.array([]);const e=this.localIndexData.map(i=>i.spColName?i.spColName:"").filter(i=>""!=i);this.indexColumnNames=this.conv.SpSchema[this.currentObject.parentId]?.ColIds?.filter(i=>!e.includes(this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name)).map(i=>this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name),this.localIndexData.forEach(i=>{this.spRowArray.push(new ti({srcOrder:new U(i.srcOrder),srcColName:new U(i.srcColName),srcDesc:new U(i.srcDesc),spOrder:new U(i.spOrder),spColName:new U(i.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDesc:new U(i.spDesc)}))}),this.spDataSource=this.spRowArray.controls}setIndexOrder(){this.spRowArray.value.forEach(e=>{for(let i=0;i""!=i.spColName).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.localIndexData.forEach(r=>{""!=r.spColName&&r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{o.spOrder!!i.spColId).map(i=>({ColId:i.spColId,Desc:i.spDesc,Order:i.spOrder})),Id:this.currentObject.id}),0==e[0].Keys.length?this.dropIndex():(this.data.updateIndex(this.currentObject?.parentId,e).subscribe({next:i=>{""==i?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"}),this.isIndexEditMode=!0)}}),this.addIndexKeyForm.controls.columnName.setValue(""),this.addIndexKeyForm.controls.ascOrDesc.setValue(""),this.addIndexKeyForm.markAsUntouched(),this.data.getSummary(),this.isIndexEditMode=!1)}saveSequence(){this.spRowArray.value.forEach(e=>{this.data.updateSequence({Name:e.spSeqName?e.spSeqName:"",Id:this.currentObject.id,SequenceKind:e.spSequenceKind?e.spSequenceKind:"",SkipRangeMax:e.spSkipRangeMax?e.spSkipRangeMax:"",SkipRangeMin:e.spSkipRangeMin?e.spSkipRangeMin:"",StartWithCounter:e.spStartWithCounter?e.spStartWithCounter:""}).pipe(Pt(1)).subscribe(()=>{})}),this.isSequenceEditMode=!1}dropIndex(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Index}}).afterClosed().subscribe(i=>{i===ys.Index&&(this.data.dropIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}dropSequence(){let e=Jne;e.data={name:this.currentObject?.name,type:ys.Sequence},this.dialog.open(xw,e).afterClosed().subscribe(o=>{o===ys.Sequence&&(this.data.dropSequence(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}restoreIndex(){this.data.restoreIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1)}),this.currentObject=null}dropIndexKey(e){this.localIndexData[e].srcColName?(this.localIndexData[e].spColName="",this.localIndexData[e].spColId="",this.localIndexData[e].spDesc="",this.localIndexData[e].spOrder=""):this.localIndexData.splice(e,1),this.setIndexRows()}addIndexKey(){let e=0;this.localIndexData.forEach(i=>{i.spColName&&(e+=1)}),this.localIndexData.push({spColName:this.addIndexKeyForm.value.columnName,spDesc:"desc"===this.addIndexKeyForm.value.ascOrDesc,spOrder:e+1,srcColName:"",srcDesc:void 0,srcOrder:"",srcColId:void 0,spColId:this.currentObject?this.conversion.getColIdFromSpannerColName(this.addIndexKeyForm.value.columnName,this.currentObject.parentId,this.conv):""}),this.setIndexRows()}restoreSpannerTable(){this.data.restoreTable(this.currentObject.id).pipe(Pt(1)).subscribe(e=>{""===e&&(this.isObjectSelected=!1),this.data.getConversionRate(),this.data.getDdl()}),this.currentObject=null}dropTable(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Table}}).afterClosed().subscribe(i=>{i===ys.Table&&(this.data.dropTable(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.currentObject=null)})}tabChanged(e){this.currentTabIndex=e.index}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse,this.sidenav.setMiddleColComponent(this.isMiddleColumnCollapse)}tableInterleaveWith(e){if(""!=this.conv.SpSchema[e].ParentId)return this.conv.SpSchema[e].ParentId;let i="";return Object.keys(this.conv.SpSchema).forEach(o=>{""!=this.conv.SpSchema[o].ParentId&&this.conv.SpSchema[o].ParentId==e&&(i=o)}),i}isPKPrefixModified(e,i){let o,r;this.conv.SpSchema[e].ParentId!=i?(o=this.pkObj.Columns,r=this.conv.SpSchema[i].PrimaryKeys):(r=this.pkObj.Columns,o=this.conv.SpSchema[i].PrimaryKeys);for(let a=0;a{class t{constructor(e,i){this.sidenavService=e,this.data=i,this.dataSource=[],this.currentDataSource=[],this.displayedColumns=["order","name","type","objectType","associatedObject","enabled","view"],this.currentObject=null,this.lengthOfRules=new Ne}ngOnInit(){this.dataSource=[],this.data.rule.subscribe({next:e=>{this.currentDataSource=e,this.updateRules()}})}ngOnChanges(){this.updateRules()}updateRules(){if(this.currentDataSource){let e=[],i=[];e=this.currentDataSource.filter(o=>"global_datatype_change"===o?.Type||"add_shard_id_primary_key"===o?.Type||"edit_column_max_length"===o?.Type&&"All table"===o?.AssociatedObjects),this.currentObject&&("tableName"===this.currentObject?.type||"indexName"===this.currentObject?.type)&&(i=this.currentDataSource.filter(o=>o?.AssociatedObjects===this.currentObject?.id||o?.AssociatedObjects===this.currentObject?.parentId||o?.AssociatedObjects===this.currentObject?.name||o?.AssociatedObjects===this.currentObject?.parent).map(o=>{let r="";return"tableName"===this.currentObject?.type?r=this.currentObject.name:"indexName"===this.currentObject?.type&&(r=this.currentObject.parent),o.AssociatedObjects=r,o})),this.dataSource=[...e,...i],this.lengthOfRules.emit(this.dataSource.length)}else this.dataSource=[],this.lengthOfRules.emit(0)}openSidenav(){this.sidenavService.openSidenav(),this.sidenavService.setSidenavComponent("rule"),this.sidenavService.setSidenavRuleType(""),this.sidenavService.setRuleData({}),this.sidenavService.setDisplayRuleFlag(!1)}viewSidenavRule(e){let i=[];for(let o=0;o[t],Kue=(t,n,e,i,o)=>({"middle-column-expand":t,"middle-column-collapse":n,"middle-column-full":e,display:i,hidden:o}),Zue=(t,n,e,i,o,r)=>({"right-column-half-expand":t,"right-column-full-expand":n,"right-column-collapse":e,"middle-column-hide":i,display:o,hidden:r}),jN=t=>({"blue-font-color":t});let Yue=(()=>{class t{constructor(e,i,o,r,a,s,c){this.data=e,this.conversion=i,this.dialog=o,this.sidenav=r,this.router=a,this.clickEvent=s,this.fetch=c,this.fkData=[],this.tableData=[],this.indexData=[],this.sequenceData={},this.typeMap=!1,this.defaultTypeMap=!1,this.conversionRates={},this.autoGenMap=!1,this.isLeftColumnCollapse=!1,this.isRightColumnCollapse=!0,this.isMiddleColumnCollapse=!0,this.isOfflineStatus=!1,this.spannerTree=[],this.srcTree=[],this.issuesAndSuggestionsLabel="ISSUES AND SUGGESTIONS",this.rulesLabel="RULES (0)",this.objectExplorerInitiallyRender=!1,this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0},this.currentDatabase="spanner",this.dialect="",this.currentObject=null}ngOnInit(){this.conversion.getStandardTypeToPGSQLTypemap(),this.conversion.getPGSQLToStandardTypeTypemap(),this.ddlsumconvObj=this.data.getRateTypemapAndSummary(),this.typemapObj=this.data.typeMap.subscribe(e=>{this.typeMap=e}),this.defaultTypemapObj=this.data.defaultTypeMap.subscribe(e=>{this.defaultTypeMap=e}),this.ddlObj=this.data.ddl.subscribe(e=>{this.ddlStmts=e}),this.sidenav.setMiddleColumnComponent.subscribe(e=>{this.isMiddleColumnCollapse=!e}),this.data.autoGenMap&&(this.autoGenMapObj=this.data.autoGenMap.subscribe(e=>{this.autoGenMap=e})),this.data.treeUpdate&&(this.rerenderObj=this.data.treeUpdate.subscribe(()=>{this.reRenderObjectExplorerSpanner()})),this.convObj=this.data.conv.subscribe(e=>{Object.keys(e.SrcSchema).length<=0&&this.router.navigate(["/"]);const i=this.isIndexAddedOrRemoved(e);e&&this.conv&&Object.keys(e?.SpSchema).length!=Object.keys(this.conv?.SpSchema).length&&(this.conv=e,this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc()),this.conv=e,this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),i&&this.conversionRates&&this.reRenderObjectExplorerSpanner(),!this.objectExplorerInitiallyRender&&this.conversionRates&&(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0),this.currentObject&&this.currentObject.type===jt.Table&&(this.fkData=this.currentObject?this.conversion.getFkMapping(this.currentObject.id,e):[],this.tableData=this.currentObject?this.conversion.getColumnMapping(this.currentObject.id,e):[]),this.currentObject&&this.currentObject?.type===jt.Index&&!i&&(this.indexData=this.conversion.getIndexMapping(this.currentObject.parentId,this.conv,this.currentObject.id)),this.dialect="postgresql"===this.conv.SpDialect?"PostgreSQL":"Google Standard SQL"}),this.converObj=this.data.conversionRate.subscribe(e=>{this.conversionRates=e,this.updateConversionRatePercentages(),this.conv?(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0):this.objectExplorerInitiallyRender=!1}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}})}ngOnDestroy(){this.typemapObj.unsubscribe(),this.convObj.unsubscribe(),this.ddlObj.unsubscribe(),this.ddlsumconvObj.unsubscribe(),this.autoGenMapObj&&this.autoGenMapObj.unsubscribe(),this.rerenderObj&&this.rerenderObj.unsubscribe()}updateConversionRatePercentages(){let e=Object.keys(this.conversionRates).length;this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0};for(const i in this.conversionRates)"NONE"===this.conversionRates[i]||"EXCELLENT"===this.conversionRates[i]?this.conversionRateCount.good+=1:"GOOD"===this.conversionRates[i]||"OK"===this.conversionRates[i]?this.conversionRateCount.ok+=1:this.conversionRateCount.bad+=1;if(e>0)for(let i in this.conversionRatePercentages)this.conversionRatePercentages[i]=Number((this.conversionRateCount[i]/e*100).toFixed(2))}reRenderObjectExplorerSpanner(){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates)}reRenderObjectExplorerSrc(){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates)}changeCurrentObject(e){e.type===jt.Table?(this.currentObject=e,this.tableData=this.conversion.getColumnMapping(this.currentObject.id,this.conv),this.fkData=[],this.fkData=this.conversion.getFkMapping(this.currentObject.id,this.conv)):e.type===jt.Index?(this.currentObject=e,this.indexData=this.conversion.getIndexMapping(e.parentId,this.conv,e.id)):e.type===jt.Sequence?(this.currentObject=e,this.sequenceData=this.conversion.getSequenceMapping(e.id,this.conv)):this.currentObject=null}changeCurrentDatabase(e){this.currentDatabase=e}updateIssuesLabel(e){setTimeout(()=>{this.issuesAndSuggestionsLabel=`ISSUES AND SUGGESTIONS (${e})`})}updateRulesLabel(e){setTimeout(()=>{this.rulesLabel=`RULES (${e})`})}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse}rightColumnToggle(){this.isRightColumnCollapse=!this.isRightColumnCollapse}openAssessment(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("assessment");let e="";if(localStorage.getItem(Wi.Type)==Jn.DirectConnect){let r=JSON.parse(localStorage.getItem(Wi.Config));e=r?.hostName+" : "+r?.port}else e=this.conv.DatabaseName;this.clickEvent.setViewAssesmentData({srcDbType:this.srcDbName,connectionDetail:e,conversionRates:this.conversionRateCount})}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}downloadArtifacts(){let e=new RN,i=`${this.conv.DatabaseName}`;this.fetch.getDStructuredReport().subscribe({next:o=>{let r=JSON.stringify(o).replace(/9223372036854776000/g,"9223372036854775807");e.file(i+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(i+"_migration_textReport.txt",s),this.fetch.getDSpannerDDL().subscribe({next:c=>{e.file(i+"_spannerDDL.txt",c);let u=JSON.stringify(this.conv).replace(/9223372036854776000/g,"9223372036854775807");e.file(`${this.conv.SessionName}_${this.conv.DatabaseType}_${i}.json`,u),e.generateAsync({type:"blob"}).then(g=>{var b=document.createElement("a");b.href=URL.createObjectURL(g),b.download=`${i}_artifacts`,b.click()})}})}})}})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),e.download=`${this.conv.DatabaseName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_migration_textReport.txt`,e.click()}})}downloadDDL(){var e=document.createElement("a");this.fetch.getDSpannerDDL().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_spannerDDL.txt`,e.click()}})}updateSpannerTable(e){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates,e.text,e.order)}updateSrcTable(e){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates,e.text,e.order)}isIndexAddedOrRemoved(e){if(this.conv){let i=0,o=0;return Object.entries(this.conv.SpSchema).forEach(r=>{i+=r[1].Indexes?r[1].Indexes.length:0}),Object.entries(e.SpSchema).forEach(r=>{o+=r[1].Indexes?r[1].Indexes.length:0}),i!==o}return!1}prepareMigration(){this.fetch.getTableWithErrors().subscribe({next:e=>{if(null!=e&&0!=e.length){let i="Please fix the errors for the following tables to move ahead: "+e.map(o=>o.Name).join(", ");this.dialog.open(Uo,{data:{message:i,type:"error",title:"Error in Spanner Draft"},maxWidth:"500px"})}else this.isOfflineStatus?this.dialog.open(Uo,{data:{message:"Please configure spanner project id and instance id to proceed",type:"error",title:"Configure Spanner"},maxWidth:"500px"}):0==Object.keys(this.conv.SpSchema).length?this.dialog.open(Uo,{data:{message:"Please restore some table(s) to proceed with the migration",type:"error",title:"All tables skipped"},maxWidth:"500px"}):this.router.navigate(["/prepare-migration"])}})}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(pc),_(Hr),_(eo),_(Rn),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-workspace"]],decls:57,vars:61,consts:[[1,"header"],[1,"breadcrumb","vertical-center"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],[1,"header_action"],["matTooltip","Connect to a spanner instance to run migration",3,"matTooltipDisabled"],["mat-button","",3,"click"],["mat-button","",3,"click",4,"ngIf"],[1,"artifactsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],[1,"container"],[1,"summary"],[1,"spanner-tab-link",3,"click"],[1,"columns"],[1,"column-left",3,"ngClass"],[3,"spannerTree","srcTree","srcDbName","selectedDatabase","selectObject","updateSpannerTable","updateSrcTable","leftCollaspe","middleCollapse"],[1,"column-middle",3,"ngClass"],[3,"currentObject","tableData","indexData","sequenceData","typeMap","autoGenMap","ddlStmts","fkData","currentDatabase","defaultTypeMap","updateSidebar"],[1,"column-right",3,"ngClass"],[3,"ngClass","label"],[3,"currentObject","changeIssuesLabel"],[3,"currentObject","lengthOfRules"],["id","right-column-toggle-button",3,"click"],[3,"ngClass"]],template:function(i,o){if(1&i&&(d(0,"div")(1,"div",0)(2,"div",1)(3,"a",2),h(4,"Select Source"),l(),d(5,"span"),h(6,">"),l(),d(7,"a",3)(8,"b"),h(9),l()()(),d(10,"div",4)(11,"span",5)(12,"button",6),A("click",function(){return o.prepareMigration()}),h(13," PREPARE MIGRATION "),l()(),d(14,"button",6),A("click",function(){return o.openAssessment()}),h(15,"VIEW ASSESSMENT"),l(),y(16,Wue,2,0,"button",7),d(17,"span",8)(18,"button",9),A("click",function(){return o.downloadArtifacts()}),h(19," DOWNLOAD ARTIFACTS "),l(),d(20,"button",10)(21,"mat-icon",11),h(22,"expand_more"),l()(),d(23,"mat-menu",12,13)(25,"button",14),A("click",function(){return o.downloadTextReport()}),h(26,"Download Text Report"),l(),d(27,"button",14),A("click",function(){return o.downloadStructuredReport()}),h(28,"Download Structured Report"),l(),d(29,"button",14),A("click",function(){return o.downloadSession()}),h(30,"Download Session File"),l(),d(31,"button",14),A("click",function(){return o.downloadDDL()}),h(32,"Download Spanner DDL"),l()()()()(),d(33,"div",15)(34,"div",16),h(35),D(36,"br"),h(37," To make schema changes go to "),d(38,"a",17),A("click",function(){return o.spannerTab()}),h(39,"Spanner Draft"),l(),h(40," pane. "),l()(),d(41,"div",18)(42,"div",19)(43,"app-object-explorer",20),A("selectedDatabase",function(a){return o.changeCurrentDatabase(a)})("selectObject",function(a){return o.changeCurrentObject(a)})("updateSpannerTable",function(a){return o.updateSpannerTable(a)})("updateSrcTable",function(a){return o.updateSrcTable(a)})("leftCollaspe",function(){return o.leftColumnToggle()})("middleCollapse",function(){return o.middleColumnToggle()}),l()(),d(44,"div",21)(45,"app-object-detail",22),A("updateSidebar",function(){return o.reRenderObjectExplorerSpanner()}),l()(),d(46,"div",23)(47,"mat-tab-group")(48,"mat-tab",24)(49,"app-summary",25),A("changeIssuesLabel",function(a){return o.updateIssuesLabel(a)}),l()(),d(50,"mat-tab",24)(51,"app-rule",26),A("lengthOfRules",function(a){return o.updateRulesLabel(a)}),l()()(),d(52,"button",27),A("click",function(){return o.rightColumnToggle()}),d(53,"mat-icon",28),h(54,"first_page"),l(),d(55,"mat-icon",28),h(56,"last_page"),l()()()()()),2&i){const r=Ft(24);m(3),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(2),xe("Configure Schema (",o.dialect," Dialect)"),m(2),f("matTooltipDisabled",!o.isOfflineStatus),m(5),f("ngIf",!o.isOfflineStatus),m(4),f("matMenuTriggerFor",r),m(15),wv(" Estimation for ",o.srcDbName.toUpperCase()," to Spanner conversion: ",o.conversionRatePercentages.good,"% of tables can be converted automatically, ",o.conversionRatePercentages.ok,"% requires minimal conversion changes and ",o.conversionRatePercentages.bad,"% requires high complexity conversion changes. "),m(7),f("ngClass",hi(34,Dh,o.isLeftColumnCollapse?"left-column-collapse":"left-column-expand")),m(),f("spannerTree",o.spannerTree)("srcTree",o.srcTree)("srcDbName",o.srcDbName),m(),f("ngClass",function UM(t,n,e,i,o,r,a,s){const c=no()+t,u=be(),p=Wo(u,c,e,i,o,r);return tn(u,c+4,a)||p?Nr(u,c+5,s?n.call(s,e,i,o,r,a):n(e,i,o,r,a)):Xd(u,c+5)}(36,Kue,o.isLeftColumnCollapse,!o.isLeftColumnCollapse,!o.isMiddleColumnCollapse,o.isRightColumnCollapse,!o.isRightColumnCollapse)),m(),f("currentObject",o.currentObject)("tableData",o.tableData)("indexData",o.indexData)("sequenceData",o.sequenceData)("typeMap",o.typeMap)("autoGenMap",o.autoGenMap)("ddlStmts",o.ddlStmts)("fkData",o.fkData)("currentDatabase",o.currentDatabase)("defaultTypeMap",o.defaultTypeMap),m(),f("ngClass",function $M(t,n,e,i,o,r,a,s,c){const u=no()+t,p=be(),g=Wo(p,u,e,i,o,r);return js(p,u+4,a,s)||g?Nr(p,u+6,c?n.call(c,e,i,o,r,a,s):n(e,i,o,r,a,s)):Xd(p,u+6)}(42,Zue,!o.isRightColumnCollapse&&!o.isLeftColumnCollapse,!o.isRightColumnCollapse&&o.isLeftColumnCollapse,o.isRightColumnCollapse,!o.isMiddleColumnCollapse,o.isMiddleColumnCollapse,!o.isMiddleColumnCollapse)),m(2),f("ngClass",hi(51,jN,hi(49,Dh,o.updateIssuesLabel)))("label",o.issuesAndSuggestionsLabel),m(),f("currentObject",o.currentObject),m(),f("ngClass",hi(55,jN,hi(53,Dh,o.updateRulesLabel)))("label",o.rulesLabel),m(),f("currentObject",o.currentObject),m(2),f("ngClass",hi(57,Dh,o.isRightColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(59,Dh,o.isRightColumnCollapse?"hidden":"display"))}},dependencies:[yr,It,qr,zE,Yt,Mi,jl,wa,zl,eg,BC,vn,Bre,Pae,Due,que],styles:["app-object-detail[_ngcontent-%COMP%]{height:100%}.vertical-center[_ngcontent-%COMP%]{display:flex;align-items:center}.columns[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;border-top:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3;height:calc(100vh - 222px)}.artifactsButtons[_ngcontent-%COMP%]{white-space:nowrap}.container[_ngcontent-%COMP%]{padding:7px 20px;margin-bottom:20px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{font-weight:lighter}.container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 5px}.column-left[_ngcontent-%COMP%]{overflow:auto}.column-middle[_ngcontent-%COMP%]{width:48%;border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3;overflow:auto}.column-right[_ngcontent-%COMP%]{width:26%;position:relative;overflow:auto}.left-column-collapse[_ngcontent-%COMP%]{width:3%}.left-column-expand[_ngcontent-%COMP%]{width:26%}.middle-column-collapse[_ngcontent-%COMP%]{width:48%}.middle-column-expand[_ngcontent-%COMP%]{width:71%}.right-column-half-expand[_ngcontent-%COMP%]{width:80%}.right-column-collapse[_ngcontent-%COMP%]{width:26%}.right-column-full-expand[_ngcontent-%COMP%]{width:97%}.middle-column-hide[_ngcontent-%COMP%]{width:0%}.middle-column-full[_ngcontent-%COMP%]{width:100%}#right-column-toggle-button[_ngcontent-%COMP%]{border:none;background-color:inherit;position:absolute;top:10px;right:7px;z-index:100}#right-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer} .column-right .mat-mdc-tab-label .mat-mdc-tab-label-content{font-size:.8rem} .column-right .mat-mdc-tab-label{min-width:25px!important;padding:10px} .column-right .mat-mdc-tab-label.mat-mdc-tab-label-active{min-width:25px!important;padding:7px} .column-right .mat-mdc-tab-label-container{margin-right:40px} .column-right .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-right .mat-mdc-tab-header-pagination-after{margin-right:40px}.split-button-left[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:none;padding-right:1px}.split-button-right[_ngcontent-%COMP%]{box-shadow:none;width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;margin-right:7px}"]})}return t})(),Que=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.dialogRef=i,this.data=o,this.region="",this.spannerInstance="",this.dialect="",this.region=o.Region,this.spannerInstance=o.Instance,this.dialect=o.Dialect,this.targetDetailsForm=this.formBuilder.group({targetDb:["",[ee.required,ee.pattern("^[a-z][a-z0-9-_]{0,28}[a-z0-9]$")]]}),this.targetDetailsForm.setValue({targetDb:localStorage.getItem(yt.TargetDB)})}ngOnInit(){}updateTargetDetails(){let e=this.targetDetailsForm.value;localStorage.setItem(yt.TargetDB,e.targetDb),localStorage.setItem(yt.Dialect,e.dialect),localStorage.setItem(he.IsTargetDetailSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-target-details-form"]],decls:35,vars:5,consts:[["mat-dialog-content",""],[1,"target-detail-form",3,"formGroup"],["matTooltip","Schema & Schema and data migration: Specify new database name or existing database with empty schema. Data migration: Specify existing database with tables already created",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Target Database","type","text","formControlName","targetDb","ng-value","targetDetails.TargetDB"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Spanner Database Details"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"Spanner Database"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Min. 2 characters and Max. 30 characters. "),d(13,"a",6),h(14,"More Details"),l()()()(),D(15,"br")(16,"br"),d(17,"b"),h(18,"Region:"),l(),h(19),D(20,"br")(21,"br"),d(22,"b"),h(23,"Spanner Instance:"),l(),h(24),D(25,"br")(26,"br"),d(27,"b"),h(28,"Dialect:"),l(),h(29),l(),d(30,"div",7)(31,"button",8),h(32,"Cancel"),l(),d(33,"button",9),A("click",function(){return o.updateTargetDetails()}),h(34," Save "),l()()()),2&i&&(m(),f("formGroup",o.targetDetailsForm),m(18),xe(" ",o.region," "),m(5),xe(" ",o.spannerInstance," "),m(5),xe(" ",o.dialect," "),m(4),f("disabled",!o.targetDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.container[_ngcontent-%COMP%]{white-space:nowrap;overflow:auto;text-overflow:ellipsis}"]})}return t})();function Xue(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",10),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Jue(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function ehe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Select connection profile"),l(),d(4,"mat-select",12),y(5,Jue,2,2,"mat-option",13),l()()()),2&t){const e=C();m(5),f("ngForOf",e.profileList)}}function the(t,n){1&t&&(d(0,"div")(1,"mat-form-field",15)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",16),l()())}function ihe(t,n){1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Replication slot"),l(),D(4,"input",17),l(),D(5,"br"),d(6,"mat-form-field",11)(7,"mat-label"),h(8,"Publication name"),l(),D(9,"input",18),l()())}function nhe(t,n){if(1&t&&(d(0,"li",24)(1,"span",25),h(2),l(),d(3,"span")(4,"mat-icon",26),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function ohe(t,n){if(1&t&&(d(0,"div",27)(1,"span",25),h(2,"Test connection failed"),l(),d(3,"mat-icon",28),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorMsg)}}function rhe(t,n){1&t&&(d(0,"mat-icon",29),h(1," check_circle "),l())}function ahe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",19),h(5,"Learn More"),l()(),D(6,"br"),y(7,nhe,6,2,"li",20)(8,ohe,5,1,"div",21),D(9,"br"),d(10,"button",22),A("click",function(){return ie(e),ne(C(2).testConnection())}),h(11,"Test Connection"),l(),y(12,rhe,2,0,"mat-icon",23),l()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorMsg),m(2),f("disabled",!e.connectionProfileForm.valid),m(2),f("ngIf",e.testSuccess)}}function she(t,n){if(1&t&&(d(0,"div"),y(1,ahe,13,4,"div",6),l()),2&t){const e=C();m(),f("ngIf",e.isSource)}}let che=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.formBuilder=o,this.dialogRef=r,this.data=a,this.selectedProfile="",this.profileType="Source",this.profileList=[],this.ipList=[],this.selectedOption="new",this.profileOptions=[{value:"new",display:"Create a new connection profile"},{value:"existing",display:"Choose an existing connection profile"}],this.profileName="",this.errorMsg="",this.isSource=!1,this.sourceDatabaseType="",this.testSuccess=!1,this.testingSourceConnection=!1,this.isSource=a.IsSource,this.sourceDatabaseType=a.SourceDatabaseType,this.isSource||(this.profileType="Target"),this.connectionProfileForm=this.formBuilder.group({profileOption:["",ee.required],newProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingProfile:[],replicationSlot:[],publication:[]}),"postgres"==this.sourceDatabaseType&&this.isSource&&(this.connectionProfileForm.get("replicationSlot")?.addValidators([ee.required]),this.connectionProfileForm.controls.replicationSlot.updateValueAndValidity(),this.connectionProfileForm.get("publication")?.addValidators([ee.required]),this.connectionProfileForm.controls.publication.updateValueAndValidity()),this.getConnectionProfilesAndIps()}onItemChange(e){this.selectedOption=e,"new"==this.selectedOption?(this.connectionProfileForm.get("newProfile")?.setValidators([ee.required]),this.connectionProfileForm.controls.existingProfile.clearValidators(),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity()):(this.connectionProfileForm.controls.newProfile.clearValidators(),this.connectionProfileForm.get("existingProfile")?.addValidators([ee.required]),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity())}testConnection(){this.testingSourceConnection=!0,this.fetch.createConnectionProfile({Id:this.connectionProfileForm.value.newProfile,IsSource:this.isSource,ValidateOnly:!0}).subscribe({next:()=>{this.testingSourceConnection=!1,this.testSuccess=!0},error:o=>{this.testingSourceConnection=!1,this.testSuccess=!1,this.errorMsg=o.error}})}createConnectionProfile(){let e=this.connectionProfileForm.value;this.isSource&&(localStorage.setItem(yt.ReplicationSlot,e.replicationSlot),localStorage.setItem(yt.Publication,e.publication)),"new"===this.selectedOption?this.fetch.createConnectionProfile({Id:e.newProfile,IsSource:this.isSource,ValidateOnly:!1}).subscribe({next:()=>{this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.newProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.newProfile)),this.dialogRef.close()},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.dialogRef.close()}}):(this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.existingProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.existingProfile)),this.dialogRef.close())}ngOnInit(){}getConnectionProfilesAndIps(){this.fetch.getConnectionProfiles(this.isSource).subscribe({next:e=>{this.profileList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.isSource&&this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-connection-profile-form"]],decls:19,vars:9,consts:[["mat-dialog-content",""],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h3","header-title"],[1,"radio-button-container"],["formControlName","profileOption",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value","change"],["appearance","outline"],["formControlName","existingProfile","required","true","ng-value","selectedProfile",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter.",1,"new-connection-profile-input"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newProfile","required","true"],["matInput","","placeholder","Replication slot","type","text","formControlName","replicationSlot","required","true"],["matInput","","placeholder","Publication name","type","text","formControlName","publication","required","true"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists"],["class","connection-form-container",4,"ngFor","ngForOf"],["class","failure",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"span",2),h(3),l(),D(4,"br"),d(5,"div",3)(6,"mat-radio-group",4),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(7,Xue,2,2,"mat-radio-button",5),l()(),D(8,"br"),y(9,ehe,6,1,"div",6)(10,the,5,0,"div",6),D(11,"br"),y(12,ihe,10,0,"div",6)(13,she,2,1,"div",6),d(14,"div",7)(15,"button",8),h(16,"Cancel"),l(),d(17,"button",9),A("click",function(){return o.createConnectionProfile()}),h(18," Save "),l()()()()),2&i&&(m(),f("formGroup",o.connectionProfileForm),m(2),xe("",o.profileType," Connection Profile"),m(3),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.profileOptions),m(2),f("ngIf","existing"===o.selectedOption),m(),f("ngIf","new"===o.selectedOption),m(2),f("ngIf",o.isSource&&"postgres"==o.sourceDatabaseType),m(),f("ngIf","new"===o.selectedOption),m(4),f("disabled",!o.connectionProfileForm.valid||!o.testSuccess&&"new"===o.selectedOption&&o.isSource))},dependencies:[rn,It,Yt,Mi,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,vn,cg,lg,KC],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}"]})}return t})();function lhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",6),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function dhe(t,n){1&t&&D(0,"mat-spinner",19),2&t&&f("diameter",25)}function uhe(t,n){1&t&&(d(0,"mat-icon",20),h(1,"check_circle"),l())}function hhe(t,n){1&t&&(d(0,"mat-icon",21),h(1,"cancel"),l())}function mhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function phe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDump())}),d(2,"h4",8),h(3,"Load from database dump"),l(),h(4," Dump File "),d(5,"mat-form-field",9)(6,"mat-label"),h(7,"File path"),l(),d(8,"input",10),A("click",function(){return ie(e),ne(Ft(13).click())}),l(),y(9,dhe,1,1,"mat-spinner",11)(10,uhe,2,0,"mat-icon",12)(11,hhe,2,0,"mat-icon",13),l(),d(12,"input",14,15),A("change",function(o){return ie(e),ne(C().handleFileInput(o))}),l(),D(14,"br"),d(15,"button",16),h(16,"CANCEL"),l(),d(17,"button",17),h(18," SAVE "),l(),y(19,mhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.dumpFileForm),m(8),f("ngIf",e.uploadStart&&!e.uploadSuccess&&!e.uploadFail),m(),f("ngIf",e.uploadStart&&e.uploadSuccess),m(),f("ngIf",e.uploadStart&&e.uploadFail),m(6),f("disabled",!e.dumpFileForm.valid||!e.uploadSuccess),m(2),f("ngIf",""!=e.errorMsg)}}function fhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function ghe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDirectConnect())}),d(2,"h4",8),h(3,"Connect to Source Database"),l(),h(4," Connection Detail "),d(5,"mat-form-field",25)(6,"mat-label"),h(7,"Hostname"),l(),D(8,"input",26),l(),d(9,"mat-form-field",25)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",27),d(13,"mat-error"),h(14," Only numbers are allowed. "),l()(),D(15,"br"),d(16,"mat-form-field",25)(17,"mat-label"),h(18,"User name"),l(),D(19,"input",28),l(),d(20,"mat-form-field",25)(21,"mat-label"),h(22,"Password"),l(),D(23,"input",29),l(),D(24,"br"),d(25,"mat-form-field",25)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",30),l(),D(29,"br"),d(30,"button",16),h(31,"CANCEL"),l(),d(32,"button",17),h(33," SAVE "),l(),y(34,fhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.directConnectForm),m(31),f("disabled",!e.directConnectForm.valid),m(2),f("ngIf",""!=e.errorMsg)}}let _he=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.dataService=i,this.snack=o,this.dialogRef=r,this.data=a,this.inputOptions=[{value:Jn.DumpFile,display:"Connect via dump file"},{value:Jn.DirectConnect,display:"Connect via direct connection"}],this.selectedOption=Jn.DirectConnect,this.sourceDatabaseEngine="",this.errorMsg="",this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.dumpFileForm=new ti({filePath:new U("",[ee.required])}),this.directConnectForm=new ti({hostName:new U("",[ee.required]),port:new U("",[ee.required]),userName:new U("",[ee.required]),dbName:new U("",[ee.required]),password:new U("")}),this.sourceDatabaseEngine=a}ngOnInit(){}setSourceDBDetailsForDump(){const{filePath:e}=this.dumpFileForm.value;this.fetch.setSourceDBDetailsForDump({Driver:this.sourceDatabaseEngine,Path:e}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}setSourceDBDetailsForDirectConnect(){const{hostName:e,port:i,userName:o,password:r,dbName:a}=this.directConnectForm.value;this.fetch.setSourceDBDetailsForDirectConnect({dbEngine:this.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:c=>{this.errorMsg=c.error}})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.dumpFileForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.dataService.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}onItemChange(e){this.selectedOption=e,this.errorMsg=""}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-details-form"]],decls:7,vars:4,consts:[[1,"radio-button-container"],[1,"radio-button-group",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[1,"connect-load-database-container"],[1,"form-container"],[4,"ngIf"],[3,"value","change"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["hidden","","type","file",3,"change"],["file",""],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["class","failure",4,"ngIf"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-radio-group",1),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(2,lhe,2,2,"mat-radio-button",2),l()(),d(3,"div",3)(4,"div",4),y(5,phe,20,6,"div",5)(6,ghe,35,3,"div",5),l()()),2&i&&(m(),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.inputOptions),m(3),f("ngIf","dumpFile"===o.selectedOption),m(),f("ngIf","directConnect"===o.selectedOption))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,nC,qi,_n,Ci,_i,Bi,wi,zi,zn,vn,Nl,cg,lg,sd]})}return t})();function bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",7),D(3,"mat-spinner",8),l(),d(4,"span",9),h(5,"Cleaning up resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}let vhe=(()=>{class t{constructor(e,i,o,r){this.data=e,this.fetch=i,this.snack=o,this.dialogRef=r,this.sourceAndTargetDetails={SpannerDatabaseName:"",SpannerDatabaseUrl:"",SourceDatabaseName:"",SourceDatabaseType:""},this.cleaningUp=!1,this.sourceAndTargetDetails={SourceDatabaseName:e.SourceDatabaseName,SourceDatabaseType:e.SourceDatabaseType,SpannerDatabaseName:e.SpannerDatabaseName,SpannerDatabaseUrl:e.SpannerDatabaseUrl}}ngOnInit(){}cleanUpJobs(){this.cleaningUp=!0,this.fetch.cleanUpStreamingJobs().subscribe({next:()=>{this.cleaningUp=!1,this.snack.openSnackBar("Dataflow and datastream jobs will be cleaned up","Close"),this.dialogRef.close()},error:e=>{this.cleaningUp=!1,this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(En),_(nr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-end-migration"]],decls:46,vars:7,consts:[[1,"end-migration-dialog"],["target","_blank",3,"href"],["href","https://github.com/GoogleCloudPlatform/professional-services-data-validator","target","_blank"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close","",3,"disabled"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"End Migration"),l(),d(3,"div")(4,"b"),h(5,"Source database:"),l(),h(6),D(7,"br"),d(8,"b"),h(9,"Spanner database:"),l(),d(10,"a",1),h(11),l()(),D(12,"br"),d(13,"div")(14,"b"),h(15,"Please follow these steps to complete the migration:"),l(),d(16,"ol")(17,"li"),h(18,"Validate that the schema has been created on Spanner as per the configuration"),l(),d(19,"li"),h(20,"Validate the data has been copied from the Source to Spanner. You can use the "),d(21,"a",2),h(22,"Data Validation Tool"),l(),h(23," to help with this process."),l(),d(24,"li"),h(25,"Stop the writes to the source database. "),d(26,"b"),h(27,"This will initiate a period of downtime."),l()(),d(28,"li"),h(29,"Wait for any incremental writes on source since the validation started on Spanner to catch up with the source. This can be done by periodically checking the Spanner Database for the most recent updates on source."),l(),d(30,"li"),h(31,"Once the Source and Spanner are in sync, start the application with Spanner as the Database."),l(),d(32,"li"),h(33,"Perform smoke tests on your application to ensure it is working properly on Spanner"),l(),d(34,"li"),h(35,"Cutover the traffic to the application with Spanner as the Database. "),d(36,"b"),h(37,"This marks the end of the period of downtime"),l()(),d(38,"li"),h(39,"Cleanup the migration jobs by clicking the button below."),l()()(),y(40,bhe,7,1,"div",3),d(41,"div",4)(42,"button",5),h(43,"Cancel"),l(),d(44,"button",6),A("click",function(){return o.cleanUpJobs()}),h(45,"Clean Up"),l()()()),2&i&&(m(6),_l(" ",o.sourceAndTargetDetails.SourceDatabaseName,"(",o.sourceAndTargetDetails.SourceDatabaseType,") "),m(4),f("href",o.sourceAndTargetDetails.SpannerDatabaseUrl,qo),m(),Pe(o.sourceAndTargetDetails.SpannerDatabaseName),m(29),f("ngIf",o.cleaningUp),m(2),f("disabled",o.cleaningUp),m(2),f("disabled",o.cleaningUp))},dependencies:[It,Yt,zn,ko,sd]})}return t})(),yhe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.disablePresetFlags=!0,this.tunableFlagsForm=new ti({vpcHostProjectId:new U(e.GCPProjectID,ee.required),network:new U(""),subnetwork:new U(""),maxWorkers:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$")]),numWorkers:new U("1",[ee.required,ee.pattern("^[1-9][0-9]*$")]),machineType:new U("n1-standard-2",[ee.required]),serviceAccountEmail:new U(""),additionalUserLabels:new U("",[ee.pattern('^{("([0-9a-zA-Z_-]+)":"([0-9a-zA-Z_-]+)",?)+}$')]),kmsKeyName:new U("",[ee.pattern("^projects\\/[^\\n\\r]+\\/locations\\/[^\\n\\r]+\\/keyRings\\/[^\\n\\r]+\\/cryptoKeys\\/[^\\n\\r]+$")])}),this.presetFlagsForm=new ti({dataflowProjectId:new U(e.GCPProjectID),dataflowLocation:new U(""),gcsTemplatePath:new U("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")])}),this.presetFlagsForm.disable()}ngOnInit(){}updateDataflowDetails(){let e=this.tunableFlagsForm.value;localStorage.setItem("network",e.network),localStorage.setItem("subnetwork",e.subnetwork),localStorage.setItem("vpcHostProjectId",e.vpcHostProjectId),localStorage.setItem("maxWorkers",e.maxWorkers),localStorage.setItem("numWorkers",e.numWorkers),localStorage.setItem("serviceAccountEmail",e.serviceAccountEmail),localStorage.setItem("machineType",e.machineType),localStorage.setItem("additionalUserLabels",e.additionalUserLabels),localStorage.setItem("kmsKeyName",e.kmsKeyName),localStorage.setItem("dataflowProjectId",this.presetFlagsForm.value.dataflowProjectId),localStorage.setItem("dataflowLocation",this.presetFlagsForm.value.dataflowLocation),localStorage.setItem("gcsTemplatePath",this.presetFlagsForm.value.gcsTemplatePath),localStorage.setItem("isDataflowConfigSet","true"),this.dialofRef.close()}enablePresetFlags(){this.disablePresetFlags=!1,this.presetFlagsForm.enable()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-dataflow-form"]],decls:109,vars:16,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["matTooltip","Edit to run Dataflow in a VPC",1,"mat-row"],["appearance","outline","matTooltip","Specify the host project Id of the VPC network. For shared VPC, this needs to be edited to the correct host project id.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Host ProjectID","type","text","formControlName","vpcHostProjectId"],["href","https://cloud.google.com/vpc/docs/create-modify-vpc-networks#create-auto-network","target","_blank"],["appearance","outline","matTooltip","Specify the network name for the VPC",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Network Name","type","text","formControlName","network"],["appearance","outline","matTooltip","Specify the subnetwork name for the VPC. Provide only the subnetwork name and NOT the full URL for subnetwork.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Subnetwork Name","type","text","formControlName","subnetwork"],["matTooltip","Set performance parameters of the Dataflow job(s)",1,"mat-row"],["appearance","outline","matTooltip","Set maximum workers for the dataflow job(s). Default value: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","50","type","text","formControlName","maxWorkers"],["appearance","outline","matTooltip","Set initial number of workers for the dataflow job(s). Default value: 1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","1","type","text","formControlName","numWorkers"],["appearance","outline","matTooltip","The machine type to use for the job. Default machine type: n1-standard-2.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Machine Type","type","text","formControlName","machineType"],["href","https://cloud.google.com/compute/docs/machine-resource","target","_blank"],["appearance","outline","matTooltip","Set the service account to run the dataflow job(s) as",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Service Account Email","type","text","formControlName","serviceAccountEmail"],["appearance","outline","matTooltip",'Additional user labels to be specified for the job. Enter a json of "key": "value" pairs. Example: {"name": "wrench", "mass": "1kg", "count": "3" }.',1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Additional User Labels","type","text","formControlName","additionalUserLabels"],["appearance","outline","matTooltip","Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings //cryptoKeys/. Omit this field to use Google Managed Encryption Keys.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","KMS Key Name","type","text","formControlName","kmsKeyName"],["mat-button","",1,"edit-button",3,"disabled","click"],["appearance","outline","matTooltip","Specify the project to run the dataflow job in.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Project Id","type","text","formControlName","dataflowProjectId"],["appearance","outline","matTooltip","Specify the region to run the dataflow job in. It is recommended to keep the region same as Spanner region for performance. Example: us-central1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Location","type","text","formControlName","dataflowLocation"],["appearance","outline","matTooltip","Cloud Storage path to the template spec. Use this to run launch dataflow with custom templates. Example: gs://my-bucket/path/to/template",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","GCS Template Path","type","text","formControlName","gcsTemplatePath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Dataflow (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Dataflow."),l(),d(6,"mat-expansion-panel")(7,"mat-expansion-panel-header",2)(8,"span"),h(9,"Networking"),l()(),d(10,"div")(11,"mat-form-field",3)(12,"mat-label"),h(13,"VPC Host ProjectID"),l(),D(14,"input",4),l(),D(15,"br"),d(16,"h5"),h(17," - Provide "),d(18,"b"),h(19,"ONLY"),l(),h(20," the VPC subnetwork if unsure about what VPC network to use. Dataflow chooses the network for you. "),D(21,"br"),h(22," - If you are using an "),d(23,"a",5),h(24,"auto mode network"),l(),h(25,", provide ONLY the network name and skip the VPC subnetwork. "),l(),d(26,"mat-form-field",6)(27,"mat-label"),h(28,"VPC Network"),l(),D(29,"input",7),l(),D(30,"br"),d(31,"mat-form-field",8)(32,"mat-label"),h(33,"VPC Subnetwork"),l(),D(34,"input",9),l()()(),D(35,"br"),d(36,"mat-expansion-panel")(37,"mat-expansion-panel-header",10)(38,"span"),h(39,"Performance"),l()(),d(40,"div")(41,"mat-form-field",11)(42,"mat-label"),h(43,"Max Workers"),l(),D(44,"input",12),l(),D(45,"br"),d(46,"mat-form-field",13)(47,"mat-label"),h(48,"Initial Number of Workers"),l(),D(49,"input",14),l(),D(50,"br"),d(51,"mat-form-field",15)(52,"mat-label"),h(53,"Machine Type"),l(),D(54,"input",16),l(),d(55,"h5"),h(56,"Find the list of all machine types "),d(57,"a",17),h(58,"here"),l(),h(59,"."),l()()(),D(60,"br"),d(61,"mat-form-field",18)(62,"mat-label"),h(63,"Service Account Email"),l(),D(64,"input",19),l(),D(65,"br"),d(66,"mat-form-field",20)(67,"mat-label"),h(68,"Additional User Labels"),l(),D(69,"input",21),l(),D(70,"br"),d(71,"mat-form-field",22)(72,"mat-label"),h(73,"KMS Key Name"),l(),D(74,"input",23),l()(),D(75,"hr"),d(76,"form",1)(77,"h2"),h(78," Preset Flags "),d(79,"span")(80,"button",24),A("click",function(){return o.enablePresetFlags()}),d(81,"mat-icon"),h(82,"edit"),l(),h(83," EDIT "),l()()(),d(84,"h5"),h(85,"These flags are set by SMT by default and "),d(86,"b"),h(87,"SHOULD NOT BE"),l(),h(88," modified unless running Dataflow in a non-standard configuration. To edit these parameters, click the edit button above."),l(),D(89,"br"),d(90,"mat-form-field",25)(91,"mat-label"),h(92,"Dataflow Project Id"),l(),D(93,"input",26),l(),D(94,"br"),d(95,"mat-form-field",27)(96,"mat-label"),h(97,"Dataflow Location"),l(),D(98,"input",28),l(),D(99,"br"),d(100,"mat-form-field",29)(101,"mat-label"),h(102,"GCS Template Path"),l(),D(103,"input",30),l()(),d(104,"div",31)(105,"button",32),h(106,"Cancel"),l(),d(107,"button",33),A("click",function(){return o.updateDataflowDetails()}),h(108," Save "),l()()()),2&i&&(m(),f("formGroup",o.tunableFlagsForm),m(10),f("matTooltipPosition","right"),m(15),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("formGroup",o.presetFlagsForm),m(4),f("disabled",!o.disablePresetFlags),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(7),f("disabled",o.tunableFlagsForm.invalid||o.presetFlagsForm.invalid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,DC,bP,zn,So,ko,vn],styles:[".edit-button[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function Che(t,n){1&t&&(d(0,"mat-form-field",8)(1,"mat-label"),h(2,"Max Concurrent CDC Tasks"),l(),D(3,"input",9),l()),2&t&&f("matTooltipPosition","right")}let whe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.isCdcTuningSupported=!0,this.datastreamForm=new ti({maxConcurrentBackfillTasks:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)]),maxConcurrentCdcTasks:new U("5",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)])}),this.isCdcTuningSupported=e.sourceType!=ir.Postgres.toLowerCase()}ngOnInit(){}updateDatastreamDetails(){let e=this.datastreamForm.value;localStorage.setItem("maxConcurrentBackfillTasks",e.maxConcurrentBackfillTasks),localStorage.setItem("maxConcurrentCdcTasks",e.maxConcurrentCdcTasks),localStorage.setItem("isDatastreamConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-datastream-form"]],decls:17,vars:4,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream backfill. Default: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent Backfill Tasks","type","text","formControlName","maxConcurrentBackfillTasks"],["class","full-width","appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent CDC Tasks","type","text","formControlName","maxConcurrentCdcTasks"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Datastream (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Datastream."),l(),d(6,"mat-form-field",2)(7,"mat-label"),h(8,"Max Concurrent Backfill Tasks"),l(),D(9,"input",3),l(),D(10,"br"),y(11,Che,4,1,"mat-form-field",4),l(),d(12,"div",5)(13,"button",6),h(14,"Cancel"),l(),d(15,"button",7),A("click",function(){return o.updateDatastreamDetails()}),h(16," Save "),l()()()),2&i&&(m(),f("formGroup",o.datastreamForm),m(5),f("matTooltipPosition","right"),m(5),f("ngIf",o.isCdcTuningSupported),m(4),f("disabled",!o.datastreamForm.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function xhe(t,n){1&t&&(d(0,"mat-form-field",7)(1,"mat-label"),h(2,"TTL in days"),l(),D(3,"input",8),l()),2&t&&f("matTooltipPosition","right")}let Dhe=(()=>{class t{constructor(e){this.dialofRef=e,this.ttlInDaysSet=!1,this.gcsForm=new ti({ttlInDays:new U("",[ee.required,ee.pattern("^([1-9][0-9]*$)"),ee.min(1),ee.max(1e8)])})}ngOnInit(){}updateGcsDetails(){this.ttlInDaysSet?(localStorage.setItem("ttlInDays",this.gcsForm.value.ttlInDays),localStorage.setItem("ttlInDaysSet","true")):(localStorage.setItem("ttlInDays","0"),localStorage.setItem("ttlInDaysSet","false")),localStorage.setItem("isGcsConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-gcs-form"]],decls:15,vars:5,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["color","primary","matTooltip","Set the TTL (in days) for GCS data written by Datastream. This sets the GCS lifecycle to delete the objects after specified number of days.",3,"matTooltipPosition","checked","change"],["class","ttl-input","appearance","outline","matTooltip","Set the TTL in days",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the TTL in days",1,"ttl-input",3,"matTooltipPosition"],["matInput","","type","text","formControlName","ttlInDays"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Google Cloud Storage (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune the Cloud Storage bucket used by Datastream to store Change Records, specified by the destination connection profile"),l(),d(6,"mat-checkbox",2),A("change",function(){return o.ttlInDaysSet=!o.ttlInDaysSet}),h(7," Set TTL for data "),l(),D(8,"br"),y(9,xhe,4,1,"mat-form-field",3),l(),d(10,"div",4)(11,"button",5),h(12,"Cancel"),l(),d(13,"button",6),A("click",function(){return o.updateGcsDetails()}),h(14," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsForm),m(5),f("matTooltipPosition","right")("checked",o.ttlInDaysSet),m(3),f("ngIf",o.ttlInDaysSet),m(4),f("disabled",o.ttlInDaysSet&&o.gcsForm.invalid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn,og],styles:[".ttl-input[_ngcontent-%COMP%]{padding-left:10%}"]})}return t})(),She=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.gcloudCmd=e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-equivalent-gcloud-command"]],decls:12,vars:2,consts:[["mat-dialog-content",""],["matTooltip","This is the gcloud command to launch the dataflow job with the same parameters. Can be used to re-run a dataflow job manually in case of failure.",1,"configure"],[1,"left-text"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","color","primary",3,"cdkCopyToClipboard"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"Equivalent gcloud command line"),d(3,"mat-icon",1),h(4," info"),l()(),d(5,"span",2),h(6),l(),d(7,"div",3)(8,"button",4),h(9,"Close"),l(),d(10,"button",5),h(11,"Copy"),l()()()),2&i&&(m(6),Pe(o.gcloudCmd),m(4),f("cdkCopyToClipboard",o.gcloudCmd))},dependencies:[Yt,Mi,zn,So,ko,vn,KC]})}return t})();function khe(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Mhe(t,n){1&t&&(d(0,"div",15)(1,"mat-form-field",4)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",16,17),l()())}function The(t,n){1&t&&(d(0,"div",18)(1,"mat-form-field",19)(2,"mat-label"),h(3,"Hostname"),l(),D(4,"input",20),l(),d(5,"mat-form-field",19)(6,"mat-label"),h(7,"Port"),l(),D(8,"input",21),d(9,"mat-error"),h(10," Only numbers are allowed. "),l()(),D(11,"br"),d(12,"mat-form-field",19)(13,"mat-label"),h(14,"User name"),l(),D(15,"input",22),l(),d(16,"mat-form-field",19)(17,"mat-label"),h(18,"Password"),l(),D(19,"input",23),l(),D(20,"br"),d(21,"mat-form-field",19)(22,"mat-label"),h(23,"Database Name"),l(),D(24,"input",24),l(),D(25,"br"),d(26,"mat-form-field",19)(27,"mat-label"),h(28,"Shard ID"),l(),D(29,"input",25),l(),D(30,"br"),l())}function Ihe(t,n){if(1&t){const e=_e();d(0,"button",26),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",C().directConnectForm.invalid)}function Ehe(t,n){if(1&t&&(d(0,"div",27)(1,"span",28),h(2),l(),d(3,"mat-icon",29),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let Ohe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.dialogRef=r,this.data=a,this.errorMsg="",this.shardConnDetailsList=[],this.sourceConnDetails={dbConfigs:[],isRestoredSession:""},this.shardSessionDetails={sourceDatabaseEngine:"",isRestoredSession:""},this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.shardSessionDetails={sourceDatabaseEngine:a.sourceDatabaseEngine,isRestoredSession:a.isRestoredSession};let s={dbEngine:"",isSharded:!1,hostName:"",port:"",userName:"",password:"",dbName:""};localStorage.getItem(Wi.Type)==Jn.DirectConnect&&null!=localStorage.getItem(Wi.Config)&&(s=JSON.parse(localStorage.getItem(Wi.Config))),this.directConnectForm=new ti({inputType:new U("form",[ee.required]),textInput:new U(""),hostName:new U(s.hostName,[ee.required]),port:new U(s.port,[ee.required]),userName:new U(s.userName,[ee.required]),dbName:new U(s.dbName,[ee.required]),password:new U(s.password),shardId:new U("",[ee.required])})}ngOnInit(){this.initFromLocalStorage()}initFromLocalStorage(){}setValidators(e){if("text"==e){for(const i in this.directConnectForm.controls)this.directConnectForm.get(i)?.clearValidators(),this.directConnectForm.get(i)?.updateValueAndValidity();this.directConnectForm.get("textInput")?.setValidators([ee.required]),this.directConnectForm.controls.textInput.updateValueAndValidity()}else this.directConnectForm.get("hostName")?.setValidators([ee.required]),this.directConnectForm.controls.hostName.updateValueAndValidity(),this.directConnectForm.get("port")?.setValidators([ee.required]),this.directConnectForm.controls.port.updateValueAndValidity(),this.directConnectForm.get("userName")?.setValidators([ee.required]),this.directConnectForm.controls.userName.updateValueAndValidity(),this.directConnectForm.get("dbName")?.setValidators([ee.required]),this.directConnectForm.controls.dbName.updateValueAndValidity(),this.directConnectForm.get("password")?.setValidators([ee.required]),this.directConnectForm.controls.password.updateValueAndValidity(),this.directConnectForm.get("shardId")?.setValidators([ee.required]),this.directConnectForm.controls.shardId.updateValueAndValidity(),this.directConnectForm.controls.textInput.clearValidators(),this.directConnectForm.controls.textInput.updateValueAndValidity()}determineFormValidity(){return this.shardConnDetailsList.length>0||!!this.directConnectForm.valid}saveDetailsAndReset(){const{hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}),this.directConnectForm=new ti({inputType:new U("form",ee.required),textInput:new U(""),hostName:new U(""),port:new U(""),userName:new U(""),dbName:new U(""),password:new U(""),shardId:new U("")}),this.setValidators("form"),this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}finalizeConnDetails(){if("form"===this.directConnectForm.value.inputType){const{hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}),this.sourceConnDetails.dbConfigs=this.shardConnDetailsList}else{try{this.sourceConnDetails.dbConfigs=JSON.parse(this.directConnectForm.value.textInput)}catch{throw this.errorMsg="Unable to parse JSON",new Error(this.errorMsg)}this.sourceConnDetails.dbConfigs.forEach(i=>{i.dbEngine=this.shardSessionDetails.sourceDatabaseEngine})}this.sourceConnDetails.isRestoredSession=this.shardSessionDetails.isRestoredSession,this.fetch.setShardsSourceDBDetailsForBulk(this.sourceConnDetails).subscribe({next:()=>{localStorage.setItem(he.NumberOfShards,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.NumberOfInstances,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:i=>{this.errorMsg=i.error}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-bulk-source-details-form"]],decls:23,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[1,"shard-bulk-form",3,"formGroup"],[1,"primary-header"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","textInput",4,"ngIf"],["class","formInput",4,"ngIf"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","failure",4,"ngIf"],[3,"value"],[1,"textInput"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],[1,"formInput"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"],["matInput","","name","shardId","type","text","formControlName","shardId"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h4",3),h(4,"Add Data Shard Connection Details"),l(),d(5,"b"),h(6,"Note: Please configure the schema source used for schema conversion if you want Spanner migration tool to migrate data from it as well."),l(),D(7,"br")(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Input Type"),l(),d(12,"mat-select",5,6),A("selectionChange",function(){ie(r);const s=Ft(13);return ne(o.setValidators(s.value))}),y(14,khe,2,2,"mat-option",7),l()(),y(15,Mhe,6,0,"div",8)(16,The,31,0,"div",9),d(17,"button",10),h(18,"CANCEL"),l(),y(19,Ihe,2,1,"button",11),d(20,"button",12),A("click",function(){return o.finalizeConnDetails()}),h(21," FINISH "),l(),y(22,Ehe,5,2,"div",13),l()()()}2&i&&(m(2),f("formGroup",o.directConnectForm),m(12),f("ngForOf",o.inputOptionsList),m(),f("ngIf","text"===o.directConnectForm.value.inputType),m(),f("ngIf","form"===o.directConnectForm.value.inputType),m(3),f("ngIf","form"===o.directConnectForm.value.inputType),m(),f("disabled",!o.determineFormValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,qi,VA,Xn,Tn,_n,Ci,_i,Bi,wi,zi,zn,vn]})}return t})();function Ahe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Phe(t,n){if(1&t&&(d(0,"div",19)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),h(4,"Total Configured Shards"),l(),d(5,"mat-card-subtitle"),h(6),l(),d(7,"mat-card-subtitle"),h(8),l()()()()),2&t){const e=C();m(6),xe("",e.physicalShards," physical instances configured."),m(2),xe("",e.logicalShards," logical shards configured.")}}function Rhe(t,n){1&t&&(d(0,"div",20)(1,"mat-form-field",21)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",22,23),l()())}function Nhe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function Fhe(t,n){if(1&t&&(d(0,"div",20)(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Nhe,6,2,"li",25),l()),2&t){const e=C();m(7),f("ngForOf",e.ipList)}}function Lhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"JSON Verification failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(3),f("matTooltip",e.errorVerMsg)}}function Bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Validating Resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Vhe(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function jhe(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"button",35),A("click",function(){return ie(e),ne(C().verifyTextJson())}),h(2,"VERIFY JSON"),l()()}if(2&t){const e=C();m(),f("disabled",!e.migrationProfileForm.valid||e.verifyingJson)}}function zhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"source"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Hhe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function Uhe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select source connection profile"),l(),d(4,"mat-select",49),y(5,Hhe,2,2,"mat-option",8),l()(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Data Shard Id"),l(),D(9,"input",50),l()()),2&t){const e=C(2);m(5),f("ngForOf",e.sourceProfileList),m(4),f("value",e.inputValue)}}function $he(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Host"),l(),D(4,"input",51),l(),d(5,"mat-form-field",5)(6,"mat-label"),h(7,"User"),l(),D(8,"input",52),l(),d(9,"mat-form-field",5)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",53),l(),d(13,"mat-form-field",5)(14,"mat-label"),h(15,"Password"),l(),D(16,"input",54),l(),d(17,"mat-form-field",55)(18,"mat-label"),h(19,"Connection profile name"),l(),D(20,"input",56),l(),d(21,"mat-form-field",5)(22,"mat-label"),h(23,"Data Shard Id"),l(),D(24,"input",50),l()()),2&t){const e=C(2);m(24),f("value",e.inputValue)}}function Ghe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function qhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"Test connection failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorSrcMsg)}}function Whe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Testing Connection"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Khe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating source connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Zhe(t,n){1&t&&(d(0,"mat-icon",60),h(1," check_circle "),l())}function Yhe(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function Qhe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Ghe,6,2,"li",25)(8,qhe,5,1,"div",11),D(9,"br"),y(10,Whe,7,1,"div",12)(11,Khe,7,1,"div",12)(12,Zhe,2,0,"mat-icon",57),d(13,"button",35),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!0))}),h(14,"TEST CONNECTION"),l(),y(15,Yhe,2,0,"mat-icon",58),d(16,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!1))}),h(17,"CREATE PROFILE"),l()()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorSrcMsg),m(2),f("ngIf",e.testingSourceConnection),m(),f("ngIf",e.creatingSourceConnection),m(),f("ngIf",e.testSuccess),m(),f("disabled",!e.determineConnectionProfileInfoValidity()||e.testingSourceConnection),m(2),f("ngIf",e.createSrcConnSuccess),m(),f("disabled",!e.testSuccess||e.creatingSourceConnection)}}function Xhe(t,n){if(1&t){const e=_e();me(0),d(1,"div",62)(2,"mat-form-field",5)(3,"mat-label"),h(4,"Logical Shard ID"),l(),D(5,"input",63),l(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Source Database Name"),l(),D(9,"input",64),l(),d(10,"mat-icon",65),A("click",function(){const r=ie(e).index;return ne(C(2).deleteRow(r))}),h(11," delete_forever"),l()(),pe()}if(2&t){const e=n.index;m(),f("formGroupName",e)}}function Jhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"target"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function eme(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function tme(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select target connection profile"),l(),d(4,"mat-select",66),y(5,eme,2,2,"mat-option",8),l()()()),2&t){const e=C(2);m(5),f("ngForOf",e.targetProfileList)}}function ime(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating target connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function nme(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function ome(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l()()),2&t){const e=C(3);m(2),Pe(e.errorTgtMsg)}}function rme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",55)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",67),l(),y(5,ime,7,1,"div",12)(6,nme,2,0,"mat-icon",58),d(7,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!1,!1))}),h(8,"CREATE PROFILE"),l(),y(9,ome,3,1,"div",11),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.creatingTargetConnection),m(),f("ngIf",e.createTgtConnSuccess),m(),f("disabled",e.creatingTargetConnection),m(2),f("ngIf",""!=e.errorTgtMsg)}}function ame(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"span",36),h(2,"Configure Source Profile"),l(),d(3,"div",37)(4,"mat-radio-group",38),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedSourceProfileOption,o)||(r.selectedSourceProfileOption=o),ne(o)}),y(5,zhe,2,2,"mat-radio-button",39),l()(),D(6,"br"),y(7,Uhe,10,2,"div",12)(8,$he,25,1,"div",12),D(9,"br"),y(10,Qhe,18,8,"div",12),D(11,"hr"),d(12,"span",36),h(13,"Configure ShardId and Database Names"),l(),d(14,"mat-icon",40),h(15,"info"),l(),D(16,"br")(17,"br"),d(18,"span",41),me(19,42),y(20,Xhe,12,1,"ng-container",43),pe(),l(),d(21,"div",44)(22,"button",45),A("click",function(){return ie(e),ne(C().addRow())}),h(23,"ADD ROW"),l()(),D(24,"br")(25,"hr"),d(26,"span",36),h(27,"Configure Target Profile"),l(),d(28,"div",46)(29,"mat-radio-group",47),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedTargetProfileOption,o)||(r.selectedTargetProfileOption=o),ne(o)}),y(30,Jhe,2,2,"mat-radio-button",39),l()(),D(31,"br"),y(32,tme,6,1,"div",12)(33,rme,10,4,"div",12),D(34,"hr"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedSourceProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedSourceProfileOption),m(),f("ngIf","new"===e.selectedSourceProfileOption),m(2),f("ngIf","new"===e.selectedSourceProfileOption),m(10),f("ngForOf",e.shardMappingTable.controls),m(9),dn("ngModel",e.selectedTargetProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedTargetProfileOption),m(),f("ngIf","new"===e.selectedTargetProfileOption)}}function sme(t,n){if(1&t){const e=_e();d(0,"button",68),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",!C().determineFormValidity())}function cme(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let lme=(()=>{class t{constructor(e,i,o,r,a,s){this.fetch=e,this.snack=i,this.dataService=o,this.formBuilder=r,this.dialogRef=a,this.data=s,this.selectedProfile="",this.profileType="",this.sourceProfileList=[],this.targetProfileList=[],this.definedSrcConnProfileList=[],this.definedTgtConnProfileList=[],this.shardIdToDBMappingTable=[],this.dataShardIdList=[],this.ipList=[],this.selectedSourceProfileOption="existing",this.selectedTargetProfileOption="existing",this.profileOptions=[{value:"existing",display:"Choose an existing connection profile"},{value:"new",display:"Create a new connection profile"}],this.profileName="",this.errorMsg="",this.errorSrcMsg="",this.errorTgtMsg="",this.errorVerMsg="",this.sourceDatabaseType="",this.inputValue="",this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.physicalShards=0,this.logicalShards=0,this.testingSourceConnection=!1,this.creatingSourceConnection=!1,this.creatingTargetConnection=!1,this.verifyingJson=!1,this.prefix="smt-datashard",this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.region=s.Region,this.sourceDatabaseType=s.SourceDatabaseType,localStorage.getItem(Wi.Type)==Jn.DirectConnect&&(this.schemaSourceConfig=JSON.parse(localStorage.getItem(Wi.Config)));let u=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[""],sourceProfileOption:["new",ee.required],targetProfileOption:["new",ee.required],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[this.schemaSourceConfig?.hostName],user:[this.schemaSourceConfig?.userName],port:[this.schemaSourceConfig?.port],password:[this.schemaSourceConfig?.password],dataShardId:[this.inputValue,ee.required],shardMappingTable:this.formBuilder.array([u])}),this.migrationProfile={configType:"dataflow",shardConfigurationDataflow:{schemaSource:{host:this.schemaSourceConfig?.hostName,user:this.schemaSourceConfig?.userName,password:this.schemaSourceConfig?.password,port:this.schemaSourceConfig?.port,dbName:this.schemaSourceConfig?.dbName},dataShards:[]}}}ngOnInit(){this.getConnectionProfiles(!0),this.getConnectionProfiles(!1),this.getDatastreamIPs(),this.initFromLocalStorage()}initFromLocalStorage(){}get shardMappingTable(){return this.migrationProfileForm.controls.shardMappingTable}addRow(){let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.shardMappingTable.push(e)}deleteRow(e){this.shardMappingTable.removeAt(e)}getDatastreamIPs(){this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}getConnectionProfiles(e){this.fetch.getConnectionProfiles(e).subscribe({next:i=>{e?this.sourceProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName)):this.targetProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName))},error:i=>{this.snack.openSnackBar(i.error,"Close")}})}onItemChange(e,i){this.profileType=i,"source"===this.profileType?(this.selectedSourceProfileOption=e,"new"==this.selectedSourceProfileOption?(this.migrationProfileForm.get("newSourceProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingSourceProfile.clearValidators(),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.get("host")?.setValidators([ee.required]),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.get("user")?.setValidators([ee.required]),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.get("port")?.setValidators([ee.required]),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.get("password")?.setValidators([ee.required]),this.migrationProfileForm.controls.password.updateValueAndValidity()):(this.migrationProfileForm.controls.newSourceProfile.clearValidators(),this.migrationProfileForm.get("existingSourceProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.host.clearValidators(),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.controls.user.clearValidators(),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.controls.port.clearValidators(),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.controls.password.clearValidators(),this.migrationProfileForm.controls.password.updateValueAndValidity())):(this.selectedTargetProfileOption=e,"new"==this.selectedTargetProfileOption?(this.migrationProfileForm.get("newTargetProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingTargetProfile.clearValidators(),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()):(this.migrationProfileForm.controls.newTargetProfile.clearValidators(),this.migrationProfileForm.get("existingTargetProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()))}setValidators(e){if("text"===e){for(const o in this.migrationProfileForm.controls)this.migrationProfileForm.controls[o].clearValidators(),this.migrationProfileForm.controls[o].updateValueAndValidity();this.migrationProfileForm.get("shardMappingTable").controls.forEach(o=>{const r=o,a=r.get("logicalShardId"),s=r.get("dbName");a?.clearValidators(),a?.updateValueAndValidity(),s?.clearValidators(),s?.updateValueAndValidity()}),this.migrationProfileForm.controls.textInput.setValidators([ee.required]),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}else this.onItemChange("new","source"),this.onItemChange("new","target"),this.migrationProfileForm.controls.textInput.clearValidators(),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}saveDetailsAndReset(){this.handleConnConfigsFromForm();let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[],sourceProfileOption:[this.selectedSourceProfileOption],targetProfileOption:[this.selectedTargetProfileOption],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[],user:[],port:[],password:[],dataShardId:[this.inputValue],shardMappingTable:this.formBuilder.array([e])}),this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}randomString(e){for(var o="",r=0;r{localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(he.NumberOfShards,this.determineTotalLogicalShardsConfigured().toString()),localStorage.setItem(he.NumberOfInstances,this.migrationProfile.shardConfigurationDataflow.dataShards.length.toString()),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}determineTotalLogicalShardsConfigured(){let e=0;return this.migrationProfile.shardConfigurationDataflow.dataShards.forEach(i=>{e+=i.databases.length}),e}handleConnConfigsFromForm(){let e=this.migrationProfileForm.value;this.dataShardIdList.push(e.dataShardId),this.definedSrcConnProfileList.push("new"===this.selectedSourceProfileOption?{name:e.newSourceProfile,location:this.region}:{name:e.existingSourceProfile,location:this.region}),this.definedTgtConnProfileList.push("new"===this.selectedTargetProfileOption?{name:e.newTargetProfile,location:this.region}:{name:e.existingTargetProfile,location:this.region});let i=[];for(let o of this.shardMappingTable.controls)if(o instanceof ti){const r=o.value;i.push({dbName:r.dbName,databaseId:r.logicalShardId,refDataShardId:e.dataShardId})}this.shardIdToDBMappingTable.push(i),this.physicalShards++,this.logicalShards=this.logicalShards+i.length}determineFormValidity(){return!(!this.migrationProfileForm.valid||"new"===this.selectedSourceProfileOption&&!this.createSrcConnSuccess||"new"===this.selectedTargetProfileOption&&!this.createTgtConnSuccess||"text"===this.migrationProfileForm.value.inputType!==this.verifyJson)}determineFinishValidity(){return this.definedSrcConnProfileList.length>0||this.determineFormValidity()}determineConnectionProfileInfoValidity(){let e=this.migrationProfileForm.value;return null!=e.host&&null!=e.port&&null!=e.user&&null!=e.password&&null!=e.newSourceProfile}verifyTextJson(){this.verifyingJson=!0;let i,e=this.migrationProfileForm.value;try{i=JSON.parse(e.textInput)}catch(o){return o instanceof SyntaxError?(this.errorVerMsg=o.message,this.verifyJson=!1,void(this.verifyingJson=!1)):(this.errorVerMsg=`Unexpected error parsing json ${o}`,this.verifyJson=!1,void(this.verifyingJson=!1))}this.fetch.verifyJsonConfiguration(i).subscribe({next:()=>{this.verifyJson=!0,this.verifyingJson=!1},error:o=>{this.verifyJson=!1,this.verifyingJson=!1,this.errorVerMsg=o.message}})}createOrTestConnection(e,i){i?this.testingSourceConnection=!0:e?this.creatingSourceConnection=!0:this.creatingTargetConnection=!0;let r,o=this.migrationProfileForm.value;r=e?{Id:o.newSourceProfile,IsSource:!0,ValidateOnly:i,Host:o.host,Port:o.port,User:o.user,Password:o.password}:{Id:o.newTargetProfile,IsSource:!1,ValidateOnly:i},this.fetch.createConnectionProfile(r).subscribe({next:()=>{i?(this.testingSourceConnection=!1,this.testSuccess=!0):e?(this.createSrcConnSuccess=!0,this.errorSrcMsg="",this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!0,this.errorTgtMsg="",this.creatingTargetConnection=!1)},error:a=>{i?(this.testingSourceConnection=!1,this.testSuccess=!1,this.errorSrcMsg=a.error):e?(this.createSrcConnSuccess=!1,this.errorSrcMsg=a.error,this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!1,this.errorTgtMsg=a.error,this.creatingTargetConnection=!1)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-dataflow-migration-details-form"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:31,vars:13,consts:[["mat-dialog-content","",1,"connect-load-database-container"],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h2","header-title"],[1,"top"],[1,"top-1"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","top-2",4,"ngIf"],["class","textInput",4,"ngIf"],["class","failure",4,"ngIf"],[4,"ngIf"],["class","success","matTooltip","JSON Verification successful","matTooltipPosition","above",4,"ngIf"],[1,"last-btns"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],[1,"top-2"],[1,"textInput"],["appearance","outline",1,"json-input"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists","target","_blank"],["class","connection-form-container",4,"ngFor","ngForOf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"],["matTooltip","JSON Verification successful","matTooltipPosition","above",1,"success"],["mat-raised-button","","type","button","color","primary",3,"disabled","click"],[1,"mat-h4","header-title"],[1,"source-radio-button-container"],["formControlName","sourceProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],["class","radio-button",3,"value","change",4,"ngFor","ngForOf"],["matTooltip","Logical Shard ID value will be used to populate the migration_shard_id column added as part of sharded database migration",1,"configure"],[1,"border"],["formArrayName","shardMappingTable"],[4,"ngFor","ngForOf"],[1,"table-buttons"],["mat-raised-button","","color","primary","type","button",3,"click"],[1,"target-radio-button-container"],["formControlName","targetProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],[1,"radio-button",3,"value","change"],["formControlName","existingSourceProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","type","text","formControlName","dataShardId","required","true","readonly","",3,"value"],["matInput","","placeholder","Host","type","text","formControlName","host","required","true"],["matInput","","placeholder","User","type","text","formControlName","user","required","true"],["matInput","","placeholder","Port","type","text","formControlName","port","required","true"],["matInput","","placeholder","Password","type","password","formControlName","password","required","true"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter."],["matInput","","placeholder","Connection profile name","type","text","formControlName","newSourceProfile","required","true"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],["class","success","matTooltip","Profile creation successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","type","button","color","warn",3,"disabled","click"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"],["matTooltip","Profile creation successful","matTooltipPosition","above",1,"success"],[1,"shard-mapping-form-row",3,"formGroupName"],["matInput","","formControlName","logicalShardId","placeholder","Enter Logical ShardID"],["matInput","","formControlName","dbName","placeholder","Enter Database Name"],[1,"delete-btn",3,"click"],["formControlName","existingTargetProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newTargetProfile","required","true"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"form",1)(2,"span",2),h(3,"Datastream Details"),l(),D(4,"br"),d(5,"b"),h(6,"Note: Please configure the database used for schema conversion, if you want Spanner migration tool to migrate data from it as well."),l(),d(7,"div",3),h(8,"` "),d(9,"div",4)(10,"mat-form-field",5)(11,"mat-label"),h(12,"Input Type"),l(),d(13,"mat-select",6,7),A("selectionChange",function(){ie(r);const s=Ft(14);return ne(o.setValidators(s.value))}),y(15,Ahe,2,2,"mat-option",8),l()()(),y(16,Phe,9,2,"div",9),l(),y(17,Rhe,6,0,"div",10)(18,Fhe,8,1,"div",10)(19,Lhe,5,1,"div",11)(20,Bhe,7,1,"div",12)(21,Vhe,2,0,"mat-icon",13)(22,jhe,3,1,"div",10)(23,ame,35,10,"div",10),d(24,"div",14)(25,"button",15),h(26,"CANCEL"),l(),y(27,sme,2,1,"button",16),d(28,"button",17),A("click",function(){return o.finalizeConnDetails()}),h(29," FINISH "),l(),y(30,cme,5,2,"div",11),l()()()}2&i&&(m(),f("formGroup",o.migrationProfileForm),m(14),f("ngForOf",o.inputOptionsList),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf",!o.verifyJson&&""!=o.errorVerMsg),m(),f("ngIf",o.verifyingJson),m(),f("ngIf",o.verifyJson),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(4),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("disabled",!o.determineFinishValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Gu,_O,O0,E0,Di,xi,qi,VA,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ju,eh,zn,So,vn,cg,lg,KC,sd],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}.shard-mapping-form-row[_ngcontent-%COMP%]{width:80%;margin-left:auto;margin-right:auto}.table-header[_ngcontent-%COMP%]{width:80%;margin:auto auto 10px;text-align:right;display:flex;align-items:center;justify-content:space-between}form[_ngcontent-%COMP%], .table-body[_ngcontent-%COMP%]{flex:auto;overflow-y:auto}.table-buttons[_ngcontent-%COMP%]{margin-left:70%}.radio-button-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin:15px 0;align-items:flex-start}.radio-button[_ngcontent-%COMP%]{margin:5px}.json-input[_ngcontent-%COMP%]{width:100%}.top[_ngcontent-%COMP%]{border:3px solid #fff;padding:20px}.top-1[_ngcontent-%COMP%]{width:60%;float:left}.top-2[_ngcontent-%COMP%]{width:40%;float:right;flex:auto}.last-btns[_ngcontent-%COMP%]{padding:20px;width:100%;float:left}"]})}return t})(),dme=(()=>{class t{constructor(e,i){this.formBuilder=e,this.dialogRef=i,this.gcsMetadataDetailsForm=this.formBuilder.group({gcsName:["",[ee.required,ee.pattern("^(?!.$)(?!..$)(?!.*[\r\n])[^\r\n]{1,1024}$")]],gcsRootPath:[""]}),this.gcsMetadataDetailsForm.setValue({gcsName:localStorage.getItem(yt.GcsMetadataName)||"",gcsRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""})}ngOnInit(){}updateGcsPathMetadataDetails(){let e=this.gcsMetadataDetailsForm.value;localStorage.setItem(yt.GcsMetadataName,e.gcsName||""),localStorage.setItem(yt.GcsMetadataRootPath,e.gcsRootPath||""),localStorage.setItem(he.IsGcsMetadataPathSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-gcs-metadata-details-form"]],decls:21,vars:2,consts:[["mat-dialog-content",""],[1,"gcs-metadata-detail-form",3,"formGroup"],["matTooltip","Specify existing or new GCS path to store metadata for migration",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","GCS Bucket Name","type","text","formControlName","gcsName","ng-value","TargetDetails.GcsMetadataName"],["matInput","","placeholder","Path Prefix","type","text","formControlName","gcsRootPath","ng-value","TargetDetails.GcsMetadataRootPath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"GCS Metadata Storage"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"GCS Bucket Name"),l(),D(9,"input",4),l(),D(10,"br"),d(11,"mat-form-field",3)(12,"mat-label"),h(13,"Path Prefix"),l(),D(14,"input",5),l(),D(15,"br"),l(),d(16,"div",6)(17,"button",7),h(18,"Cancel"),l(),d(19,"button",8),A("click",function(){return o.updateGcsPathMetadataDetails()}),h(20," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsMetadataDetailsForm),m(18),f("disabled",!o.gcsMetadataDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function ume(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions"),l())}function hme(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions (per shard)"),l())}function mme(t,n){1&t&&(d(0,"th",38),h(1,"Title"),l())}function pme(t,n){if(1&t&&(d(0,"td",39)(1,"b"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.title)}}function fme(t,n){1&t&&(d(0,"th",38),h(1,"Source"),l())}function gme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.source)}}function _me(t,n){1&t&&(d(0,"th",38),h(1,"Destination"),l())}function bme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.target)}}function vme(t,n){1&t&&D(0,"tr",40)}function yme(t,n){1&t&&D(0,"tr",41)}function Cme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function wme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.name," ")}}function xme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Migration Type:"),l(),d(4,"mat-select",21),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedMigrationType,o)||(r.selectedMigrationType=o),ne(o)}),A("selectionChange",function(){return ie(e),ne(C().refreshPrerequisites())}),y(5,wme,2,2,"mat-option",22),l()(),d(6,"mat-icon",23),h(7,"info"),l(),D(8,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedMigrationType),m(),f("ngForOf",e.migrationTypes),m(),f("matTooltip",e.migrationTypesHelpText.get(e.selectedMigrationType))}}function Dme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Sme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Skip Foreign Key Creation:"),l(),d(4,"mat-select",43),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.isForeignKeySkipped,o)||(r.isForeignKeySkipped=o),ne(o)}),y(5,Dme,2,2,"mat-option",22),l()()()}if(2&t){const e=C();m(4),dn("ngModel",e.isForeignKeySkipped),m(),f("ngForOf",e.skipForeignKeyResponseList)}}function kme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the application default credentials deployed on this machine have permissions to write to Spanner."),l()()())}function Mme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the source is "),d(6,"a",45),h(7,"configured"),l(),h(8," for Datastream change data capture."),l()(),d(9,"p",26)(10,"span",27),h(11,"2"),l(),d(12,"span"),h(13,"Please ensure that Dataflow "),d(14,"a",46),h(15,"permissions"),l(),h(16," and "),d(17,"a",47),h(18,"networking"),l(),h(19," are correctly setup."),l()()())}function Tme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ime(t,n){if(1&t){const e=_e();d(0,"div")(1,"h3"),h(2,"Source database details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source database details"),l(),d(8,"span")(9,"button",29),A("click",function(){return ie(e),ne(C().openSourceDetailsForm())}),h(10," Configure "),d(11,"mat-icon",30),h(12,"edit"),l(),y(13,Tme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(9),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Eme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ome(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-card-title"),h(2,"Source databases details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source Connection details "),d(8,"mat-icon",50),h(9," info"),l()(),d(10,"span")(11,"button",29),A("click",function(){return ie(e),ne(C().openShardedBulkSourceDetailsForm())}),h(12," Configure "),d(13,"mat-icon",30),h(14,"edit"),l(),y(15,Eme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(11),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Ame(t,n){1&t&&(d(0,"mat-icon",51),h(1," check_circle "),l())}function Pme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Rme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Configure Datastream "),d(5,"mat-icon",52),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openMigrationProfileForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Pme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Nme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Fme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Setup source connection profile "),d(5,"mat-icon",55),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!0))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Nme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Lme(t,n){1&t&&(d(0,"mat-icon",58),h(1," check_circle "),l())}function Bme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"3"),l(),d(3,"span"),h(4,"Setup target connection profile "),d(5,"mat-icon",56),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!1))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Lme,2,0,"mat-icon",57),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isTargetConnectionProfileSet)}}function Vme(t,n){1&t&&(d(0,"span",27),h(1,"3"),l())}function jme(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function zme(t,n){1&t&&(d(0,"mat-icon",62),h(1," check_circle "),l())}function Hme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Vme,2,0,"span",59)(2,jme,2,0,"span",59),d(3,"span"),h(4,"Tune Datastream (Optional) "),d(5,"mat-icon",60),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneDatastreamForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,zme,2,0,"mat-icon",61),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDatastreamConfigurationSet)}}function Ume(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function $me(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Gme(t,n){1&t&&(d(0,"mat-icon",65),h(1," check_circle "),l())}function qme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Ume,2,0,"span",59)(2,$me,2,0,"span",59),d(3,"span"),h(4,"Tune Cloud Storage (Optional) "),d(5,"mat-icon",63),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneGcsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Gme,2,0,"mat-icon",64),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsConfigurationSet)}}function Wme(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Kme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Zme(t,n){1&t&&(d(0,"mat-icon",68),h(1," check_circle "),l())}function Yme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Wme,2,0,"span",59)(2,Kme,2,0,"span",59),d(3,"span"),h(4,"Tune Dataflow (Optional) "),d(5,"mat-icon",66),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openDataflowForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Zme,2,0,"mat-icon",67),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDataflowConfigurationSet)}}function Qme(t,n){1&t&&(d(0,"span",27),h(1,"2"),l())}function Xme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Jme(t,n){1&t&&(d(0,"mat-icon",71),h(1," check_circle "),l())}function epe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Qme,2,0,"span",59)(2,Xme,2,0,"span",59),d(3,"span"),h(4,"GCS Metadata Path (Optional) "),d(5,"mat-icon",69),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openGcsMetadataDetailsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Jme,2,0,"mat-icon",70),l()()()}if(2&t){const e=C();m(),f("ngIf","Schema"===e.selectedMigrationMode),m(),f("ngIf","Schema"!==e.selectedMigrationMode),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsMetadataDetailSet)}}function tpe(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function ipe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,tpe,2,0,"span",59),d(2,"span"),h(3,"Download configuration as JSON "),d(4,"mat-icon",72),h(5,"info "),l()(),d(6,"span")(7,"button",29),A("click",function(){return ie(e),ne(C().downloadConfiguration())}),h(8," Download "),d(9,"mat-icon",73),h(10," download"),l()()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(6),f("disabled",!e.isTargetDetailSet||!e.isTargetConnectionProfileSet)}}function npe(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Source Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Source Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Number of physical instances configured: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Number of logical shards configured: "),l(),h(24),l()()()()),2&t){const e=C();m(10),Pe(e.sourceDatabaseType),m(7),xe(" ",e.numberOfInstances,""),m(7),xe(" ",e.numberOfShards,"")}}function ope(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Target Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Spanner Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Spanner Dialect: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Region: "),l(),h(24),l()(),d(25,"p",26)(26,"span",27),h(27,"4"),l(),d(28,"span")(29,"b"),h(30,"Spanner Instance: "),l(),h(31),l()()()()),2&t){const e=C();m(10),Pe(e.targetDetails.TargetDB),m(7),Pe(e.dialect),m(7),Pe(e.region),m(7),Cv("",e.instance," (Nodes: ",e.nodeCount,", Processing Units: ",e.processingUnits,")")}}function rpe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.schemaMigrationProgress),m(2),xe(" ",e.schemaProgressMessage,"")}}function ape(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.dataMigrationProgress),m(2),xe(" ",e.dataProgressMessage,"")}}function spe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.foreignKeyUpdateProgress),m(2),xe(" ",e.foreignKeyProgressMessage,"")}}function cpe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",76),D(3,"mat-spinner",77),l(),d(4,"span",78),h(5,"Generating Resources"),l(),D(6,"br"),h(7," Note: Spanner migration tool is creating datastream and dataflow resources. Please look at the terminal logs to check the progress of resource creation. All created resources will be displayed here once they are generated. "),l()),2&t&&(m(3),f("diameter",20))}function lpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Aggregated Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.AggMonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.AggMonitoringDashboardName)}}function dpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.MonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.MonitoringDashboardName)}}function upe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"4"),l(),d(4,"span")(5,"b"),h(6,"Datastream job: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataStreamJobUrl,qo),m(),Pe(e.resourcesGenerated.DataStreamJobName)}}function hpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"p",26)(2,"span",27),h(3,"5"),l(),d(4,"span")(5,"b"),h(6,"Dataflow job: "),l(),d(7,"a",79),h(8),l()(),d(9,"span")(10,"button",80),A("click",function(){ie(e);const o=C(2);return ne(o.openGcloudPopup(o.resourcesGenerated.DataflowGcloudCmd))}),d(11,"mat-icon",81),h(12," code"),l()()()()()}if(2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataflowJobUrl,qo),m(),Pe(e.resourcesGenerated.DataflowJobName)}}function mpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"6"),l(),d(4,"span")(5,"b"),h(6,"Pubsub topic: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubTopicUrl,qo),m(),Pe(e.resourcesGenerated.PubsubTopicName)}}function ppe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"7"),l(),d(4,"span")(5,"b"),h(6,"Pubsub subscription: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubSubscriptionUrl,qo),m(),Pe(e.resourcesGenerated.PubsubSubscriptionName)}}function fpe(t,n){1&t&&(d(0,"th",38),h(1," Shard ID "),l())}function gpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.DataShardId," ")}}function _pe(t,n){1&t&&(d(0,"th",38),h(1," Resource Type "),l())}function bpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit,i=C(3);m(),xe(" ",i.resourceTypeToDisplayTest.get(e.ResourceType)," ")}}function vpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Name "),l())}function ype(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.ResourceName," ")}}function Cpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Link "),l())}function wpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",80),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).openGcloudPopup(o.GcloudCmd))}),d(2,"mat-icon",81),h(3," code"),l()()()}}function xpe(t,n){if(1&t&&(d(0,"td",39)(1,"a",79),h(2),l(),y(3,wpe,4,0,"span",10),l()),2&t){const e=n.$implicit;m(),f("href",e.ResourceUrl,qo),m(),Pe(e.ResourceName),m(),f("ngIf","dataflow"==e.ResourceType)}}function Dpe(t,n){1&t&&D(0,"tr",40)}function Spe(t,n){1&t&&D(0,"tr",41)}function kpe(t,n){if(1&t&&(d(0,"span")(1,"h2"),h(2,"Shard Level Resources: "),l(),d(3,"div",82)(4,"table",83),me(5,84),y(6,fpe,2,0,"th",14)(7,gpe,2,1,"td",15),pe(),me(8,85),y(9,_pe,2,0,"th",14)(10,bpe,2,1,"td",15),pe(),me(11,86),y(12,vpe,2,0,"th",14)(13,ype,2,1,"td",15),pe(),me(14,87),y(15,Cpe,2,0,"th",14)(16,xpe,4,3,"td",15),pe(),y(17,Dpe,1,0,"tr",18)(18,Spe,1,0,"tr",19),l()()()),2&t){const e=C(2);m(4),f("dataSource",e.displayedResourcesDataSource),m(13),f("matHeaderRowDef",e.generatedResourcesColumns),m(),f("matRowDefColumns",e.generatedResourcesColumns)}}function Mpe(t,n){if(1&t&&(d(0,"div")(1,"h2"),h(2),l(),h(3,' Note: This resources displayed below can be looked upto at a later point in time in the "spannermigrationtool_metadata" database in your spanner instance using the migration jobId listed above. '),d(4,"div",24)(5,"mat-card")(6,"mat-card-title"),h(7,"Job Level Resources:"),l(),d(8,"p",26)(9,"span",27),h(10,"1"),l(),d(11,"span")(12,"b"),h(13,"Spanner Database: "),l(),d(14,"a",79),h(15),l()()(),d(16,"p",26)(17,"span",27),h(18,"2"),l(),d(19,"span")(20,"b"),h(21,"GCS bucket: "),l(),d(22,"a",79),h(23),l()()(),y(24,lpe,9,2,"span",10)(25,dpe,9,2,"span",10)(26,upe,9,2,"span",10)(27,hpe,13,2,"span",10)(28,mpe,9,2,"span",10)(29,ppe,9,2,"span",10),l()(),y(30,kpe,19,3,"span",10),l()),2&t){const e=C();m(2),xe("Migration resources generated for migration jobId: ",e.resourcesGenerated.MigrationJobId,""),m(12),f("href",e.resourcesGenerated.DatabaseUrl,qo),m(),Pe(e.resourcesGenerated.DatabaseName),m(7),f("href",e.resourcesGenerated.BucketUrl,qo),m(),Pe(e.resourcesGenerated.BucketName),m(),f("ngIf",""!==e.resourcesGenerated.AggMonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.MonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataStreamJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataflowJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubTopicName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubSubscriptionName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf","lowdt"===e.selectedMigrationType&&e.isSharded)}}function Tpe(t,n){1&t&&(d(0,"div")(1,"b"),h(2,"Note: "),l(),h(3,"Spanner migration tool has orchestrated the migration successfully. For minimal downtime migrations, it is safe to close Spanner migration tool now without affecting the progress of the migration. The resources listed on this page can be viewed in the \"SMT_JOB\" table in the 'spannermigrationtool_metadata' database created in your Spanner instance after you close the Spanner migration tool. "),l())}function Ipe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",88),A("click",function(){return ie(e),ne(C().migrate())}),h(2,"Migrate"),l()()}if(2&t){const e=C();m(),f("disabled",!(e.isTargetDetailSet&&"lowdt"===e.selectedMigrationType&&e.isSourceConnectionProfileSet&&e.isTargetConnectionProfileSet||e.isTargetDetailSet&&"bulk"===e.selectedMigrationType)||e.isMigrationInProgress)}}function Epe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",89),A("click",function(){return ie(e),ne(C().endMigration())}),h(2,"End Migration"),l()()}}const Ope=()=>[5,10,20],Ape=[{path:"",component:Xoe},{path:"source",component:kre,children:[{path:"",redirectTo:"/direct-connection",pathMatch:"full"},{path:"direct-connection",component:coe},{path:"load-dump",component:ure},{path:"load-session",component:gre}]},{path:"workspace",component:Yue},{path:"instruction",component:AN},{path:"prepare-migration",component:(()=>{class t{constructor(e,i,o,r,a){this.dialog=e,this.fetch=i,this.snack=o,this.data=r,this.sidenav=a,this.displayedColumns=["Title","Source","Destination"],this.dataSource=[],this.migrationModes=[],this.migrationTypes=[],this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isSourceDetailsSet=!1,this.isTargetDetailSet=!1,this.isForeignKeySkipped=!1,this.isMigrationDetailSet=!1,this.isStreamingSupported=!1,this.isGcsMetadataDetailSet=!1,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.hasForeignKeyUpdateStarted=!1,this.selectedMigrationMode=Kr.schemaAndData,this.connectionType=Jn.DirectConnect,this.selectedMigrationType=Hn.lowDowntimeMigration,this.isMigrationInProgress=!1,this.isLowDtMigrationRunning=!1,this.isResourceGenerated=!1,this.generatingResources=!1,this.errorMessage="",this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.foreignKeyProgressMessage="Foreign key update in progress...",this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.foreignKeyUpdateProgress=0,this.sourceDatabaseName="",this.sourceDatabaseType="",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.generatedResourcesColumns=["shardId","resourceType","resourceName","resourceUrl"],this.displayedResources=[],this.displayedResourcesDataSource=new uP(this.displayedResources),this.region="",this.instance="",this.dialect="",this.isSharded=!1,this.numberOfShards="0",this.numberOfInstances="0",this.nodeCount=0,this.processingUnits=0,this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""}},this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath")},this.spannerConfig={GCPProjectID:"",SpannerInstanceID:"",IsMetadataDbCreated:!1,IsConfigValid:!1},this.skipForeignKeyResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.migrationModesHelpText=new Map([["Schema","Migrates only the schema of the source database to the configured Spanner instance."],["Data","Migrates the data from the source database to the configured Spanner database. The configured database should already contain the schema."],["Schema And Data","Migrates both the schema and the data from the source database to Spanner."]]),this.migrationTypesHelpText=new Map([["bulk","Use the POC migration option when you want to migrate a sample of your data (<100GB) to do a Proof of Concept. It uses this machine's resources to copy data from the source database to Spanner"],["lowdt","Uses change data capture via Datastream to setup a continuous data replication pipeline from source to Spanner, using Dataflow jobs to perform the actual data migration."]]),this.resourceTypeToDisplayTest=new Map([["gcs","Cloud Storage Bucket"],["pubsub_sub","Pub/Sub subscription"],["pubsub_topic","Pub/Sub topic"],["datastream","Datastream Stream"],["dataflow","Dataflow Job"],["monitoring","Monitoring Dashboard"]])}refreshMigrationMode(){this.selectedMigrationMode!==Kr.schemaOnly&&this.isStreamingSupported&&this.connectionType!==Jn.DumpFile?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}])}refreshPrerequisites(){this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isTargetDetailSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isGcsMetadataDetailSet=!1,this.refreshMigrationMode()}ngOnInit(){this.initializeFromLocalStorage(),this.data.config.subscribe(e=>{this.spannerConfig=e}),this.convObj=this.data.conv.subscribe(e=>{this.conv=e}),localStorage.setItem("vpcHostProjectId",this.spannerConfig.GCPProjectID),this.fetch.getSourceDestinationSummary().subscribe({next:e=>{this.connectionType=e.ConnectionType,this.dataSource=[{title:"Database Type",source:e.DatabaseType,target:"Spanner"},{title:"Number of tables",source:e.SourceTableCount,target:e.SpannerTableCount},{title:"Number of indexes",source:e.SourceIndexCount,target:e.SpannerIndexCount}],this.sourceDatabaseType=e.DatabaseType,this.region=e.Region,this.instance=e.Instance,this.dialect=e.Dialect,this.isSharded=e.IsSharded,this.processingUnits=e.ProcessingUnits,this.nodeCount=e.NodeCount,(e.DatabaseType==ir.MySQL.toLowerCase()||e.DatabaseType==ir.Oracle.toLowerCase()||e.DatabaseType==ir.Postgres.toLowerCase())&&(this.isStreamingSupported=!0),this.isStreamingSupported?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}]),this.sourceDatabaseName=e.SourceDatabaseName,this.migrationModes=[Kr.schemaOnly,Kr.dataOnly,Kr.schemaAndData]},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}initializeFromLocalStorage(){null!=localStorage.getItem(he.MigrationMode)&&(this.selectedMigrationMode=localStorage.getItem(he.MigrationMode)),null!=localStorage.getItem(he.MigrationType)&&(this.selectedMigrationType=localStorage.getItem(he.MigrationType)),null!=localStorage.getItem(he.isForeignKeySkipped)&&(this.isForeignKeySkipped="true"===localStorage.getItem(he.isForeignKeySkipped)),null!=localStorage.getItem(he.IsMigrationInProgress)&&(this.isMigrationInProgress="true"===localStorage.getItem(he.IsMigrationInProgress),this.subscribeMigrationProgress()),null!=localStorage.getItem(he.IsTargetDetailSet)&&(this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet)),null!=localStorage.getItem(he.IsSourceConnectionProfileSet)&&(this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet)),null!=localStorage.getItem("isDatastreamConfigSet")&&(this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet")),null!=localStorage.getItem("isGcsConfigSet")&&(this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet")),null!=localStorage.getItem("isDataflowConfigSet")&&(this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet")),null!=localStorage.getItem(he.IsGcsMetadataPathSet)&&(this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet)),null!=localStorage.getItem(he.IsTargetConnectionProfileSet)&&(this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet)),null!=localStorage.getItem(he.IsSourceDetailsSet)&&(this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)),null!=localStorage.getItem(he.IsMigrationDetailSet)&&(this.isMigrationDetailSet="true"===localStorage.getItem(he.IsMigrationDetailSet)),null!=localStorage.getItem(he.HasSchemaMigrationStarted)&&(this.hasSchemaMigrationStarted="true"===localStorage.getItem(he.HasSchemaMigrationStarted)),null!=localStorage.getItem(he.HasDataMigrationStarted)&&(this.hasDataMigrationStarted="true"===localStorage.getItem(he.HasDataMigrationStarted)),null!=localStorage.getItem(he.DataMigrationProgress)&&(this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))),null!=localStorage.getItem(he.SchemaMigrationProgress)&&(this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress))),null!=localStorage.getItem(he.DataProgressMessage)&&(this.dataProgressMessage=localStorage.getItem(he.DataProgressMessage)),null!=localStorage.getItem(he.SchemaProgressMessage)&&(this.schemaProgressMessage=localStorage.getItem(he.SchemaProgressMessage)),null!=localStorage.getItem(he.ForeignKeyProgressMessage)&&(this.foreignKeyProgressMessage=localStorage.getItem(he.ForeignKeyProgressMessage)),null!=localStorage.getItem(he.ForeignKeyUpdateProgress)&&(this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))),null!=localStorage.getItem(he.HasForeignKeyUpdateStarted)&&(this.hasForeignKeyUpdateStarted="true"===localStorage.getItem(he.HasForeignKeyUpdateStarted)),null!=localStorage.getItem(he.GeneratingResources)&&(this.generatingResources="true"===localStorage.getItem(he.GeneratingResources)),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))}clearLocalStorage(){localStorage.removeItem(he.MigrationMode),localStorage.removeItem(he.MigrationType),localStorage.removeItem(he.IsTargetDetailSet),localStorage.removeItem(he.IsGcsMetadataPathSet),localStorage.removeItem(he.isForeignKeySkipped),localStorage.removeItem(he.IsSourceConnectionProfileSet),localStorage.removeItem(he.IsTargetConnectionProfileSet),localStorage.removeItem(he.IsSourceDetailsSet),localStorage.removeItem("isDatastreamConfigSet"),localStorage.removeItem("maxConcurrentBackfillTasks"),localStorage.removeItem("maxConcurrentCdcTasks"),localStorage.removeItem("isGcsConfigSet"),localStorage.removeItem("ttlInDays"),localStorage.removeItem("ttlInDaysSet"),localStorage.removeItem("isDataflowConfigSet"),localStorage.removeItem("network"),localStorage.removeItem("subnetwork"),localStorage.removeItem("maxWorkers"),localStorage.removeItem("numWorkers"),localStorage.removeItem("serviceAccountEmail"),localStorage.removeItem("vpcHostProjectId"),localStorage.removeItem("machineType"),localStorage.removeItem("additionalUserLabels"),localStorage.removeItem("kmsKeyName"),localStorage.removeItem("dataflowProjectId"),localStorage.removeItem("dataflowLocation"),localStorage.removeItem("gcsTemplatePath"),localStorage.removeItem(he.IsMigrationInProgress),localStorage.removeItem(he.HasSchemaMigrationStarted),localStorage.removeItem(he.HasDataMigrationStarted),localStorage.removeItem(he.DataMigrationProgress),localStorage.removeItem(he.SchemaMigrationProgress),localStorage.removeItem(he.DataProgressMessage),localStorage.removeItem(he.SchemaProgressMessage),localStorage.removeItem(he.ForeignKeyProgressMessage),localStorage.removeItem(he.ForeignKeyUpdateProgress),localStorage.removeItem(he.HasForeignKeyUpdateStarted),localStorage.removeItem(he.GeneratingResources),localStorage.removeItem(he.NumberOfShards),localStorage.removeItem(he.NumberOfInstances)}openConnectionProfileForm(e){this.dialog.open(che,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{IsSource:e,SourceDatabaseType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openMigrationProfileForm(){this.dialog.open(lme,{width:"30vw",minWidth:"1200px",maxWidth:"1600px",data:{IsSource:!1,SourceDatabaseType:this.sourceDatabaseType,Region:this.region}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances)),this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcloudPopup(e){this.dialog.open(She,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:e})}openTuneDatastreamForm(){this.dialog.open(whe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:{sourceType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet"),this.isSharded&&this.fetch.setDatastreamDetailsForShardedMigrations(this.datastreamConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openTuneGcsForm(){this.dialog.open(Dhe,{width:"4000px",minWidth:"400px",maxWidth:"500px"}).afterClosed().subscribe(()=>{this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet"),this.isSharded&&this.fetch.setGcsDetailsForShardedMigrations(this.gcsConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openDataflowForm(){this.dialog.open(yhe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(()=>{this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath")},this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet"),this.isSharded&&this.fetch.setDataflowDetailsForShardedMigrations(this.dataflowConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}endMigration(){this.dialog.open(vhe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{SpannerDatabaseName:this.resourcesGenerated.DatabaseName,SpannerDatabaseUrl:this.resourcesGenerated.DatabaseUrl,SourceDatabaseType:this.sourceDatabaseType,SourceDatabaseName:this.sourceDatabaseName}}).afterClosed().subscribe()}openSourceDetailsForm(){this.dialog.open(_he,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.sourceDatabaseType}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)})}openShardedBulkSourceDetailsForm(){this.dialog.open(Ohe,{width:"30vw",minWidth:"400px",maxWidth:"550px",data:{sourceDatabaseEngine:this.sourceDatabaseType,isRestoredSession:this.connectionType}}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))})}openTargetDetailsForm(){this.dialog.open(Que,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{Region:this.region,Instance:this.instance,Dialect:this.dialect}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet),(this.isSourceDetailsSet&&this.isTargetDetailSet&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode!==Kr.schemaOnly||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType!==Jn.SessionFile||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode===Kr.schemaOnly)&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcsMetadataDetailsForm(){this.dialog.open(dme,eoe).afterClosed().subscribe(()=>{this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet),this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}}})}migrate(){this.resetValues(),this.fetch.migrate({TargetDetails:this.targetDetails,DatastreamConfig:this.datastreamConfig,GcsConfig:this.gcsConfig,DataflowConfig:this.dataflowConfig,IsSharded:this.isSharded,MigrationType:this.selectedMigrationType,MigrationMode:this.selectedMigrationMode,skipForeignKeys:this.isForeignKeySkipped}).subscribe({next:()=>{this.selectedMigrationMode==Kr.dataOnly?this.selectedMigrationType==Hn.bulkMigration?(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())):(this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close")):(this.hasSchemaMigrationStarted=!0,localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString())),this.snack.openSnackBar("Migration started successfully","Close",5),this.subscribeMigrationProgress()},error:i=>{this.snack.openSnackBar(i.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.clearLocalStorage()}})}subscribeMigrationProgress(){var e=!1;this.subscription=ON(5e3).subscribe(i=>{this.fetch.getProgress().subscribe({next:o=>{""==o.ErrorMessage?o.ProgressStatus==rd.SchemaMigrationComplete?(localStorage.setItem(he.SchemaMigrationProgress,"100"),this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress)),this.selectedMigrationMode==Kr.schemaOnly?this.markMigrationComplete():this.selectedMigrationType==Hn.lowDowntimeMigration?(this.markSchemaMigrationComplete(),this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),e||(this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close"),e=!0)):(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()))):o.ProgressStatus==rd.DataMigrationComplete?(this.selectedMigrationType!=Hn.lowDowntimeMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.markMigrationComplete()):o.ProgressStatus==rd.DataWriteInProgress?(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.DataMigrationProgress,o.Progress.toString()),this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))):o.ProgressStatus==rd.ForeignKeyUpdateComplete?this.markMigrationComplete():o.ProgressStatus==rd.ForeignKeyUpdateInProgress&&(this.markSchemaMigrationComplete(),this.selectedMigrationType==Hn.bulkMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.markForeignKeyUpdateInitiation(),this.dataMigrationProgress=100,localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,o.Progress.toString()),this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress)),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.fetchGeneratedResources()):(this.errorMessage=o.ErrorMessage,this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.snack.openSnackBarWithoutTimeout(this.errorMessage,"Close"),this.schemaProgressMessage="Schema migration cancelled!",this.dataProgressMessage="Data migration cancelled!",this.foreignKeyProgressMessage="Foreign key update cancelled!",this.generatingResources=!1,this.isLowDtMigrationRunning=!1,this.clearLocalStorage())},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.clearLocalStorage()}})})}markForeignKeyUpdateInitiation(){this.dataMigrationProgress=100,this.dataProgressMessage="Data migration completed successfully!",localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),this.hasForeignKeyUpdateStarted=!0,this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))}markSchemaMigrationComplete(){this.schemaMigrationProgress=100,this.schemaProgressMessage="Schema migration completed successfully!",localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage)}downloadConfiguration(){this.fetch.getSourceProfile().subscribe({next:e=>{this.configuredMigrationProfile=e;var i=document.createElement("a");let o=JSON.stringify(this.configuredMigrationProfile,null,"\t").replace(/9223372036854776000/g,"9223372036854775807");i.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),i.download=localStorage.getItem(yt.TargetDB)+"-"+this.configuredMigrationProfile.configType+"-shardConfig.cfg",i.click()},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}fetchGeneratedResources(){this.fetch.getGeneratedResources().subscribe({next:e=>{this.isResourceGenerated=!0,this.resourcesGenerated=e,this.resourcesGenerated.ShardToShardResourcesMap=new Map(Object.entries(this.resourcesGenerated.ShardToShardResourcesMap)),this.prepareGeneratedResourcesTableData(this.resourcesGenerated)},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.selectedMigrationType===Hn.lowDowntimeMigration&&(this.isLowDtMigrationRunning=!0)}markMigrationComplete(){this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.dataProgressMessage="Data migration completed successfully!",this.schemaProgressMessage="Schema migration completed successfully!",this.schemaMigrationProgress=100,this.dataMigrationProgress=100,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key updated successfully!",this.fetchGeneratedResources(),this.clearLocalStorage(),this.refreshPrerequisites()}resetValues(){this.isMigrationInProgress=!this.isMigrationInProgress,this.hasSchemaMigrationStarted=!1,this.hasDataMigrationStarted=!1,this.generatingResources=!1,this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.isResourceGenerated=!1,this.hasForeignKeyUpdateStarted=!1,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key update in progress...",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.initializeLocalStorage()}initializeLocalStorage(){localStorage.setItem(he.MigrationMode,this.selectedMigrationMode),localStorage.setItem(he.MigrationType,this.selectedMigrationType),localStorage.setItem(he.isForeignKeySkipped,this.isForeignKeySkipped.toString()),localStorage.setItem(he.IsMigrationInProgress,this.isMigrationInProgress.toString()),localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString()),localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.HasForeignKeyUpdateStarted,this.hasForeignKeyUpdateStarted.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,this.foreignKeyUpdateProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage),localStorage.setItem(he.DataProgressMessage,this.dataProgressMessage),localStorage.setItem(he.ForeignKeyProgressMessage,this.foreignKeyProgressMessage),localStorage.setItem(he.IsTargetDetailSet,this.isTargetDetailSet.toString()),localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),localStorage.setItem(he.IsGcsMetadataPathSet,this.isGcsMetadataDetailSet.toString())}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}prepareGeneratedResourcesTableData(e){for(let[i,o]of e.ShardToShardResourcesMap){for(let r of o)r.DataShardId=i;this.displayedResources.push(...o)}this.displayedResourcesDataSource=new uP(this.displayedResources),this.displayedResourcesDataSource.paginator=this.paginator}ngOnDestroy(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(En),_(nr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-prepare-migration"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:100,vars:41,consts:[[1,"header"],[1,"breadcrumb"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],["mat-button","",1,"breadcrumb_prepare_migration",3,"routerLink"],[1,"header_action"],["mat-button","",3,"click"],["mat-button","","color","primary",3,"click"],[1,"body"],[1,"definition-container"],[4,"ngIf"],[1,"summary"],["id","summary-table","mat-table","",3,"dataSource"],["matColumnDef","Title"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Source"],["matColumnDef","Destination"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["appearance","outline"],[3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"configure",3,"matTooltip"],[1,"mat-card-class"],["class","static-prereqs",4,"ngIf"],[1,"point"],[1,"bullet"],["matTooltip","Configure the database in Spanner you want this migration to write to (up till now only GCP Project ID and Spanner Instance name have been configured.)",1,"configure"],["mat-button","","color","primary",3,"disabled","click"],["iconPositionEnd",""],["iconPositionEnd","","class","success","matTooltip","Target details configured","matTooltipPosition","above",4,"ngIf"],["class","point",4,"ngIf"],["class","mat-card-class",4,"ngIf"],["class","progress_bar",4,"ngIf"],[1,"mat-elevation-z8",3,"hidden"],["showFirstLastButtons","","aria-label","Select page",3,"pageSizeOptions"],[1,"migrate"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""],[3,"value"],[3,"ngModel","ngModelChange"],[1,"static-prereqs"],["href","https://cloud.google.com/datastream/docs/sources","target","_blank"],["href","https://cloud.google.com/dataflow/docs/concepts/security-and-permissions","target","_blank"],["href","https://cloud.google.com/dataflow/docs/guides/routes-firewall","target","_blank"],["iconPositionEnd","","class","success","matTooltip","Source details configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source details configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the connection info of all source shards to connect to and migrate data from.",1,"configure"],["iconPositionEnd","","matTooltip","Target details configured","matTooltipPosition","above",1,"success"],["matTooltip","Datastream will be used to capture change events from the source database. Please ensure you have met the pre-requistes required for setting up Datastream in your GCP environment. ",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Source connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source connection profile configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the source connection profile to allow Datastream to read from your source database",1,"configure"],["matTooltip","Create a connection profile for datastream to write to a GCS bucket. Spanner migration tool will automatically create the bucket for you.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Target connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Target connection profile configured","matTooltipPosition","above",1,"success"],["class","bullet",4,"ngIf"],["matTooltip","Datastream will be used to stream CDC from source to GCS. This helps you configure the runtime environment for the Datastream job(s) e.g Parallel Backfill workers.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Datastream Tuned","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Datastream Tuned","matTooltipPosition","above",1,"success"],["matTooltip","Use this to tune the GCS bucket options where Datastream outputs to and Dataflow reads from.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",1,"success"],["matTooltip","Dataflow will be used to perform the actual migration of data from source to Spanner. This helps you configure the execution environment for Dataflow jobs e.g VPC.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Dataflow Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Dataflow Configured","matTooltipPosition","above",1,"success"],["matTooltip","Specify existing or new GCS path to store metadata for migration.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",1,"success"],["matTooltip","Download the configuration done above as JSON.",1,"configure"],["iconPositionEnd","","matTooltip","Download configured shards as JSON","matTooltipPosition","above"],[1,"progress_bar"],["mode","determinate",3,"value"],[1,"spinner"],[3,"diameter"],[1,"spinner-text"],["target","_blank",3,"href"],["mat-button","",1,"configure",3,"click"],["matTooltip","Equivalent gCloud command","matTooltipPosition","above"],[1,"mat-elevation-z8"],["id","resources-table","mat-table","",3,"dataSource"],["matColumnDef","shardId"],["matColumnDef","resourceType"],["matColumnDef","resourceName"],["matColumnDef","resourceUrl"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"a",2),h(3,"Select Source"),l(),d(4,"span"),h(5,">"),l(),d(6,"a",3),h(7),l(),d(8,"span"),h(9,">"),l(),d(10,"a",4)(11,"b"),h(12,"Prepare Migration"),l()()(),d(13,"div",5)(14,"button",6),A("click",function(){return o.openSaveSessionSidenav()}),h(15," SAVE SESSION "),l(),d(16,"button",7),A("click",function(){return o.downloadSession()}),h(17,"DOWNLOAD SESSION FILE"),l()()(),D(18,"br"),d(19,"div",8)(20,"div",9),y(21,ume,2,0,"h2",10)(22,hme,2,0,"h2",10),d(23,"div",11)(24,"table",12),me(25,13),y(26,mme,2,0,"th",14)(27,pme,3,1,"td",15),pe(),me(28,16),y(29,fme,2,0,"th",14)(30,gme,2,1,"td",15),pe(),me(31,17),y(32,_me,2,0,"th",14)(33,bme,2,1,"td",15),pe(),y(34,vme,1,0,"tr",18)(35,yme,1,0,"tr",19),l()()(),D(36,"br"),d(37,"mat-form-field",20)(38,"mat-label"),h(39,"Migration Mode:"),l(),d(40,"mat-select",21),un("ngModelChange",function(a){return kn(o.selectedMigrationMode,a)||(o.selectedMigrationMode=a),a}),A("selectionChange",function(){return o.refreshPrerequisites()}),y(41,Cme,2,2,"mat-option",22),l()(),d(42,"mat-icon",23),h(43,"info"),l(),D(44,"br"),y(45,xme,9,3,"div",10)(46,Sme,6,2,"div",10),d(47,"div",24)(48,"mat-card")(49,"mat-card-title"),h(50,"Prerequisites"),l(),d(51,"mat-card-subtitle"),h(52,"Before we begin, please ensure you have done the following:"),l(),y(53,kme,6,0,"div",25)(54,Mme,20,0,"div",25),l()(),d(55,"div",24)(56,"mat-card"),y(57,Ime,14,2,"div",10)(58,Ome,16,2,"div",10),d(59,"div")(60,"mat-card-title"),h(61,"Target details:"),l(),d(62,"p",26)(63,"span",27),h(64,"1"),l(),d(65,"span"),h(66,"Configure Spanner Database "),d(67,"mat-icon",28),h(68," info"),l()(),d(69,"span")(70,"button",29),A("click",function(){return o.openTargetDetailsForm()}),h(71," Configure "),d(72,"mat-icon",30),h(73,"edit"),l(),y(74,Ame,2,0,"mat-icon",31),l()()(),y(75,Rme,13,2,"p",32)(76,Fme,13,2,"p",32)(77,Bme,13,2,"p",32)(78,Hme,13,4,"p",32)(79,qme,13,4,"p",32)(80,Yme,13,4,"p",32)(81,epe,13,4,"p",32)(82,ipe,11,2,"p",32),l()()(),y(83,npe,25,3,"div",33)(84,ope,32,6,"div",33)(85,rpe,5,2,"div",34)(86,ape,5,2,"div",34)(87,spe,5,2,"div",34)(88,cpe,8,1,"div",10),D(89,"br")(90,"br"),y(91,Mpe,31,12,"div",10),d(92,"div",35),D(93,"mat-paginator",36),l(),D(94,"br")(95,"br"),y(96,Tpe,4,0,"div",10),d(97,"div",37),y(98,Ipe,3,1,"span",10)(99,Epe,3,0,"span",10),l()()),2&i&&(m(2),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(),xe("Configure Schema (",o.dialect," Dialect)"),m(3),f("routerLink","/prepare-migration"),m(11),f("ngIf",!o.isSharded),m(),f("ngIf",o.isSharded),m(2),f("dataSource",o.dataSource),m(10),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(5),dn("ngModel",o.selectedMigrationMode),m(),f("ngForOf",o.migrationModes),m(),f("matTooltip",o.migrationModesHelpText.get(o.selectedMigrationMode)),m(3),f("ngIf","Schema"!=o.selectedMigrationMode),m(),f("ngIf",!("Schema"===o.selectedMigrationMode||"lowdt"===o.selectedMigrationType)),m(7),f("ngIf","bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(3),f("ngIf","sessionFile"===o.connectionType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf",o.isSharded&&"bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(12),f("disabled",o.isMigrationInProgress||o.isLowDtMigrationRunning),m(4),f("ngIf",o.isTargetDetailSet),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf",o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf",o.isTargetDetailSet),m(),f("ngIf",o.hasSchemaMigrationStarted),m(),f("ngIf",o.hasDataMigrationStarted),m(),f("ngIf",o.hasForeignKeyUpdateStarted),m(),f("ngIf",o.generatingResources),m(3),f("ngIf",o.isResourceGenerated),m(),f("hidden",!(o.isResourceGenerated&&"lowdt"===o.selectedMigrationType&&o.isSharded)),m(),f("pageSizeOptions",No(40,Ope)),m(3),f("ngIf",o.isResourceGenerated&&"lowdt"===o.selectedMigrationType),m(2),f("ngIf",!o.isLowDtMigrationRunning),m(),f("ngIf",o.isLowDtMigrationRunning))},dependencies:[rn,It,qr,zE,Yt,Mi,Gu,O0,E0,vO,Di,xi,Xn,Tn,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,WC,vn,Nl,sd],styles:[".header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_workspace[_ngcontent-%COMP%]{color:#0000008f}.header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_prepare_migration[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.definition-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.definition-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}.body[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}#summary-table[_ngcontent-%COMP%]{min-width:30%;max-width:50%}#summary-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:10%}.configure[_ngcontent-%COMP%]{color:#1967d2}.migrate[_ngcontent-%COMP%]{margin-top:10px}#resources-table[_ngcontent-%COMP%]{width:100%}"]})}return t})()},{path:"**",redirectTo:"/",pathMatch:"full"}];let Ppe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t});static#i=this.\u0275inj=at({imports:[wN.forRoot(Ape),wN]})}return t})(),Rpe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.data=r,this.dialogRef=a,this.errMessage="",this.updateConfigForm=new ti({GCPProjectID:new U(r.GCPProjectID,[ee.required]),SpannerInstanceID:new U(r.SpannerInstanceID,[ee.required])}),a.disableClose=!0}updateSpannerConfig(){let e=this.updateConfigForm.value;this.fetch.setSpannerConfig({GCPProjectID:e.GCPProjectID,SpannerInstanceID:e.SpannerInstanceID}).subscribe({next:o=>{o.IsMetadataDbCreated&&this.snack.openSnackBar("Metadata database not found. A new database has been created to store session metadata.","Close",5),this.snack.openSnackBar(o.IsConfigValid?"Spanner Config updated successfully":"Invalid Spanner Configuration","Close",5),this.dialogRef.close({...o}),this.dataService.updateIsOffline(),this.dataService.updateConfig(o),this.dataService.getAllSessions()},error:o=>{this.snack.openSnackBar(o.message,"Close")}})}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-update-spanner-config-form"]],decls:20,vars:3,consts:[["mat-dialog-content",""],[1,"save-session-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","project id","type","text","formControlName","GCPProjectID","id","project-id"],["hintLabel","Min. 2 characters and Max. 64 characters","appearance","outline",1,"full-width"],["matInput","","placeholder","instance id","type","text","required","","minlength","2","maxlength","64","pattern","^[a-z]([-a-z0-9]*[a-z0-9])?","formControlName","SpannerInstanceID","id","instance-id"],["align","end"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["id","save-button","mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Connect to Spanner"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Project ID"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Instance ID"),l(),D(12,"input",5),d(13,"mat-hint",6),h(14),l()()()(),d(15,"div",7)(16,"button",8),h(17,"CANCEL"),l(),d(18,"button",9),A("click",function(){return o.updateSpannerConfig()}),h(19," SAVE "),l()()),2&i&&(m(),f("formGroup",o.updateConfigForm),m(13),xe("",(null==o.updateConfigForm.value.SpannerInstanceID?null:o.updateConfigForm.value.SpannerInstanceID.length)||0,"/64"),m(4),f("disabled",!o.updateConfigForm.valid))},dependencies:[Yt,Di,xi,sc,qi,_n,Ci,_i,Bi,Do,X0,J0,eC,wi,zi,zn,So,ko],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"]})}return t})();function Npe(t,n){1&t&&(d(0,"mat-icon",11),h(1," warning "),l())}function Fpe(t,n){1&t&&(d(0,"mat-icon",12),h(1," check_circle "),l())}function Lpe(t,n){1&t&&(d(0,"mat-icon",13),h(1," warning "),l())}function Bpe(t,n){1&t&&(d(0,"div")(1,"span",null,14),h(3,"Spanner database is not configured, click on edit button to configure "),l()())}function Vpe(t,n){if(1&t&&(d(0,"div")(1,"span",15)(2,"b"),h(3,"Project Id: "),l(),h(4),l(),d(5,"span",16)(6,"b"),h(7,"Spanner Instance Id: "),l(),h(8),l()()),2&t){const e=C();m(4),Pe(e.spannerConfig.GCPProjectID),m(4),Pe(e.spannerConfig.SpannerInstanceID)}}let jpe=(()=>{class t{constructor(e,i,o,r,a){this.data=e,this.dialog=i,this.sidenav=o,this.clickEvent=r,this.loaderService=a,this.isOfflineStatus=!1,this.spannerConfig={GCPProjectID:"",SpannerInstanceID:""}}ngOnInit(){this.data.config.subscribe(e=>{this.spannerConfig=e}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}}),this.clickEvent.spannerConfig.subscribe(e=>{e&&this.openEditForm()})}openEditForm(){this.dialog.open(Rpe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(i=>{i&&(this.spannerConfig=i)})}showWarning(){return!this.spannerConfig.GCPProjectID&&!this.spannerConfig.SpannerInstanceID}openInstructionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("instruction")}openUserGuide(){window.open("https://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/SpannerMigrationToolUIUserGuide.pdf","_blank")}stopLoading(){this.loaderService.stopLoader(),this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Hr),_(eo),_(or),_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-header"]],decls:16,vars:6,consts:[["color","secondry",1,"header-container"],[1,"pointer",3,"routerLink","click"],[1,"menu-spacer"],[1,"right_container"],[1,"spanner_config"],["class","icon warning","matTooltip","Invalid spanner configuration. Working in offline mode",4,"ngIf"],["id","check-icon","class","icon success","matTooltip","Valid spanner configuration.",4,"ngIf"],["class","icon warning","matTooltip","Spanner configuration has not been set.",4,"ngIf"],[4,"ngIf"],["id","edit-icon","matTooltip","Edit Settings",1,"cursor-pointer",3,"click"],["mat-icon-button","","matTooltip","Instruction",1,"example-icon","favorite-icon",3,"click"],["matTooltip","Invalid spanner configuration. Working in offline mode",1,"icon","warning"],["id","check-icon","matTooltip","Valid spanner configuration.",1,"icon","success"],["matTooltip","Spanner configuration has not been set.",1,"icon","warning"],["name",""],[1,"pid"],[1,"iid"]],template:function(i,o){1&i&&(d(0,"mat-toolbar",0)(1,"span",1),A("click",function(){return o.stopLoading()}),h(2," Spanner migration tool"),l(),D(3,"span",2),d(4,"div",3)(5,"div",4),y(6,Npe,2,0,"mat-icon",5)(7,Fpe,2,0,"mat-icon",6)(8,Lpe,2,0,"mat-icon",7)(9,Bpe,4,0,"div",8)(10,Vpe,9,2,"div",8),d(11,"mat-icon",9),A("click",function(){return o.openEditForm()}),h(12,"edit"),l()(),d(13,"button",10),A("click",function(){return o.openUserGuide()}),d(14,"mat-icon"),h(15,"help"),l()()()()),2&i&&(m(),f("routerLink","/"),m(5),f("ngIf",o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",!o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",!o.showWarning()))},dependencies:[It,qr,Aq,ba,Mi,vn],styles:[".header-container[_ngcontent-%COMP%]{padding:0 20px}.menu-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.right_container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%]{margin:0 15px 0 0;display:flex;align-items:center;border-radius:5px;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:2px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:300;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pid[_ngcontent-%COMP%]{margin-right:10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pointer[_ngcontent-%COMP%]{cursor:pointer}.cursor-pointer[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function zpe(t,n){1&t&&(d(0,"div",1),D(1,"mat-progress-bar",2),l())}let Hpe=(()=>{class t{constructor(e){this.loaderService=e,this.showProgress=!0}ngOnInit(){this.loaderService.isLoading.subscribe(e=>{this.showProgress=e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-loader"]],decls:1,vars:1,consts:[["class","progress-bar-wrapper",4,"ngIf"],[1,"progress-bar-wrapper"],["mode","indeterminate","value","40"]],template:function(i,o){1&i&&y(0,zpe,2,0,"div",0),2&i&&f("ngIf",o.showProgress)},dependencies:[It,vO],styles:[".progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%]{height:2px}"]})}return t})();function Upe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function $pe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Gpe(t,n){if(1&t){const e=_e();d(0,"button",20),A("click",function(){ie(e);const o=C().index;return ne(C().removeColumnForm(o))}),d(1,"mat-icon"),h(2,"remove"),l(),d(3,"span"),h(4,"REMOVE COLUMN"),l()()}}function qpe(t,n){if(1&t){const e=_e();me(0),d(1,"mat-card",13)(2,"div",14)(3,"mat-form-field",1)(4,"mat-label"),h(5,"Column Name"),l(),d(6,"mat-select",15),A("selectionChange",function(){return ie(e),ne(C().selectedColumnChange())}),y(7,$pe,2,2,"mat-option",3),l()(),d(8,"mat-form-field",1)(9,"mat-label"),h(10,"Sort"),l(),d(11,"mat-select",16)(12,"mat-option",17),h(13,"Ascending"),l(),d(14,"mat-option",18),h(15,"Descending"),l()()()(),y(16,Gpe,5,0,"button",19),l(),pe()}if(2&t){const e=n.index,i=C();m(2),f("formGroupName",e),m(5),f("ngForOf",i.addColumnsList[e]),m(9),f("ngIf",!i.viewRuleFlag)}}function Wpe(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().addNewColumnForm())}),d(1,"mat-icon"),h(2,"add"),l(),d(3,"span"),h(4,"ADD COLUMN"),l()()}}function Kpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",22),A("click",function(){return ie(e),ne(C().addIndex())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addIndexForm.valid&&e.ruleNameValid&&e.ColsArray.controls.length>0))}}function Zpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",23),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2," DELETE RULE "),l()()}}let Ype=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.tableNames=[],this.totalColumns=[],this.addColumnsList=[],this.commonColumns=[],this.viewRuleData={},this.viewRuleFlag=!1,this.conv={},this.ruleId="",this.addIndexForm=this.fb.group({tableName:["",ee.required],indexName:["",[ee.required,ee.pattern("^[A-Za-z][A-Za-z0-9_]{0,127}$")]],ColsArray:this.fb.array([])})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name)}}),this.sidenav.sidenavAddIndexTable.subscribe({next:e=>{this.addIndexForm.controls.tableName.setValue(e),""!==e&&this.selectedTableChange(e)}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.viewRuleFlag&&this.getRuleData(this.viewRuleData)})})}getRuleData(e){this.ruleId=e?.Id;let i=this.conv.SpSchema[e?.Data?.TableId]?.Name;this.addIndexForm.controls.tableName.setValue(i),this.addIndexForm.controls.indexName.setValue(e?.Data?.Name),this.selectedTableChange(i),this.setColArraysForViewRules(e?.Data?.TableId,e?.Data?.Keys),this.addIndexForm.disable()}setColArraysForViewRules(e,i){if(this.ColsArray.clear(),i)for(let o=0;oo.ColDefs[r].Name)}this.ColsArray.clear(),this.commonColumns=[],this.addColumnsList=[],this.updateCommonColumns()}addNewColumnForm(){let e=this.fb.group({columnName:["",ee.required],sort:["",ee.required]});this.ColsArray.push(e),this.updateCommonColumns(),this.addColumnsList.push([...this.commonColumns])}selectedColumnChange(){this.updateCommonColumns(),this.addColumnsList=this.addColumnsList.map((e,i)=>{const o=[...this.commonColumns];return""!==this.ColsArray.value[i].columnName&&o.push(this.ColsArray.value[i].columnName),o})}updateCommonColumns(){this.commonColumns=this.totalColumns.filter(e=>{let i=!0;return this.ColsArray.value.forEach(o=>{o.columnName===e&&(i=!1)}),i})}removeColumnForm(e){this.ColsArray.removeAt(e),this.addColumnsList=this.addColumnsList.filter((i,o)=>o!==e),this.selectedColumnChange()}addIndex(){let e=this.addIndexForm.value,i=[],o=this.conversion.getTableIdFromSpName(e.tableName,this.conv);i.push({Name:e.indexName,TableId:o,Unique:!1,Keys:e.ColsArray.map((r,a)=>({ColId:this.conversion.getColIdFromSpannerColName(r.columnName,o,this.conv),Desc:"true"===r.sort,Order:a+1})),Id:""}),this.applyRule(i[0]),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}applyRule(e){let o=this.conversion.getTableIdFromSpName(this.addIndexForm.value.tableName,this.conv);this.data.applyRule({Name:this.ruleName,Type:"add_index",ObjectType:"Table",AssociatedObjects:o,Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-index-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:7,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","formControlName","indexName",1,"input-field"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["align","end"],["formArrayName","ColsArray",1,"addcol-form"],[4,"ngFor","ngForOf"],["mat-button","","color","primary","class","add-column-btn","type","button",3,"click",4,"ngIf"],[4,"ngIf"],[3,"value"],[1,"column-form-card"],[3,"formGroupName"],["matSelect","","formControlName","columnName","required","true",1,"input-field",3,"selectionChange"],["formControlName","sort","required","true",1,"input-field"],["value","false"],["value","true"],["mat-button","","color","primary",3,"click",4,"ngIf"],["mat-button","","color","primary",3,"click"],["mat-button","","color","primary","type","button",1,"add-column-btn",3,"click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"disabled","click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For Table"),l(),d(4,"mat-select",2),A("selectionChange",function(a){return o.selectedTableChange(a.value)}),y(5,Upe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"Index Name"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Max. 128 characters, and starts with a letter. "),d(13,"a",6),h(14,"More Details"),l()()(),d(15,"mat-hint",7),h(16),l()(),me(17,8),y(18,qpe,17,3,"ng-container",9)(19,Wpe,5,0,"button",10),D(20,"br"),y(21,Kpe,3,1,"div",11)(22,Zpe,3,0,"div",11),pe(),l()),2&i&&(f("formGroup",o.addIndexForm),m(5),f("ngForOf",o.tableNames),m(11),xe("",(null==o.addIndexForm.value.indexName?null:o.addIndexForm.value.indexName.length)||0,"/128"),m(2),f("ngForOf",o.ColsArray.controls),m(),f("ngIf",o.addColumnsList.length{class t{constructor(e,i,o,r,a){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.fetch=a,this.ruleNameValid=!1,this.ruleType="",this.ruleName="",this.resetRuleType=new Ne,this.conversionType={},this.sourceType=[],this.destinationType=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.pgSQLToStandardTypeTypemap=new Map,this.standardTypeToPGSQLTypemap=new Map,this.conv={},this.isPostgreSQLDialect=!1,this.addGlobalDataTypeForm=this.fb.group({objectType:["column",ee.required],table:["allTable",ee.required],column:["allColumn",ee.required],sourceType:["",ee.required],destinationType:["",ee.required]})}ngOnInit(){this.data.typeMap.subscribe({next:e=>{this.conversionType=e,this.sourceType=Object.keys(this.conversionType)}}),this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conversion.pgSQLToStandardTypeTypeMap.subscribe(e=>{this.pgSQLToStandardTypeTypemap=e}),this.conversion.standardTypeToPGSQLTypeMap.subscribe(e=>{this.standardTypeToPGSQLTypemap=e}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)})})}setViewRuleData(e){if(this.ruleId=e?.Id,this.addGlobalDataTypeForm.controls.sourceType.setValue(Object.keys(e?.Data)[0]),this.updateDestinationType(Object.keys(e?.Data)[0]),this.isPostgreSQLDialect){let i=this.standardTypeToPGSQLTypemap.get(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.controls.destinationType.setValue(void 0===i?Object.values(this.viewRuleData?.Data)[0]:i)}else this.addGlobalDataTypeForm.controls.destinationType.setValue(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.disable()}formSubmit(){const e=this.addGlobalDataTypeForm.value,i=e.sourceType,o={};if(this.isPostgreSQLDialect){let r=this.pgSQLToStandardTypeTypemap.get(e.destinationType);o[i]=void 0===r?e.destinationType:r}else o[i]=e.destinationType;this.applyRule(o),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}updateDestinationType(e){const i=this.conversionType[e],o=[];i?.forEach(r=>{o.push(r.DisplayT)}),this.destinationType=o}applyRule(e){this.data.applyRule({Name:this.ruleName,Type:"global_datatype_change",ObjectType:"Column",AssociatedObjects:"All Columns",Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-global-datatype-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleType:"ruleType",ruleName:"ruleName"},outputs:{resetRuleType:"resetRuleType"},decls:34,vars:5,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","objectType","required","true",1,"input-field"],["value","column"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","sourceType","required","true",1,"input-field",3,"selectionChange"],["sourceField",""],[3,"value",4,"ngFor","ngForOf"],["appearance","outline",4,"ngIf"],[4,"ngIf"],[3,"value"],["matSelect","","formControlName","destinationType","required","true",1,"input-field"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For object type"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"Column"),l()()(),d(7,"h3"),h(8,"When"),l(),d(9,"mat-form-field",1)(10,"mat-label"),h(11,"Table is"),l(),d(12,"mat-select",4)(13,"mat-option",5),h(14,"All tables"),l()()(),d(15,"mat-form-field",1)(16,"mat-label"),h(17,"and column is"),l(),d(18,"mat-select",6)(19,"mat-option",7),h(20,"All column"),l()()(),d(21,"h3"),h(22,"Convert from"),l(),d(23,"mat-form-field",1)(24,"mat-label"),h(25,"Source data type"),l(),d(26,"mat-select",8,9),A("selectionChange",function(){ie(r);const s=Ft(27);return ne(o.updateDestinationType(s.value))}),y(28,Qpe,2,2,"mat-option",10),l()(),d(29,"h3"),h(30,"Convert to"),l(),y(31,Jpe,5,1,"mat-form-field",11)(32,efe,3,1,"div",12)(33,tfe,3,0,"div",12),l()}if(2&i){const r=Ft(27);f("formGroup",o.addGlobalDataTypeForm),m(28),f("ngForOf",o.sourceType),m(3),f("ngIf",r.selected),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag)}},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;padding:0}"]})}return t})();function nfe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function ofe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.name)}}function rfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",11),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.editColMaxLengthForm.valid&&e.ruleNameValid))}}function afe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",12),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let sfe=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.ruleId="",this.tableNames=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.conv={},this.spTypes=[],this.hintlabel="",this.editColMaxLengthForm=this.fb.group({tableName:["",ee.required],column:["allColumn",ee.required],spDataType:["",ee.required],maxColLength:["",[ee.required,ee.pattern("([1-9][0-9]*|MAX)")]]})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name),this.tableNames.push("All tables"),"postgresql"===this.conv.SpDialect?(this.spTypes=[{name:"VARCHAR",value:"STRING"}],this.hintlabel="Max "+In.StringMaxLength+" for VARCHAR"):(this.spTypes=[{name:"STRING",value:"STRING"},{name:"BYTES",value:"BYTES"}],this.hintlabel="Max "+In.StringMaxLength+" for STRING and "+In.ByteMaxLength+" for BYTES")}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{if(this.viewRuleData=i,this.viewRuleData){this.ruleId=this.viewRuleData?.Id;let o=this.viewRuleData?.AssociatedObjects;this.editColMaxLengthForm.controls.tableName.setValue(o),this.editColMaxLengthForm.controls.spDataType.setValue(this.viewRuleData?.Data?.spDataType),this.editColMaxLengthForm.controls.maxColLength.setValue(this.viewRuleData?.Data?.spColMaxLength),this.editColMaxLengthForm.disable()}})})}formSubmit(){const e=this.editColMaxLengthForm.value;(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&e.spColMaxLength>In.ByteMaxLength)&&(e.spColMaxLength=In.StorageMaxLength);const i={spDataType:e.spDataType,spColMaxLength:e.maxColLength};let r=this.conversion.getTableIdFromSpName(e.tableName,this.conv);""===r&&(r="All tables"),this.data.applyRule({Name:this.ruleName,Type:"edit_column_max_length",ObjectType:"Table",AssociatedObjects:r,Enabled:!0,Data:i,Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-column-max-length"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:6,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","spDataType","required","true",1,"input-field"],["appearance","outline",3,"hintLabel"],["matInput","","formControlName","maxColLength",1,"input-field"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2),y(5,nfe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"and column is"),l(),d(9,"mat-select",4)(10,"mat-option",5),h(11,"All column"),l()()(),d(12,"mat-form-field",1)(13,"mat-label"),h(14,"and Spanner Type is"),l(),d(15,"mat-select",6),y(16,ofe,2,2,"mat-option",3),l()(),d(17,"mat-form-field",7)(18,"mat-label"),h(19,"Max column length"),l(),D(20,"input",8),l(),y(21,rfe,3,1,"div",9)(22,afe,3,0,"div",9),l()),2&i&&(f("formGroup",o.editColMaxLengthForm),m(5),f("ngForOf",o.tableNames),m(11),f("ngForOf",o.spTypes),m(),f("hintLabel",o.hintlabel),m(4),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,Ci,_i,Bi,Do,wi,zi]})}return t})();function cfe(t,n){if(1&t&&(d(0,"mat-option",7),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.display)}}function lfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",8),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addShardIdPrimaryKeyForm.valid&&e.ruleNameValid))}}function dfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",9),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let ufe=(()=>{class t{constructor(e,i,o){this.fb=e,this.data=i,this.sidenav=o,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.viewRuleFlag=!1,this.viewRuleData={},this.primaryKeyOrder=[{value:!0,display:"At the beginning"},{value:!1,display:"At the end"}],this.addShardIdPrimaryKeyForm=this.fb.group({table:["allTable",ee.required],primaryKeyOrder:["",ee.required]})}ngOnInit(){this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&(this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)}),this.addShardIdPrimaryKeyForm.disable())})}formSubmit(){this.data.applyRule({Name:this.ruleName,Type:"add_shard_id_primary_key",AssociatedObjects:"All Tables",Enabled:!0,Data:{AddedAtTheStart:this.addShardIdPrimaryKeyForm.value.primaryKeyOrder},Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}setViewRuleData(e){this.ruleId=e?.Id,this.addShardIdPrimaryKeyForm.controls.primaryKeyOrder.setValue(e?.Data?.AddedAtTheStart)}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-shard-id-primary-key"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:14,vars:4,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","primaryKeyOrder","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"All tables"),l()()(),d(7,"mat-form-field",1)(8,"mat-label"),h(9,"Order in Primary Key"),l(),d(10,"mat-select",4),y(11,cfe,2,2,"mat-option",5),l()(),y(12,lfe,3,1,"div",6)(13,dfe,3,0,"div",6),l()),2&i&&(f("formGroup",o.addShardIdPrimaryKeyForm),m(11),f("ngForOf",o.primaryKeyOrder),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi]})}return t})();function hfe(t,n){1&t&&(d(0,"mat-option",18),h(1,"Add shard id column as primary key"),l())}function mfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-global-datatype-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function pfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-index-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function ffe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-column-max-length",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function gfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-shard-id-primary-key",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}let _fe=(()=>{class t{constructor(e,i){this.sidenav=e,this.data=i,this.currentRules=[],this.ruleForm=new ti({ruleName:new U("",[ee.required,ee.pattern("^[a-zA-Z].{0,59}$")]),ruleType:new U("",[ee.required])}),this.rulename="",this.ruletype="",this.viewRuleData=[],this.viewRuleFlag=!1,this.shardedMigration=!1}ngOnInit(){this.data.conv.subscribe({next:e=>{Object.keys(e.SpSchema),this.shardedMigration=!!e.IsSharded}}),this.ruleForm.valueChanges.subscribe(()=>{this.rulename=this.ruleForm.controls.ruleName?.value,this.ruletype=this.ruleForm.controls.ruleType?.value}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag?this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.setViewRuleData(this.viewRuleData)}):(this.ruleForm.enable(),this.ruleForm.controls.ruleType.setValue(""),this.sidenav.sidenavRuleType.subscribe(i=>{"addIndex"===i&&this.ruleForm.controls.ruleType.setValue("addIndex")}))})}setViewRuleData(e){this.ruleForm.disable(),this.ruleForm.controls.ruleName.setValue(e?.Name),this.ruleForm.controls.ruleType.setValue(this.getViewRuleType(this.viewRuleData?.Type))}closeSidenav(){this.sidenav.closeSidenav()}get ruleType(){return this.ruleForm.get("ruleType")?.value}resetRuleType(){this.ruleForm.controls.ruleType.setValue(""),this.ruleForm.controls.ruleName.setValue(""),this.ruleForm.markAsUntouched()}getViewRuleType(e){switch(e){case"add_index":return"addIndex";case"global_datatype_change":return"globalDataType";case"edit_column_max_length":return"changeMaxLength";case"add_shard_id_primary_key":return"addShardIdPrimaryKey"}return""}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Hi))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-rule"]],inputs:{currentRules:"currentRules"},decls:36,vars:8,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[3,"formGroup"],["hintLabel","Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","formControlName","ruleName",1,"input-field"],["align","end"],["appearance","outline"],["matSelect","","formControlName","ruleType","required","true",1,"input-field"],["ruleType",""],["value","globalDataType"],["value","addIndex"],["value","changeMaxLength"],["value","addShardIdPrimaryKey",4,"ngIf"],[4,"ngIf"],["value","addShardIdPrimaryKey"],[3,"ruleNameValid","ruleName","ruleType","resetRuleType"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"form",6)(9,"h3"),h(10,"Rule info"),l(),d(11,"mat-form-field",7)(12,"mat-label"),h(13,"Rule name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),d(17,"h3"),h(18,"Rule definition"),l(),d(19,"mat-form-field",10)(20,"mat-label"),h(21,"Rule type"),l(),d(22,"mat-select",11,12)(24,"mat-option",13),h(25,"Change global data type"),l(),d(26,"mat-option",14),h(27,"Add Index"),l(),d(28,"mat-option",15),h(29,"Change default max column length"),l(),y(30,hfe,2,0,"mat-option",16),l()(),D(31,"br"),l(),y(32,mfe,2,3,"div",17)(33,pfe,2,3,"div",17)(34,ffe,2,3,"div",17)(35,gfe,2,3,"div",17),l()()),2&i){const r=Ft(23);m(3),Pe(o.viewRuleFlag?"View Rule":"Add Rule"),m(5),f("formGroup",o.ruleForm),m(8),xe("",(null==o.ruleForm.value.ruleName?null:o.ruleForm.value.ruleName.length)||0,"/60"),m(14),f("ngIf",o.shardedMigration),m(2),f("ngIf","globalDataType"===r.value),m(),f("ngIf","addIndex"===r.value),m(),f("ngIf","changeMaxLength"===r.value),m(),f("ngIf","addShardIdPrimaryKey"===r.value)}},dependencies:[It,ba,Mi,Di,xi,sc,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ype,ife,sfe,ufe],styles:["mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:0} .mat-mdc-form-field-wrapper{padding-bottom:14px}"]})}return t})();function bfe(t,n){1&t&&(d(0,"th",39),h(1,"Total tables"),l())}function vfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.total)}}function yfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",41),h(2," error "),l(),h(3,"Converted with many issues "),l())}function Cfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.bad)}}function wfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",42),h(2," warning"),l(),h(3,"Conversion some warnings & suggestions "),l())}function xfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ok)}}function Dfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",43),h(2," check_circle "),l(),h(3,"100% conversion "),l())}function Sfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.good)}}function kfe(t,n){1&t&&D(0,"tr",44)}function Mfe(t,n){1&t&&D(0,"tr",45)}function Tfe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Ife(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Efe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Ofe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Afe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Pfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Rfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Nfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ffe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Lfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Nfe,2,0,"mat-icon",37)(3,Ffe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Bfe(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Vfe(t,n){1&t&&D(0,"tr",44)}function jfe(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function zfe(t,n){1&t&&D(0,"tr",75)}const Eg=()=>["expandedDetail"];function Hfe(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",46),h(4," error "),l(),h(5," ERRORS "),l()(),d(6,"table",47),me(7,48),y(8,Tfe,2,0,"th",49)(9,Ife,2,1,"td",50),pe(),me(10,51),y(11,Efe,2,0,"th",52)(12,Ofe,2,1,"td",53),pe(),me(13,54),y(14,Afe,2,0,"th",55)(15,Pfe,2,1,"td",56),pe(),me(16,57),y(17,Rfe,2,0,"th",58)(18,Lfe,4,2,"td",59),pe(),me(19,60),y(20,Bfe,4,3,"td",59),pe(),y(21,Vfe,1,0,"tr",34)(22,jfe,1,2,"tr",61)(23,zfe,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Errors),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Ufe(t,n){1&t&&D(0,"br")}function $fe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Gfe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function qfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Wfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Kfe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Zfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Yfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Qfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Xfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Jfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Qfe,2,0,"mat-icon",37)(3,Xfe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function ege(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function tge(t,n){1&t&&D(0,"tr",44)}function ige(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function nge(t,n){1&t&&D(0,"tr",75)}function oge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",76),h(4," warning "),l(),h(5," WARNINGS "),l()(),d(6,"table",47),me(7,48),y(8,$fe,2,0,"th",49)(9,Gfe,2,1,"td",50),pe(),me(10,51),y(11,qfe,2,0,"th",52)(12,Wfe,2,1,"td",53),pe(),me(13,54),y(14,Kfe,2,0,"th",55)(15,Zfe,2,1,"td",56),pe(),me(16,57),y(17,Yfe,2,0,"th",58)(18,Jfe,4,2,"td",59),pe(),me(19,60),y(20,ege,4,3,"td",59),pe(),y(21,tge,1,0,"tr",34)(22,ige,1,2,"tr",61)(23,nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Warnings),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function rge(t,n){1&t&&D(0,"br")}function age(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function sge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function cge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function lge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function dge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function uge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function hge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function mge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function pge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function fge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,mge,2,0,"mat-icon",37)(3,pge,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function gge(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function _ge(t,n){1&t&&D(0,"tr",44)}function bge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function vge(t,n){1&t&&D(0,"tr",75)}function yge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",77),h(4," wb_incandescent "),l(),h(5," SUGGESTIONS "),l()(),d(6,"table",47),me(7,48),y(8,age,2,0,"th",49)(9,sge,2,1,"td",50),pe(),me(10,51),y(11,cge,2,0,"th",52)(12,lge,2,1,"td",53),pe(),me(13,54),y(14,dge,2,0,"th",55)(15,uge,2,1,"td",56),pe(),me(16,57),y(17,hge,2,0,"th",58)(18,fge,4,2,"td",59),pe(),me(19,60),y(20,gge,4,3,"td",59),pe(),y(21,_ge,1,0,"tr",34)(22,bge,1,2,"tr",61)(23,vge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Suggestions),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Cge(t,n){1&t&&D(0,"br")}function wge(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function xge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Dge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Sge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function kge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Mge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Tge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Ige(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ege(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Oge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Ige,2,0,"mat-icon",37)(3,Ege,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Age(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Pge(t,n){1&t&&D(0,"tr",44)}function Rge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function Nge(t,n){1&t&&D(0,"tr",75)}function Fge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",78),h(4," check_circle "),l(),h(5," NOTES "),l()(),d(6,"table",47),me(7,48),y(8,wge,2,0,"th",49)(9,xge,2,1,"td",50),pe(),me(10,51),y(11,Dge,2,0,"th",52)(12,Sge,2,1,"td",53),pe(),me(13,54),y(14,kge,2,0,"th",55)(15,Mge,2,1,"td",56),pe(),me(16,57),y(17,Tge,2,0,"th",58)(18,Oge,4,2,"td",59),pe(),me(19,60),y(20,Age,4,3,"td",59),pe(),y(21,Pge,1,0,"tr",34)(22,Rge,1,2,"tr",61)(23,Nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Notes),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Lge(t,n){1&t&&D(0,"br")}function Bge(t,n){1&t&&(d(0,"div",79)(1,"div",80),ei(),d(2,"svg",81),D(3,"path",82),l()(),pr(),d(4,"div",83),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l(),D(8,"br"),l())}const Sw=t=>({"width.%":t});let Vge=(()=>{class t{toggleRow(e){this.isRowExpanded(e)?this.expandedElements.delete(e):this.expandedElements.add(e)}isRowExpanded(e){return this.expandedElements.has(e)}constructor(e,i,o){this.sidenav=e,this.clickEvent=i,this.fetch=o,this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],this.issueTableData_Notes=[],this.columnsToDisplay=["position","description","tableCount"],this.columnsToDisplayWithExpand=[...this.columnsToDisplay,"expand"],this.expandedElements=new Set,this.srcDbType="",this.connectionDetail="",this.summaryText="",this.issueDescription={},this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentage={good:0,ok:0,bad:0},this.rateCountDataSource=[],this.rateCountDisplayedColumns=["total","bad","ok","good"],this.ratePcDataSource=[],this.ratePcDisplayedColumns=["bad","ok","good"]}ngOnInit(){this.clickEvent.viewAssesment.subscribe(e=>{this.srcDbType=e.srcDbType,this.connectionDetail=e.connectionDetail,this.conversionRateCount=e.conversionRates;let i=this.conversionRateCount.good+this.conversionRateCount.ok+this.conversionRateCount.bad;if(i>0)for(let o in this.conversionRatePercentage)this.conversionRatePercentage[o]=Number((this.conversionRateCount[o]/i*100).toFixed(2));i>0&&this.setRateCountDataSource(i),this.fetch.getDStructuredReport().subscribe({next:o=>{this.summaryText=o.summary.text}}),this.issueTableData={position:0,description:"",tableCount:0,tableNamesJoinedByComma:""},this.fetch.getIssueDescription().subscribe({next:o=>{this.issueDescription=o,this.generateIssueReport()}})})}closeSidenav(){this.sidenav.closeSidenav()}setRateCountDataSource(e){this.rateCountDataSource=[],this.rateCountDataSource.push({total:e,bad:this.conversionRateCount.bad,ok:this.conversionRateCount.ok,good:this.conversionRateCount.good})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text;charset=utf-8,"+encodeURIComponent(o),e.download=`${i.summary.dbName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{let o=this.connectionDetail;e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${o}_migration_textReport.txt`,e.click()}})}downloadReports(){let e=new RN;this.fetch.getDStructuredReport().subscribe({next:i=>{let o=i.summary.dbName,r=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.file(o+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(o+"_migration_textReport.txt",s),e.generateAsync({type:"blob"}).then(c=>{var u=document.createElement("a");u.href=URL.createObjectURL(c),u.download=`${o}_reports`,u.click()})}})}})}generateIssueReport(){this.fetch.getDStructuredReport().subscribe({next:e=>{let i=e.tableReports;var o={errors:new Map,warnings:new Map,suggestions:new Map,notes:new Map};for(var r of i){let c=r.issues;if(null==c)return this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],void(this.issueTableData_Notes=[]);for(var a of c){let u={tableCount:0,tableNames:new Set};switch(a.issueType){case"Error":case"Errors":this.appendIssueWithTableInformation(a.issueList,o.errors,u,r);break;case"Warnings":case"Warning":this.appendIssueWithTableInformation(a.issueList,o.warnings,u,r);break;case"Suggestion":case"Suggestions":this.appendIssueWithTableInformation(a.issueList,o.suggestions,u,r);break;case"Note":case"Notes":this.appendIssueWithTableInformation(a.issueList,o.notes,u,r)}}}let s=o.warnings;this.issueTableData_Warnings=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Warnings),s=o.errors,this.issueTableData_Errors=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Errors),s=o.suggestions,this.issueTableData_Suggestions=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Suggestions),s=o.notes,this.issueTableData_Notes=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Notes)}})}populateTableData(e,i){let o=1;for(let[r,a]of e.entries()){let s=[...a.tableNames.keys()];i.push({position:o,description:this.issueDescription[r],tableCount:a.tableCount,tableNamesJoinedByComma:s.join(", ")}),o+=1}}appendIssueWithTableInformation(e,i,o,r){for(var a of e)if(i.has(a.category)){let c=i.get(a.category),u={tableNames:new Set(c.tableNames),tableCount:c.tableNames.size};u.tableNames.add(r.srcTableName),u.tableCount=u.tableNames.size,i.set(a.category,u)}else{let c=o;c.tableNames.add(r.srcTableName),c.tableCount=c.tableNames.size,i.set(a.category,c)}}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-view-assessment"]],decls:87,vars:25,consts:[[1,"sidenav-view-assessment-container"],[1,"sidenav-view-assessment-header"],[1,"mat-h2","header-title"],[1,"btn-source-select"],[1,"reportsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"content"],[1,"summaryHeader"],[1,"databaseName"],[1,"migrationDetails"],[1,"summaryText"],[1,"sidenav-percentage-bar"],[1,"danger-background",3,"ngStyle"],[1,"warning-background",3,"ngStyle"],[1,"success-background",3,"ngStyle"],[1,"sidenav-percentage-indent"],[1,"icon","danger"],[1,"icon","warning"],[1,"icon","success"],[1,"sidenav-title"],["mat-table","",1,"sidenav-conversionByTable",3,"dataSource"],["matColumnDef","total"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","","class","cells",4,"matCellDef"],["matColumnDef","bad",1,"bad"],["matColumnDef","ok"],["matColumnDef","good"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"issue-report"],[4,"ngIf"],["class","no-issue-container",4,"ngIf"],["mat-header-cell",""],["mat-cell","",1,"cells"],[1,"icon","danger","icon-size","icons"],[1,"icon","warning","icon-size","icons"],[1,"icon","success","icon-size","icons"],["mat-header-row",""],["mat-row",""],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["mat-table","","multiTemplateDataRows","",1,"sidenav-databaseDefinitions",3,"dataSource"],["matColumnDef","position"],["mat-header-cell","","class","mat-position",4,"matHeaderCellDef"],["mat-cell","","class","mat-position",4,"matCellDef"],["matColumnDef","description"],["mat-header-cell","","class","mat-description",4,"matHeaderCellDef"],["mat-cell","","class","mat-description",4,"matCellDef"],["matColumnDef","tableCount"],["mat-header-cell","","class","mat-tableCount",4,"matHeaderCellDef"],["mat-cell","","class","mat-tableCount",4,"matCellDef"],["matColumnDef","expand"],["mat-header-cell","","aria-label","row actions",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","expandedDetail"],["mat-row","","class","example-element-row",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","example-detail-row",4,"matRowDef","matRowDefColumns"],["mat-header-cell","",1,"mat-position"],["mat-cell","",1,"mat-position"],["mat-header-cell","",1,"mat-description"],["mat-cell","",1,"mat-description"],["mat-header-cell","",1,"mat-tableCount"],["mat-cell","",1,"mat-tableCount"],["mat-header-cell","","aria-label","row actions"],["mat-cell",""],["mat-icon-button","","aria-label","expand row",3,"click"],[1,"example-element-detail",3,"ngClass"],[1,"example-element-description"],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you don't need to do anything.","matTooltipPosition","above",1,"success"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Assessment report"),l(),d(4,"div",3)(5,"span",4)(6,"button",5),A("click",function(){return o.downloadReports()}),h(7," DOWNLOAD REPORTS "),l(),d(8,"button",6)(9,"mat-icon",7),h(10,"expand_more"),l()(),d(11,"mat-menu",8,9)(13,"button",10),A("click",function(){return o.downloadTextReport()}),h(14," Download Text Report "),l(),d(15,"button",10),A("click",function(){return o.downloadStructuredReport()}),h(16," Download Structured Report "),l()()(),d(17,"button",11),A("click",function(){return o.closeSidenav()}),d(18,"mat-icon",12),h(19,"close"),l()()()(),d(20,"div",13)(21,"div",14)(22,"p",15),h(23),l(),d(24,"p",16),h(25),d(26,"mat-icon"),h(27,"arrow_right_alt"),l(),h(28," Spanner)"),l()(),d(29,"p",17),h(30),l(),d(31,"mat-card")(32,"div",18),D(33,"div",19)(34,"div",20)(35,"div",21),l(),D(36,"hr")(37,"br"),d(38,"div",22)(39,"span")(40,"mat-icon",23),h(41," circle "),l(),d(42,"span"),h(43," Not a great conversion"),l()(),d(44,"span")(45,"mat-icon",24),h(46," circle "),l(),d(47,"span"),h(48," Converted with warnings"),l()(),d(49,"span")(50,"mat-icon",25),h(51," circle "),l(),d(52,"span"),h(53," Converted automatically"),l()()()(),D(54,"br"),d(55,"h3",26),h(56,"Conversion status by table"),l(),d(57,"table",27),me(58,28),y(59,bfe,2,0,"th",29)(60,vfe,2,1,"td",30),pe(),me(61,31),y(62,yfe,4,0,"th",29)(63,Cfe,2,1,"td",30),pe(),me(64,32),y(65,wfe,4,0,"th",29)(66,xfe,2,1,"td",30),pe(),me(67,33),y(68,Dfe,4,0,"th",29)(69,Sfe,2,1,"td",30),pe(),y(70,kfe,1,0,"tr",34)(71,Mfe,1,0,"tr",35),l(),D(72,"br"),d(73,"h3"),h(74,"Summarized Table Report"),l(),d(75,"div",36),y(76,Hfe,24,5,"mat-expansion-panel",37)(77,Ufe,1,0,"br",37)(78,oge,24,5,"mat-expansion-panel",37)(79,rge,1,0,"br",37)(80,yge,24,5,"mat-expansion-panel",37)(81,Cge,1,0,"br",37)(82,Fge,24,5,"mat-expansion-panel",37)(83,Lge,1,0,"br",37)(84,Bge,9,0,"div",38),D(85,"br"),l(),D(86,"br"),l()()),2&i){const r=Ft(12);m(8),f("matMenuTriggerFor",r),m(15),Pe(o.connectionDetail),m(2),xe(" \xa0 (",o.srcDbType," "),m(5),Pe(o.summaryText),m(3),f("ngStyle",hi(19,Sw,o.conversionRatePercentage.bad)),m(),f("ngStyle",hi(21,Sw,o.conversionRatePercentage.ok)),m(),f("ngStyle",hi(23,Sw,o.conversionRatePercentage.good)),m(22),f("dataSource",o.rateCountDataSource),m(13),f("matHeaderRowDef",o.rateCountDisplayedColumns),m(),f("matRowDefColumns",o.rateCountDisplayedColumns),m(5),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",!(o.issueTableData_Notes.length||o.issueTableData_Suggestions.length||o.issueTableData_Warnings.length||o.issueTableData_Errors.length))}},dependencies:[yr,It,w2,Yt,ba,Mi,Gu,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,DC,bP,JQ,vn],styles:["table.mat-mdc-table[_ngcontent-%COMP%]{width:100%}.icon-size[_ngcontent-%COMP%]{font-size:1.2em;text-align:center;margin-top:8px;margin-left:10px;vertical-align:inherit}.mat-mdc-header-cell[_ngcontent-%COMP%]{border-style:none}.icons[_ngcontent-%COMP%]{border-left:1px solid rgb(208,204,204);padding-left:10px}.cells[_ngcontent-%COMP%]{text-align:center}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%]{padding:7px 16px;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #d0cccc;justify-content:space-between}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%]{margin:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .reportsButtons[_ngcontent-%COMP%]{white-space:nowrap;vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 8px 0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:1.25px;padding:0;height:10px;vertical-align:text-top}"]})}return t})(),jge=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.snack=o,this.sidenav=r,this.errMessage="",this.saveSessionForm=new ti({SessionName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),EditorName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),DatabaseName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_-]{0,59}$")]),Notes:new U("")})}saveSession(){let e=this.saveSessionForm.value,i={SessionName:e.SessionName.trim(),EditorName:e.EditorName.trim(),DatabaseName:e.DatabaseName.trim(),Notes:""===e.Notes?.trim()||null===e.Notes?[""]:e.Notes?.split("\n")};this.fetch.saveSession(i).subscribe({next:o=>{this.data.getAllSessions(),this.snack.openSnackBar("Session saved successfully","Close",5)},error:o=>{this.snack.openSnackBar(o.error,"Close")}}),this.saveSessionForm.reset(),this.saveSessionForm.markAsUntouched(),this.closeSidenav()}ngOnInit(){this.sidenav.sidenavDatabaseName.subscribe({next:e=>{this.saveSessionForm.controls.DatabaseName.setValue(e)}})}closeSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-save-session"]],decls:40,vars:5,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[1,"save-session-form",3,"formGroup"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","placeholder","mysession","type","text","formControlName","SessionName","matTooltip","User can view saved sessions under session history section","matTooltipPosition","above"],["align","end"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","placeholder","editor name","type","text","formControlName","EditorName"],["hintLabel","Letters, numbers, hyphen and underscores allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","type","text","formControlName","DatabaseName"],["appearance","outline",1,"full-width"],["rows","7","matInput","","placeholder","added new index","type","text","formControlName","Notes"],[1,"sidenav-footer"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Save Session"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"h3"),h(9,"Session Details"),l(),d(10,"form",6)(11,"mat-form-field",7)(12,"mat-label"),h(13,"Session Name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),D(17,"br"),d(18,"mat-form-field",10)(19,"mat-label"),h(20,"Editor Name"),l(),D(21,"input",11),d(22,"mat-hint",9),h(23),l()(),D(24,"br"),d(25,"mat-form-field",12)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",13),d(29,"mat-hint",9),h(30),l()(),D(31,"br"),d(32,"mat-form-field",14)(33,"mat-label"),h(34,"Notes"),l(),D(35,"textarea",15),l(),D(36,"br"),l()(),d(37,"div",16)(38,"button",17),A("click",function(){return o.saveSession()}),h(39," Save Session "),l()()()),2&i&&(m(10),f("formGroup",o.saveSessionForm),m(6),xe("",(null==o.saveSessionForm.value.SessionName?null:o.saveSessionForm.value.SessionName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.EditorName?null:o.saveSessionForm.value.EditorName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.DatabaseName?null:o.saveSessionForm.value.DatabaseName.length)||0,"/60"),m(8),f("disabled",!o.saveSessionForm.valid))},dependencies:[Yt,ba,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:10px}"]})}return t})();function zge(t,n){1&t&&(d(0,"th",9),h(1,"Column"),l())}function Hge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ColumnName)}}function Uge(t,n){1&t&&(d(0,"th",9),h(1,"Type"),l())}function $ge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Type)}}function Gge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Column"),l())}function qge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateColumnName)}}function Wge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Type"),l())}function Kge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateType)}}function Zge(t,n){1&t&&D(0,"tr",11)}function Yge(t,n){1&t&&D(0,"tr",12)}let Qge=(()=>{class t{constructor(){this.tableChange={InterleaveColumnChanges:[],Table:""},this.dataSource=[],this.displayedColumns=["ColumnName","Type","UpdateColumnName","UpdateType"]}ngOnInit(){}ngOnChanges(e){this.tableChange=e.tableChange?.currentValue||this.tableChange,this.dataSource=this.tableChange.InterleaveColumnChanges}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-table-column-changes-preview"]],inputs:{tableChange:"tableChange"},features:[fi],decls:15,vars:3,consts:[["mat-table","",1,"object-full-width","margin-bot-1",3,"dataSource"],["matColumnDef","ColumnName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Type"],["matColumnDef","UpdateColumnName"],["matColumnDef","UpdateType"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(i,o){1&i&&(d(0,"table",0),me(1,1),y(2,zge,2,0,"th",2)(3,Hge,2,1,"td",3),pe(),me(4,4),y(5,Uge,2,0,"th",2)(6,$ge,2,1,"td",3),pe(),me(7,5),y(8,Gge,2,0,"th",2)(9,qge,2,1,"td",3),pe(),me(10,6),y(11,Wge,2,0,"th",2)(12,Kge,2,1,"td",3),pe(),y(13,Zge,1,0,"tr",7)(14,Yge,1,0,"tr",8),l()),2&i&&(f("dataSource",o.dataSource),m(13),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns))},dependencies:[ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs],styles:[".margin-bot-1[_ngcontent-%COMP%]{margin-bottom:1rem}.mat-mdc-header-row[_ngcontent-%COMP%]{background-color:#f5f5f5}.mat-mdc-column-ColumnName[_ngcontent-%COMP%], .mat-mdc-column-UpdateColumnName[_ngcontent-%COMP%]{width:30%;max-width:30%}.mat-mdc-column-Type[_ngcontent-%COMP%], .mat-mdc-column-UpdateType[_ngcontent-%COMP%]{width:20%;max-width:20%}.mat-mdc-cell[_ngcontent-%COMP%]{padding-right:1rem;word-break:break-all}"]})}return t})();function Xge(t,n){1&t&&(d(0,"p"),h(1,"Review the DDL changes below."),l())}function Jge(t,n){if(1&t&&(d(0,"p"),h(1," Changing an interleaved table will have an impact on the following tables : "),d(2,"b"),h(3),l()()),2&t){const e=C();m(3),Pe(e.tableList)}}function e_e(t,n){if(1&t&&(d(0,"div",11)(1,"pre")(2,"code"),h(3),l()()()),2&t){const e=C();m(3),Pe(e.ddl)}}function t_e(t,n){if(1&t&&(me(0),d(1,"h4"),h(2),l(),D(3,"app-table-column-changes-preview",14),pe()),2&t){const e=n.$implicit,i=n.index,o=C(2);m(2),Pe(o.tableNames[i]),m(),f("tableChange",e)}}function i_e(t,n){if(1&t&&(d(0,"div",12),y(1,t_e,4,2,"ng-container",13),l()),2&t){const e=C();m(),f("ngForOf",e.tableChanges)}}let n_e=(()=>{class t{constructor(e,i,o,r){this.sidenav=e,this.tableUpdatePubSub=i,this.data=o,this.snackbar=r,this.ddl="",this.showDdl=!0,this.tableUpdateData={tableName:"",tableId:"",updateDetail:{UpdateCols:{}}},this.tableChanges=[],this.tableNames=[],this.tableList=""}ngOnInit(){this.tableUpdatePubSub.reviewTableChanges.subscribe(e=>{if(e.Changes&&e.Changes.length>0){this.showDdl=!1,this.tableChanges=e.Changes;const i=[];this.tableList="",this.tableChanges.forEach((o,r)=>{i.push(o.Table),this.tableList+=0==r?o.Table:", "+o.Table}),this.tableList+=".",this.tableNames=i}else this.showDdl=!0,this.ddl=e.DDL}),this.tableUpdatePubSub.tableUpdateDetail.subscribe(e=>{this.tableUpdateData=e})}updateTable(){this.data.updateTable(this.tableUpdateData.tableId,this.tableUpdateData.updateDetail).subscribe({next:e=>{""==e?(this.snackbar.openSnackBar(`Schema changes to table ${this.tableUpdateData.tableName} saved successfully`,"Close",5),0==this.showDdl&&1!=this.tableNames.length&&this.snackbar.openSnackBar(`Schema changes to tables ${this.tableNames[0]} and ${this.tableNames[1]} saved successfully`,"Close",5),this.closeSidenav()):this.snackbar.openSnackBar(e,"Close",5)}})}closeSidenav(){this.ddl="",this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Cw),_(Hi),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-review-changes"]],decls:17,vars:4,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[4,"ngIf"],["class","ddl-display",4,"ngIf"],["class","table-changes-display",4,"ngIf"],[1,"sidenav-footer"],["mat-raised-button","","color","primary",3,"click"],[1,"ddl-display"],[1,"table-changes-display"],[4,"ngFor","ngForOf"],[3,"tableChange"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Review changes to your schema"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),D(7,"mat-divider"),d(8,"div",5),y(9,Xge,2,0,"p",6)(10,Jge,4,1,"p",6)(11,e_e,4,1,"div",7)(12,i_e,2,1,"div",8),l(),D(13,"mat-divider"),d(14,"div",9)(15,"button",10),A("click",function(){return o.updateTable()}),h(16,"Confirm Conversion"),l()()()),2&i&&(m(9),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl),m(),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl))},dependencies:[rn,It,Yt,ba,Mi,wO,Qge],styles:[".sidenav-content[_ngcontent-%COMP%]{height:82%}.sidenav-content[_ngcontent-%COMP%] .ddl-display[_ngcontent-%COMP%]{height:90%;background-color:#dadada;padding:10px;overflow:auto}.sidenav-content[_ngcontent-%COMP%] .table-changes-display[_ngcontent-%COMP%]{height:90%;overflow:auto}"]})}return t})();function o_e(t,n){1&t&&D(0,"app-sidenav-rule")}function r_e(t,n){1&t&&D(0,"app-sidenav-save-session")}function a_e(t,n){1&t&&D(0,"app-sidenav-review-changes")}function s_e(t,n){1&t&&D(0,"app-sidenav-view-assessment")}function c_e(t,n){1&t&&D(0,"app-instruction")}const l_e=(t,n,e)=>({"width-40pc":t,"width-50pc":n,"width-60pc":e});let d_e=(()=>{class t{constructor(e){this.sidenavService=e,this.title="ui",this.showSidenav=!1,this.sidenavComponent=""}ngOnInit(){this.sidenavService.isSidenav.subscribe(e=>{this.showSidenav=e}),this.sidenavService.sidenavComponent.subscribe(e=>{this.sidenavComponent=e})}closeSidenav(){this.showSidenav=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-root"]],decls:14,vars:11,consts:[[1,"sidenav-container",3,"backdropClick"],["position","end","mode","over",3,"opened","ngClass"],["sidenav",""],[4,"ngIf"],[1,"sidenav-content"],[1,"appLoader"],[1,"padding-20"]],template:function(i,o){1&i&&(d(0,"mat-sidenav-container",0),A("backdropClick",function(){return o.closeSidenav()}),d(1,"mat-sidenav",1,2),y(3,o_e,1,0,"app-sidenav-rule",3)(4,r_e,1,0,"app-sidenav-save-session",3)(5,a_e,1,0,"app-sidenav-review-changes",3)(6,s_e,1,0,"app-sidenav-view-assessment",3)(7,c_e,1,0,"app-instruction",3),l(),d(8,"mat-sidenav-content",4),D(9,"app-header"),d(10,"div",5),D(11,"app-loader"),l(),d(12,"div",6),D(13,"router-outlet"),l()()()),2&i&&(m(),f("opened",o.showSidenav)("ngClass",HM(7,l_e,"rule"===o.sidenavComponent||"saveSession"===o.sidenavComponent,"reviewChanges"===o.sidenavComponent,"assessment"===o.sidenavComponent||"instruction"===o.sidenavComponent)),m(2),f("ngIf","rule"===o.sidenavComponent),m(),f("ngIf","saveSession"==o.sidenavComponent),m(),f("ngIf","reviewChanges"==o.sidenavComponent),m(),f("ngIf","assessment"===o.sidenavComponent),m(),f("ngIf","instruction"===o.sidenavComponent))},dependencies:[yr,It,Cg,hR,mR,qC,AN,jpe,Hpe,_fe,Vge,jge,n_e],styles:[".padding-20[_ngcontent-%COMP%]{padding:5px 0}.progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%], .appLoader[_ngcontent-%COMP%]{height:2px}mat-mdc-sidenav[_ngcontent-%COMP%]{width:30%;min-width:350px}.sidenav-container[_ngcontent-%COMP%]{height:100vh}.sidenav-container[_ngcontent-%COMP%] mat-mdc-sidenav[_ngcontent-%COMP%]{min-width:350px;border-radius:3px}.width-40pc[_ngcontent-%COMP%]{width:40%}.width-50pc[_ngcontent-%COMP%]{width:50%}.width-60pc[_ngcontent-%COMP%]{width:60%}"]})}return t})(),u_e=(()=>{class t{constructor(e){this.loader=e,this.count=0}intercept(e,i){let o=!e.url.includes("/connect");return o&&(this.loader.startLoader(),this.count++),i.handle(e).pipe(ec(()=>{o&&this.count--,0==this.count&&this.loader.stopLoader()}))}static#e=this.\u0275fac=function(i){return new(i||t)(X(Mg))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),h_e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=st({type:t,bootstrap:[d_e]});static#i=this.\u0275inj=at({providers:[{provide:ZE,useClass:u_e,multi:!0}],imports:[Y2,Ppe,b$,mte,mW,RK,xte,Mte,rre,OC]})}return t})();bH().bootstrapModule(h_e).catch(t=>console.error(t))},304:ld=>{ld.exports=function q(Re,Y,F){function R($,W){if(!Y[$]){if(!Re[$]){if(S)return S($,!0);var G=new Error("Cannot find module '"+$+"'");throw G.code="MODULE_NOT_FOUND",G}var I=Y[$]={exports:{}};Re[$][0].call(I.exports,function(B){return R(Re[$][1][B]||B)},I,I.exports,q,Re,Y,F)}return Y[$].exports}for(var S=void 0,P=0;P>4,B=1>6:64,M=2>2)+S.charAt(I)+S.charAt(B)+S.charAt(M));return N.join("")},Y.decode=function(P){var $,W,V,G,I,B,M=0,N=0,E="data:";if(P.substr(0,5)===E)throw new Error("Invalid base64 input, it looks like a data url.");var j,K=3*(P=P.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(P.charAt(P.length-1)===S.charAt(64)&&K--,P.charAt(P.length-2)===S.charAt(64)&&K--,K%1!=0)throw new Error("Invalid base64 input, bad content length.");for(j=R.uint8array?new Uint8Array(0|K):new Array(0|K);M>4,W=(15&G)<<4|(I=S.indexOf(P.charAt(M++)))>>2,V=(3&I)<<6|(B=S.indexOf(P.charAt(M++))),j[N++]=$,64!==I&&(j[N++]=W),64!==B&&(j[N++]=V);return j}},{"./support":30,"./utils":32}],2:[function(q,Re,Y){"use strict";var F=q("./external"),R=q("./stream/DataWorker"),S=q("./stream/Crc32Probe"),P=q("./stream/DataLengthProbe");function $(W,V,G,I,B){this.compressedSize=W,this.uncompressedSize=V,this.crc32=G,this.compression=I,this.compressedContent=B}$.prototype={getContentWorker:function(){var W=new R(F.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new P("data_length")),V=this;return W.on("end",function(){if(this.streamInfo.data_length!==V.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),W},getCompressedWorker:function(){return new R(F.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},$.createWorkerFrom=function(W,V,G){return W.pipe(new S).pipe(new P("uncompressedSize")).pipe(V.compressWorker(G)).pipe(new P("compressedSize")).withStreamInfo("compression",V)},Re.exports=$},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(q,Re,Y){"use strict";var F=q("./stream/GenericWorker");Y.STORE={magic:"\0\0",compressWorker:function(){return new F("STORE compression")},uncompressWorker:function(){return new F("STORE decompression")}},Y.DEFLATE=q("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(q,Re,Y){"use strict";var F=q("./utils"),R=function(){for(var S,P=[],$=0;$<256;$++){S=$;for(var W=0;W<8;W++)S=1&S?3988292384^S>>>1:S>>>1;P[$]=S}return P}();Re.exports=function(S,P){return void 0!==S&&S.length?"string"!==F.getTypeOf(S)?function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W[M])];return-1^$}(0|P,S,S.length):function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W.charCodeAt(M))];return-1^$}(0|P,S,S.length):0}},{"./utils":32}],5:[function(q,Re,Y){"use strict";Y.base64=!1,Y.binary=!1,Y.dir=!1,Y.createFolders=!0,Y.date=null,Y.compression=null,Y.compressionOptions=null,Y.comment=null,Y.unixPermissions=null,Y.dosPermissions=null},{}],6:[function(q,Re,Y){"use strict";var F;F=typeof Promise<"u"?Promise:q("lie"),Re.exports={Promise:F}},{lie:37}],7:[function(q,Re,Y){"use strict";var F=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",R=q("pako"),S=q("./utils"),P=q("./stream/GenericWorker"),$=F?"uint8array":"array";function W(V,G){P.call(this,"FlateWorker/"+V),this._pako=null,this._pakoAction=V,this._pakoOptions=G,this.meta={}}Y.magic="\b\0",S.inherits(W,P),W.prototype.processChunk=function(V){this.meta=V.meta,null===this._pako&&this._createPako(),this._pako.push(S.transformTo($,V.data),!1)},W.prototype.flush=function(){P.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},W.prototype.cleanUp=function(){P.prototype.cleanUp.call(this),this._pako=null},W.prototype._createPako=function(){this._pako=new R[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var V=this;this._pako.onData=function(G){V.push({data:G,meta:V.meta})}},Y.compressWorker=function(V){return new W("Deflate",V)},Y.uncompressWorker=function(){return new W("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(q,Re,Y){"use strict";function F(I,B){var M,N="";for(M=0;M>>=8;return N}function R(I,B,M,N,E,j){var K,oe,te=I.file,Te=I.compression,we=j!==$.utf8encode,Fe=S.transformTo("string",j(te.name)),ye=S.transformTo("string",$.utf8encode(te.name)),Ge=te.comment,ht=S.transformTo("string",j(Ge)),H=S.transformTo("string",$.utf8encode(Ge)),Ce=ye.length!==te.name.length,x=H.length!==Ge.length,Me="",Rt="",Le="",Vt=te.dir,Ve=te.date,Tt={crc32:0,compressedSize:0,uncompressedSize:0};B&&!M||(Tt.crc32=I.crc32,Tt.compressedSize=I.compressedSize,Tt.uncompressedSize=I.uncompressedSize);var fe=0;B&&(fe|=8),we||!Ce&&!x||(fe|=2048);var Qe,Fn,le=0,bt=0;Vt&&(le|=16),"UNIX"===E?(bt=798,le|=(Fn=Qe=te.unixPermissions,Qe||(Fn=Vt?16893:33204),(65535&Fn)<<16)):(bt=20,le|=function(Qe){return 63&(Qe||0)}(te.dosPermissions)),K=Ve.getUTCHours(),K<<=6,K|=Ve.getUTCMinutes(),K<<=5,K|=Ve.getUTCSeconds()/2,oe=Ve.getUTCFullYear()-1980,oe<<=4,oe|=Ve.getUTCMonth()+1,oe<<=5,oe|=Ve.getUTCDate(),Ce&&(Rt=F(1,1)+F(W(Fe),4)+ye,Me+="up"+F(Rt.length,2)+Rt),x&&(Le=F(1,1)+F(W(ht),4)+H,Me+="uc"+F(Le.length,2)+Le);var it="";return it+="\n\0",it+=F(fe,2),it+=Te.magic,it+=F(K,2),it+=F(oe,2),it+=F(Tt.crc32,4),it+=F(Tt.compressedSize,4),it+=F(Tt.uncompressedSize,4),it+=F(Fe.length,2),it+=F(Me.length,2),{fileRecord:V.LOCAL_FILE_HEADER+it+Fe+Me,dirRecord:V.CENTRAL_FILE_HEADER+F(bt,2)+it+F(ht.length,2)+"\0\0\0\0"+F(le,4)+F(N,4)+Fe+Me+ht}}var S=q("../utils"),P=q("../stream/GenericWorker"),$=q("../utf8"),W=q("../crc32"),V=q("../signature");function G(I,B,M,N){P.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=B,this.zipPlatform=M,this.encodeFileName=N,this.streamFiles=I,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}S.inherits(G,P),G.prototype.push=function(I){var B=I.meta.percent||0,M=this.entriesCount,N=this._sources.length;this.accumulate?this.contentBuffer.push(I):(this.bytesWritten+=I.data.length,P.prototype.push.call(this,{data:I.data,meta:{currentFile:this.currentFile,percent:M?(B+100*(M-N-1))/M:100}}))},G.prototype.openedSource=function(I){this.currentSourceOffset=this.bytesWritten,this.currentFile=I.file.name;var B=this.streamFiles&&!I.file.dir;if(B){var M=R(I,B,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:M.fileRecord,meta:{percent:0}})}else this.accumulate=!0},G.prototype.closedSource=function(I){this.accumulate=!1;var N,B=this.streamFiles&&!I.file.dir,M=R(I,B,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(M.dirRecord),B)this.push({data:(N=I,V.DATA_DESCRIPTOR+F(N.crc32,4)+F(N.compressedSize,4)+F(N.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:M.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},G.prototype.flush=function(){for(var I=this.bytesWritten,B=0;B=this.index;P--)$=($<<8)+this.byteAt(P);return this.index+=S,$},readString:function(S){return F.transformTo("string",this.readData(S))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var S=this.readInt(4);return new Date(Date.UTC(1980+(S>>25&127),(S>>21&15)-1,S>>16&31,S>>11&31,S>>5&63,(31&S)<<1))}},Re.exports=R},{"../utils":32}],19:[function(q,Re,Y){"use strict";var F=q("./Uint8ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(q,Re,Y){"use strict";var F=q("./DataReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.byteAt=function(S){return this.data.charCodeAt(this.zero+S)},R.prototype.lastIndexOfSignature=function(S){return this.data.lastIndexOf(S)-this.zero},R.prototype.readAndCheckSignature=function(S){return S===this.readData(4)},R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./DataReader":18}],21:[function(q,Re,Y){"use strict";var F=q("./ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){if(this.checkOffset(S),0===S)return new Uint8Array(0);var P=this.data.subarray(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./ArrayReader":17}],22:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("../support"),S=q("./ArrayReader"),P=q("./StringReader"),$=q("./NodeBufferReader"),W=q("./Uint8ArrayReader");Re.exports=function(V){var G=F.getTypeOf(V);return F.checkSupport(G),"string"!==G||R.uint8array?"nodebuffer"===G?new $(V):R.uint8array?new W(F.transformTo("uint8array",V)):new S(F.transformTo("array",V)):new P(V)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(q,Re,Y){"use strict";Y.LOCAL_FILE_HEADER="PK\x03\x04",Y.CENTRAL_FILE_HEADER="PK\x01\x02",Y.CENTRAL_DIRECTORY_END="PK\x05\x06",Y.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Y.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Y.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../utils");function S(P){F.call(this,"ConvertWorker to "+P),this.destType=P}R.inherits(S,F),S.prototype.processChunk=function(P){this.push({data:R.transformTo(this.destType,P.data),meta:P.meta})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],25:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../crc32");function S(){F.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}q("../utils").inherits(S,F),S.prototype.processChunk=function(P){this.streamInfo.crc32=R(P.data,this.streamInfo.crc32||0),this.push(P)},Re.exports=S},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataLengthProbe for "+P),this.propName=P,this.withStreamInfo(P,0)}F.inherits(S,R),S.prototype.processChunk=function(P){P&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+P.data.length),R.prototype.processChunk.call(this,P)},Re.exports=S},{"../utils":32,"./GenericWorker":28}],27:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataWorker");var $=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,P.then(function(W){$.dataIsReady=!0,$.data=W,$.max=W&&W.length||0,$.type=F.getTypeOf(W),$.isPaused||$._tickAndRepeat()},function(W){$.error(W)})}F.inherits(S,R),S.prototype.cleanUp=function(){R.prototype.cleanUp.call(this),this.data=null},S.prototype.resume=function(){return!!R.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,F.delay(this._tickAndRepeat,[],this)),!0)},S.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(F.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},S.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var P=null,$=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":P=this.data.substring(this.index,$);break;case"uint8array":P=this.data.subarray(this.index,$);break;case"array":case"nodebuffer":P=this.data.slice(this.index,$)}return this.index=$,this.push({data:P,meta:{percent:this.max?this.index/this.max*100:0}})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],28:[function(q,Re,Y){"use strict";function F(R){this.name=R||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}F.prototype={push:function(R){this.emit("data",R)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(R){this.emit("error",R)}return!0},error:function(R){return!this.isFinished&&(this.isPaused?this.generatedError=R:(this.isFinished=!0,this.emit("error",R),this.previous&&this.previous.error(R),this.cleanUp()),!0)},on:function(R,S){return this._listeners[R].push(S),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(R,S){if(this._listeners[R])for(var P=0;P "+R:R}},Re.exports=F},{}],29:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./ConvertWorker"),S=q("./GenericWorker"),P=q("../base64"),$=q("../support"),W=q("../external"),V=null;if($.nodestream)try{V=q("../nodejs/NodejsStreamOutputAdapter")}catch{}function I(B,M,N){var E=M;switch(M){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=M,this._mimeType=N,F.checkSupport(E),this._worker=B.pipe(new R(E)),B.lock()}catch(j){this._worker=new S("error"),this._worker.error(j)}}I.prototype={accumulate:function(B){return function G(B,M){return new W.Promise(function(N,E){var j=[],K=B._internalType,oe=B._outputType,te=B._mimeType;B.on("data",function(Te,we){j.push(Te),M&&M(we)}).on("error",function(Te){j=[],E(Te)}).on("end",function(){try{var Te=function(we,Fe,ye){switch(we){case"blob":return F.newBlob(F.transformTo("arraybuffer",Fe),ye);case"base64":return P.encode(Fe);default:return F.transformTo(we,Fe)}}(oe,function(we,Fe){var ye,Ge=0,ht=null,H=0;for(ye=0;ye"u")Y.blob=!1;else{var F=new ArrayBuffer(0);try{Y.blob=0===new Blob([F],{type:"application/zip"}).size}catch{try{var R=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);R.append(F),Y.blob=0===R.getBlob("application/zip").size}catch{Y.blob=!1}}}try{Y.nodestream=!!q("readable-stream").Readable}catch{Y.nodestream=!1}},{"readable-stream":16}],31:[function(q,Re,Y){"use strict";for(var F=q("./utils"),R=q("./support"),S=q("./nodejsUtils"),P=q("./stream/GenericWorker"),$=new Array(256),W=0;W<256;W++)$[W]=252<=W?6:248<=W?5:240<=W?4:224<=W?3:192<=W?2:1;function V(){P.call(this,"utf-8 decode"),this.leftOver=null}function G(){P.call(this,"utf-8 encode")}$[254]=$[254]=1,Y.utf8encode=function(I){return R.nodebuffer?S.newBufferFrom(I,"utf-8"):function(B){var M,N,E,j,K,oe=B.length,te=0;for(j=0;j>>6:(N<65536?M[K++]=224|N>>>12:(M[K++]=240|N>>>18,M[K++]=128|N>>>12&63),M[K++]=128|N>>>6&63),M[K++]=128|63&N);return M}(I)},Y.utf8decode=function(I){return R.nodebuffer?F.transformTo("nodebuffer",I).toString("utf-8"):function(B){var M,N,E,j,K=B.length,oe=new Array(2*K);for(M=N=0;M>10&1023,oe[N++]=56320|1023&E)}return oe.length!==N&&(oe.subarray?oe=oe.subarray(0,N):oe.length=N),F.applyFromCharCode(oe)}(I=F.transformTo(R.uint8array?"uint8array":"array",I))},F.inherits(V,P),V.prototype.processChunk=function(I){var B=F.transformTo(R.uint8array?"uint8array":"array",I.data);if(this.leftOver&&this.leftOver.length){if(R.uint8array){var M=B;(B=new Uint8Array(M.length+this.leftOver.length)).set(this.leftOver,0),B.set(M,this.leftOver.length)}else B=this.leftOver.concat(B);this.leftOver=null}var N=function(j,K){var oe;for((K=K||j.length)>j.length&&(K=j.length),oe=K-1;0<=oe&&128==(192&j[oe]);)oe--;return oe<0||0===oe?K:oe+$[j[oe]]>K?oe:K}(B),E=B;N!==B.length&&(R.uint8array?(E=B.subarray(0,N),this.leftOver=B.subarray(N,B.length)):(E=B.slice(0,N),this.leftOver=B.slice(N,B.length))),this.push({data:Y.utf8decode(E),meta:I.meta})},V.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Y.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Y.Utf8DecodeWorker=V,F.inherits(G,P),G.prototype.processChunk=function(I){this.push({data:Y.utf8encode(I.data),meta:I.meta})},Y.Utf8EncodeWorker=G},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(q,Re,Y){"use strict";var F=q("./support"),R=q("./base64"),S=q("./nodejsUtils"),P=q("./external");function $(M){return M}function W(M,N){for(var E=0;E>8;this.dir=!!(16&this.externalFileAttributes),0==I&&(this.dosPermissions=63&this.externalFileAttributes),3==I&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var I=F(this.extraFields[1].value);this.uncompressedSize===R.MAX_VALUE_32BITS&&(this.uncompressedSize=I.readInt(8)),this.compressedSize===R.MAX_VALUE_32BITS&&(this.compressedSize=I.readInt(8)),this.localHeaderOffset===R.MAX_VALUE_32BITS&&(this.localHeaderOffset=I.readInt(8)),this.diskNumberStart===R.MAX_VALUE_32BITS&&(this.diskNumberStart=I.readInt(4))}},readExtraFields:function(I){var B,M,N,E=I.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});I.index+4>>6:(I<65536?G[N++]=224|I>>>12:(G[N++]=240|I>>>18,G[N++]=128|I>>>12&63),G[N++]=128|I>>>6&63),G[N++]=128|63&I);return G},Y.buf2binstring=function(V){return W(V,V.length)},Y.binstring2buf=function(V){for(var G=new F.Buf8(V.length),I=0,B=G.length;I>10&1023,j[B++]=56320|1023&M)}return W(j,B)},Y.utf8border=function(V,G){var I;for((G=G||V.length)>V.length&&(G=V.length),I=G-1;0<=I&&128==(192&V[I]);)I--;return I<0||0===I?G:I+P[V[I]]>G?I:G}},{"./common":41}],43:[function(q,Re,Y){"use strict";Re.exports=function(F,R,S,P){for(var $=65535&F|0,W=F>>>16&65535|0,V=0;0!==S;){for(S-=V=2e3>>1:R>>>1;S[P]=R}return S}();Re.exports=function(R,S,P,$){var W=F,V=$+P;R^=-1;for(var G=$;G>>8^W[255&(R^S[G])];return-1^R}},{}],46:[function(q,Re,Y){"use strict";var F,R=q("../utils/common"),S=q("./trees"),P=q("./adler32"),$=q("./crc32"),W=q("./messages"),V=0,I=0,B=-2,E=2,j=8,oe=286,te=30,Te=19,we=2*oe+1,Fe=15,ye=3,Ge=258,ht=Ge+ye+1,H=42,Ce=113;function Vt(v,Se){return v.msg=W[Se],Se}function Ve(v){return(v<<1)-(4v.avail_out&&(J=v.avail_out),0!==J&&(R.arraySet(v.output,Se.pending_buf,Se.pending_out,J,v.next_out),v.next_out+=J,Se.pending_out+=J,v.total_out+=J,v.avail_out-=J,Se.pending-=J,0===Se.pending&&(Se.pending_out=0))}function le(v,Se){S._tr_flush_block(v,0<=v.block_start?v.block_start:-1,v.strstart-v.block_start,Se),v.block_start=v.strstart,fe(v.strm)}function bt(v,Se){v.pending_buf[v.pending++]=Se}function it(v,Se){v.pending_buf[v.pending++]=Se>>>8&255,v.pending_buf[v.pending++]=255&Se}function Qe(v,Se){var J,L,O=v.max_chain_length,Z=v.strstart,de=v.prev_length,Ee=v.nice_match,ce=v.strstart>v.w_size-ht?v.strstart-(v.w_size-ht):0,je=v.window,Je=v.w_mask,ze=v.prev,ut=v.strstart+Ge,oi=je[Z+de-1],Kt=je[Z+de];v.prev_length>=v.good_match&&(O>>=2),Ee>v.lookahead&&(Ee=v.lookahead);do{if(je[(J=Se)+de]===Kt&&je[J+de-1]===oi&&je[J]===je[Z]&&je[++J]===je[Z+1]){Z+=2,J++;do{}while(je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&Zce&&0!=--O);return de<=v.lookahead?de:v.lookahead}function Zi(v){var Se,J,L,O,Z,de,Ee,ce,je,Je,ze=v.w_size;do{if(O=v.window_size-v.lookahead-v.strstart,v.strstart>=ze+(ze-ht)){for(R.arraySet(v.window,v.window,ze,ze,0),v.match_start-=ze,v.strstart-=ze,v.block_start-=ze,Se=J=v.hash_size;L=v.head[--Se],v.head[Se]=ze<=L?L-ze:0,--J;);for(Se=J=ze;L=v.prev[--Se],v.prev[Se]=ze<=L?L-ze:0,--J;);O+=ze}if(0===v.strm.avail_in)break;if(Ee=v.window,ce=v.strstart+v.lookahead,Je=void 0,(je=O)<(Je=(de=v.strm).avail_in)&&(Je=je),J=0===Je?0:(de.avail_in-=Je,R.arraySet(Ee,de.input,de.next_in,Je,ce),1===de.state.wrap?de.adler=P(de.adler,Ee,Je,ce):2===de.state.wrap&&(de.adler=$(de.adler,Ee,Je,ce)),de.next_in+=Je,de.total_in+=Je,Je),v.lookahead+=J,v.lookahead+v.insert>=ye)for(v.ins_h=v.window[Z=v.strstart-v.insert],v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye)if(L=S._tr_tally(v,v.strstart-v.match_start,v.match_length-ye),v.lookahead-=v.match_length,v.match_length<=v.max_lazy_match&&v.lookahead>=ye){for(v.match_length--;v.strstart++,v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye&&v.match_length<=v.prev_length){for(O=v.strstart+v.lookahead-ye,L=S._tr_tally(v,v.strstart-1-v.prev_match,v.prev_length-ye),v.lookahead-=v.prev_length-1,v.prev_length-=2;++v.strstart<=O&&(v.ins_h=(v.ins_h<v.pending_buf_size-5&&(J=v.pending_buf_size-5);;){if(v.lookahead<=1){if(Zi(v),0===v.lookahead&&Se===V)return 1;if(0===v.lookahead)break}v.strstart+=v.lookahead,v.lookahead=0;var L=v.block_start+J;if((0===v.strstart||v.strstart>=L)&&(v.lookahead=v.strstart-L,v.strstart=L,le(v,!1),0===v.strm.avail_out)||v.strstart-v.block_start>=v.w_size-ht&&(le(v,!1),0===v.strm.avail_out))return 1}return v.insert=0,4===Se?(le(v,!0),0===v.strm.avail_out?3:4):(v.strstart>v.block_start&&le(v,!1),1)}),new ni(4,4,8,4,Fn),new ni(4,5,16,8,Fn),new ni(4,6,32,32,Fn),new ni(4,4,16,16,Wt),new ni(8,16,32,32,Wt),new ni(8,16,128,128,Wt),new ni(8,32,128,256,Wt),new ni(32,128,258,1024,Wt),new ni(32,258,258,4096,Wt)],Y.deflateInit=function(v,Se){return fo(v,Se,j,15,8,0)},Y.deflateInit2=fo,Y.deflateReset=ar,Y.deflateResetKeep=Ui,Y.deflateSetHeader=function(v,Se){return v&&v.state?2!==v.state.wrap?B:(v.state.gzhead=Se,I):B},Y.deflate=function(v,Se){var J,L,O,Z;if(!v||!v.state||5>8&255),bt(L,L.gzhead.time>>16&255),bt(L,L.gzhead.time>>24&255),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,255&L.gzhead.os),L.gzhead.extra&&L.gzhead.extra.length&&(bt(L,255&L.gzhead.extra.length),bt(L,L.gzhead.extra.length>>8&255)),L.gzhead.hcrc&&(v.adler=$(v.adler,L.pending_buf,L.pending,0)),L.gzindex=0,L.status=69):(bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,3),L.status=Ce);else{var de=j+(L.w_bits-8<<4)<<8;de|=(2<=L.strategy||L.level<2?0:L.level<6?1:6===L.level?2:3)<<6,0!==L.strstart&&(de|=32),de+=31-de%31,L.status=Ce,it(L,de),0!==L.strstart&&(it(L,v.adler>>>16),it(L,65535&v.adler)),v.adler=1}if(69===L.status)if(L.gzhead.extra){for(O=L.pending;L.gzindex<(65535&L.gzhead.extra.length)&&(L.pending!==L.pending_buf_size||(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending!==L.pending_buf_size));)bt(L,255&L.gzhead.extra[L.gzindex]),L.gzindex++;L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),L.gzindex===L.gzhead.extra.length&&(L.gzindex=0,L.status=73)}else L.status=73;if(73===L.status)if(L.gzhead.name){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.gzindex=0,L.status=91)}else L.status=91;if(91===L.status)if(L.gzhead.comment){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.status=103)}else L.status=103;if(103===L.status&&(L.gzhead.hcrc?(L.pending+2>L.pending_buf_size&&fe(v),L.pending+2<=L.pending_buf_size&&(bt(L,255&v.adler),bt(L,v.adler>>8&255),v.adler=0,L.status=Ce)):L.status=Ce),0!==L.pending){if(fe(v),0===v.avail_out)return L.last_flush=-1,I}else if(0===v.avail_in&&Ve(Se)<=Ve(J)&&4!==Se)return Vt(v,-5);if(666===L.status&&0!==v.avail_in)return Vt(v,-5);if(0!==v.avail_in||0!==L.lookahead||Se!==V&&666!==L.status){var Ee=2===L.strategy?function(ce,je){for(var Je;;){if(0===ce.lookahead&&(Zi(ce),0===ce.lookahead)){if(je===V)return 1;break}if(ce.match_length=0,Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++,Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):3===L.strategy?function(ce,je){for(var Je,ze,ut,oi,Kt=ce.window;;){if(ce.lookahead<=Ge){if(Zi(ce),ce.lookahead<=Ge&&je===V)return 1;if(0===ce.lookahead)break}if(ce.match_length=0,ce.lookahead>=ye&&0ce.lookahead&&(ce.match_length=ce.lookahead)}if(ce.match_length>=ye?(Je=S._tr_tally(ce,1,ce.match_length-ye),ce.lookahead-=ce.match_length,ce.strstart+=ce.match_length,ce.match_length=0):(Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++),Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):F[L.level].func(L,Se);if(3!==Ee&&4!==Ee||(L.status=666),1===Ee||3===Ee)return 0===v.avail_out&&(L.last_flush=-1),I;if(2===Ee&&(1===Se?S._tr_align(L):5!==Se&&(S._tr_stored_block(L,0,0,!1),3===Se&&(Tt(L.head),0===L.lookahead&&(L.strstart=0,L.block_start=0,L.insert=0))),fe(v),0===v.avail_out))return L.last_flush=-1,I}return 4!==Se?I:L.wrap<=0?1:(2===L.wrap?(bt(L,255&v.adler),bt(L,v.adler>>8&255),bt(L,v.adler>>16&255),bt(L,v.adler>>24&255),bt(L,255&v.total_in),bt(L,v.total_in>>8&255),bt(L,v.total_in>>16&255),bt(L,v.total_in>>24&255)):(it(L,v.adler>>>16),it(L,65535&v.adler)),fe(v),0=J.w_size&&(0===Z&&(Tt(J.head),J.strstart=0,J.block_start=0,J.insert=0),je=new R.Buf8(J.w_size),R.arraySet(je,Se,Je-J.w_size,J.w_size,0),Se=je,Je=J.w_size),de=v.avail_in,Ee=v.next_in,ce=v.input,v.avail_in=Je,v.next_in=0,v.input=Se,Zi(J);J.lookahead>=ye;){for(L=J.strstart,O=J.lookahead-(ye-1);J.ins_h=(J.ins_h<>>=ye=Fe>>>24,K-=ye,0==(ye=Fe>>>16&255))Me[W++]=65535&Fe;else{if(!(16&ye)){if(!(64&ye)){Fe=oe[(65535&Fe)+(j&(1<>>=ye,K-=ye),K<15&&(j+=x[P++]<>>=ye=Fe>>>24,K-=ye,!(16&(ye=Fe>>>16&255))){if(!(64&ye)){Fe=te[(65535&Fe)+(j&(1<>>=ye,K-=ye,(ye=W-V)>3,j&=(1<<(K-=Ge<<3))-1,F.next_in=P,F.next_out=W,F.avail_in=P<$?$-P+5:5-(P-$),F.avail_out=W>>24&255)+(H>>>8&65280)+((65280&H)<<8)+((255&H)<<24)}function j(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new F.Buf16(320),this.work=new F.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function K(H){var Ce;return H&&H.state?(H.total_in=H.total_out=(Ce=H.state).total=0,H.msg="",Ce.wrap&&(H.adler=1&Ce.wrap),Ce.mode=B,Ce.last=0,Ce.havedict=0,Ce.dmax=32768,Ce.head=null,Ce.hold=0,Ce.bits=0,Ce.lencode=Ce.lendyn=new F.Buf32(M),Ce.distcode=Ce.distdyn=new F.Buf32(N),Ce.sane=1,Ce.back=-1,G):I}function oe(H){var Ce;return H&&H.state?((Ce=H.state).wsize=0,Ce.whave=0,Ce.wnext=0,K(H)):I}function te(H,Ce){var x,Me;return H&&H.state?(Me=H.state,Ce<0?(x=0,Ce=-Ce):(x=1+(Ce>>4),Ce<48&&(Ce&=15)),Ce&&(Ce<8||15=Le.wsize?(F.arraySet(Le.window,Ce,x-Le.wsize,Le.wsize,0),Le.wnext=0,Le.whave=Le.wsize):(Me<(Rt=Le.wsize-Le.wnext)&&(Rt=Me),F.arraySet(Le.window,Ce,x-Me,Rt,Le.wnext),(Me-=Rt)?(F.arraySet(Le.window,Ce,x-Me,Me,0),Le.wnext=Me,Le.whave=Le.wsize):(Le.wnext+=Rt,Le.wnext===Le.wsize&&(Le.wnext=0),Le.whave>>8&255,x.check=S(x.check,Z,2,0),le=fe=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&fe)<<8)+(fe>>8))%31){H.msg="incorrect header check",x.mode=30;break}if(8!=(15&fe)){H.msg="unknown compression method",x.mode=30;break}if(le-=4,v=8+(15&(fe>>>=4)),0===x.wbits)x.wbits=v;else if(v>x.wbits){H.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=3;case 3:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,Z[2]=fe>>>16&255,Z[3]=fe>>>24&255,x.check=S(x.check,Z,4,0)),le=fe=0,x.mode=4;case 4:for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>8),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=5;case 5:if(1024&x.flags){for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(Ve<(Qe=x.length)&&(Qe=Ve),Qe&&(x.head&&(v=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),F.arraySet(x.head.extra,Me,Le,Qe,v)),512&x.flags&&(x.check=S(x.check,Me,Qe,Le)),Ve-=Qe,Le+=Qe,x.length-=Qe),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(0===Ve)break e;for(Qe=0;v=Me[Le+Qe++],x.head&&v&&x.length<65536&&(x.head.name+=String.fromCharCode(v)),v&&Qe>9&1,x.head.done=!0),H.adler=x.check=0,x.mode=12;break;case 10:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=7&le,le-=7&le,x.mode=27;break}for(;le<3;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=1)){case 0:x.mode=14;break;case 1:if(Ge(x),x.mode=20,6!==Ce)break;fe>>>=2,le-=2;break e;case 2:x.mode=17;break;case 3:H.msg="invalid block type",x.mode=30}fe>>>=2,le-=2;break;case 14:for(fe>>>=7&le,le-=7≤le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>16^65535)){H.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&fe,le=fe=0,x.mode=15,6===Ce)break e;case 15:x.mode=16;case 16:if(Qe=x.length){if(Ve>>=5)),le-=5,x.ncode=4+(15&(fe>>>=5)),fe>>>=4,le-=4,286>>=3,le-=3}for(;x.have<19;)x.lens[de[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,Se=$(0,x.lens,0,19,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Wt,le-=Wt,x.lens[x.have++]=cn;else{if(16===cn){for(L=Wt+2;le>>=Wt,le-=Wt,0===x.have){H.msg="invalid bit length repeat",x.mode=30;break}v=x.lens[x.have-1],Qe=3+(3&fe),fe>>>=2,le-=2}else if(17===cn){for(L=Wt+3;le>>=Wt)),fe>>>=3,le-=3}else{for(L=Wt+7;le>>=Wt)),fe>>>=7,le-=7}if(x.have+Qe>x.nlen+x.ndist){H.msg="invalid bit length repeat",x.mode=30;break}for(;Qe--;)x.lens[x.have++]=v}}if(30===x.mode)break;if(0===x.lens[256]){H.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,Se=$(1,x.lens,0,x.nlen,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,Se=$(2,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,J={bits:x.distbits}),x.distbits=J.bits,Se){H.msg="invalid distances set",x.mode=30;break}if(x.mode=20,6===Ce)break e;case 20:x.mode=21;case 21:if(6<=Ve&&258<=Tt){H.next_out=Vt,H.avail_out=Tt,H.next_in=Le,H.avail_in=Ve,x.hold=fe,x.bits=le,P(H,it),Vt=H.next_out,Rt=H.output,Tt=H.avail_out,Le=H.next_in,Me=H.input,Ve=H.avail_in,fe=x.hold,le=x.bits,12===x.mode&&(x.back=-1);break}for(x.back=0;ni=(O=x.lencode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,x.length=cn,0===ni){x.mode=26;break}if(32&ni){x.back=-1,x.mode=12;break}if(64&ni){H.msg="invalid literal/length code",x.mode=30;break}x.extra=15&ni,x.mode=22;case 22:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;ni=(O=x.distcode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,64&ni){H.msg="invalid distance code",x.mode=30;break}x.offset=cn,x.extra=15&ni,x.mode=24;case 24:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){H.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(0===Tt)break e;if(x.offset>(Qe=it-Tt)){if((Qe=x.offset-Qe)>x.whave&&x.sane){H.msg="invalid distance too far back",x.mode=30;break}Zi=Qe>x.wnext?x.wsize-(Qe-=x.wnext):x.wnext-Qe,Qe>x.length&&(Qe=x.length),Fn=x.window}else Fn=Rt,Zi=Vt-x.offset,Qe=x.length;for(Ttwe?(ye=Zi[Fn+N[Ce]],le[bt+N[Ce]]):(ye=96,0),j=1<>Vt)+(K-=j)]=Fe<<24|ye<<16|Ge|0,0!==K;);for(j=1<>=1;if(0!==j?(fe&=j-1,fe+=j):fe=0,Ce++,0==--it[H]){if(H===Me)break;H=V[G+N[Ce]]}if(Rt>>7)]}function bt(O,Z){O.pending_buf[O.pending++]=255&Z,O.pending_buf[O.pending++]=Z>>>8&255}function it(O,Z,de){O.bi_valid>E-de?(O.bi_buf|=Z<>E-O.bi_valid,O.bi_valid+=de-E):(O.bi_buf|=Z<>>=1,de<<=1,0<--Z;);return de>>>1}function Fn(O,Z,de){var Ee,ce,je=new Array(N+1),Je=0;for(Ee=1;Ee<=N;Ee++)je[Ee]=Je=Je+de[Ee-1]<<1;for(ce=0;ce<=Z;ce++){var ze=O[2*ce+1];0!==ze&&(O[2*ce]=Zi(je[ze]++,ze))}}function Wt(O){var Z;for(Z=0;Z>1;1<=de;de--)Ui(O,je,de);for(ce=ut;de=O.heap[1],O.heap[1]=O.heap[O.heap_len--],Ui(O,je,1),Ee=O.heap[1],O.heap[--O.heap_max]=de,O.heap[--O.heap_max]=Ee,je[2*ce]=je[2*de]+je[2*Ee],O.depth[ce]=(O.depth[de]>=O.depth[Ee]?O.depth[de]:O.depth[Ee])+1,je[2*de+1]=je[2*Ee+1]=ce,O.heap[1]=ce++,Ui(O,je,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(Kt,go){var ws,_o,Mo,Ti,_c,xs,sr=go.dyn_tree,bc=go.max_code,Ag=go.stat_desc.static_tree,Ds=go.stat_desc.has_stree,vc=go.stat_desc.extra_bits,Sh=go.stat_desc.extra_base,Qr=go.stat_desc.max_length,yc=0;for(Ti=0;Ti<=N;Ti++)Kt.bl_count[Ti]=0;for(sr[2*Kt.heap[Kt.heap_max]+1]=0,ws=Kt.heap_max+1;ws<573;ws++)Qr<(Ti=sr[2*sr[2*(_o=Kt.heap[ws])+1]+1]+1)&&(Ti=Qr,yc++),sr[2*_o+1]=Ti,bc<_o||(Kt.bl_count[Ti]++,_c=0,Sh<=_o&&(_c=vc[_o-Sh]),Kt.opt_len+=(xs=sr[2*_o])*(Ti+_c),Ds&&(Kt.static_len+=xs*(Ag[2*_o+1]+_c)));if(0!==yc){do{for(Ti=Qr-1;0===Kt.bl_count[Ti];)Ti--;Kt.bl_count[Ti]--,Kt.bl_count[Ti+1]+=2,Kt.bl_count[Qr]--,yc-=2}while(0>=7;ce>>=1)if(1&oi&&0!==ze.dyn_ltree[2*ut])return 0;if(0!==ze.dyn_ltree[18]||0!==ze.dyn_ltree[20]||0!==ze.dyn_ltree[26])return 1;for(ut=32;ut>>3)<=(ce=O.opt_len+3+7>>>3)&&(ce=je)):ce=je=de+5,de+4<=ce&&-1!==Z?L(O,Z,de,Ee):4===O.strategy||je===ce?(it(O,2+(Ee?1:0),3),ar(O,ht,H)):(it(O,4+(Ee?1:0),3),function(ze,ut,oi,Kt){var go;for(it(ze,ut-257,5),it(ze,oi-1,5),it(ze,Kt-4,4),go=0;go>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&Z,O.pending_buf[O.l_buf+O.last_lit]=255&de,O.last_lit++,0===Z?O.dyn_ltree[2*de]++:(O.matches++,Z--,O.dyn_ltree[2*(x[de]+V+1)]++,O.dyn_dtree[2*le(Z)]++),O.last_lit===O.lit_bufsize-1},Y._tr_align=function(O){var Z;it(O,2,3),Qe(O,256,ht),16===(Z=O).bi_valid?(bt(Z,Z.bi_buf),Z.bi_buf=0,Z.bi_valid=0):8<=Z.bi_valid&&(Z.pending_buf[Z.pending++]=255&Z.bi_buf,Z.bi_buf>>=8,Z.bi_valid-=8)}},{"../utils/common":41}],53:[function(q,Re,Y){"use strict";Re.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(q,Re,Y){(function(F){!function(R,S){"use strict";if(!R.setImmediate){var P,$,W,V,G=1,I={},B=!1,M=R.document,N=Object.getPrototypeOf&&Object.getPrototypeOf(R);N=N&&N.setTimeout?N:R,P="[object process]"==={}.toString.call(R.process)?function(oe){process.nextTick(function(){j(oe)})}:function(){if(R.postMessage&&!R.importScripts){var oe=!0,te=R.onmessage;return R.onmessage=function(){oe=!1},R.postMessage("","*"),R.onmessage=te,oe}}()?(V="setImmediate$"+Math.random()+"$",R.addEventListener?R.addEventListener("message",K,!1):R.attachEvent("onmessage",K),function(oe){R.postMessage(V+oe,"*")}):R.MessageChannel?((W=new MessageChannel).port1.onmessage=function(oe){j(oe.data)},function(oe){W.port2.postMessage(oe)}):M&&"onreadystatechange"in M.createElement("script")?($=M.documentElement,function(oe){var te=M.createElement("script");te.onreadystatechange=function(){j(oe),te.onreadystatechange=null,$.removeChild(te),te=null},$.appendChild(te)}):function(oe){setTimeout(j,0,oe)},N.setImmediate=function(oe){"function"!=typeof oe&&(oe=new Function(""+oe));for(var te=new Array(arguments.length-1),Te=0;Te"u"?void 0===F?this:F:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)}},ld=>{ld(ld.s=536)}]); \ No newline at end of file From 3b5a02be31bffee3b83507091fac75c1dc53d6f0 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Tue, 9 Jul 2024 11:32:35 +0000 Subject: [PATCH 12/46] Unsupported sources warnings + Report tests --- internal/convert.go | 1 + internal/mapping.go | 68 ++++- internal/mapping_test.go | 4 +- internal/reports/report_helpers.go | 20 +- sources/mysql/report_test.go | 2 +- sources/oracle/toddl_test.go | 33 +- sources/postgres/report_test.go | 2 +- sources/sqlserver/toddl_test.go | 52 ++-- test_data/mysql_structured_report.json | 330 ++++++++++---------- test_data/mysql_text_report.txt | 8 +- test_data/postgres_structured_report.json | 356 +++++++++++----------- test_data/postgres_text_report.txt | 8 +- 12 files changed, 496 insertions(+), 388 deletions(-) diff --git a/internal/convert.go b/internal/convert.go index 1df60633f..ecee75deb 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -126,6 +126,7 @@ const ( ForeignKeyOnDelete ForeignKeyOnUpdate SequenceCreated + ForeignKeyActionsNotSupported ) const ( diff --git a/internal/mapping.go b/internal/mapping.go index edb4932f2..3bd321e82 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -149,25 +149,44 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { // a) CASCADE/NO ACTION -> mapped to the same as source action // b) all others -> NO ACTION (default) // -// Since only MySQL and PostgreSQL have this functionality -// as of yet, for other sources OnDelete fields are -// kept empty i.e. "" is mapped to "" -// // For all source actions converted to a different action, // an issue is appended to it's TableLevelIssues to // generate a warning message for the user +// +// Since only MySQL and PostgreSQL have this functionality +// as of yet, for other sources OnDelete fields are +// kept empty i.e. "" is mapped to "" and an issue is appended +// to generate warning message (prints only once for each table with FK Actions) func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == "NO ACTION" || srcDeleteRule == "CASCADE" || srcDeleteRule == "" { + if srcDeleteRule == constants.NO_ACTION || srcDeleteRule == constants.CASCADE { return srcDeleteRule } - if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } + tableIssues := conv.SchemaIssues[srcTableId] + + if srcDeleteRule == "" { + //add ForeignKeyActionsNotSupported issue only if not previously added + flag := false + for i := 0; i < len(tableIssues.TableLevelIssues); i++ { + if tableIssues.TableLevelIssues[i] == ForeignKeyActionsNotSupported { + flag = true + break + } + } + if !flag { + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionsNotSupported), + ColumnLevelIssues: tableIssues.ColumnLevelIssues} + } + return "" + } conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnDelete), - ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyOnDelete), + ColumnLevelIssues: tableIssues.ColumnLevelIssues} + return constants.NO_ACTION } @@ -177,25 +196,44 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // all actions -> NO ACTION (default) // (Spanner only supports ON UPDATE NO ACTION) // -// Since only MySQL and PostgreSQL have this functionality -// as of yet, for other sources OnDelete fields are -// kept empty i.e. "" is mapped to "" -// // For all source actions converted to a different action, // an issue is appended to it's TableLevelIssues to // generate a warning message for the user +// +// Since only MySQL and PostgreSQL have this functionality +// as of yet, for other sources OnUpdate fields are +// kept empty i.e. "" is mapped to "" and an issue is appended +// to generate warning message (prints only once for each table with FK Actions) func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == "NO ACTION" || srcUpdateRule == "" { + if srcUpdateRule == constants.NO_ACTION { return srcUpdateRule } if conv.SchemaIssues == nil { conv.SchemaIssues = make(map[string]TableIssues) } + tableIssues := conv.SchemaIssues[srcTableId] + + if srcUpdateRule == "" { + //add ForeignKeyActionsNotSupported issue only if not previously added + flag := false + for i := 0; i < len(tableIssues.TableLevelIssues); i++ { + if tableIssues.TableLevelIssues[i] == ForeignKeyActionsNotSupported { + flag = true + break + } + } + if !flag { + conv.SchemaIssues[srcTableId] = TableIssues{ + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionsNotSupported), + ColumnLevelIssues: tableIssues.ColumnLevelIssues} + } + return "" + } conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(conv.SchemaIssues[srcTableId].TableLevelIssues, ForeignKeyOnUpdate), - ColumnLevelIssues: conv.SchemaIssues[srcTableId].ColumnLevelIssues} + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyOnUpdate), + ColumnLevelIssues: tableIssues.ColumnLevelIssues} return constants.NO_ACTION } diff --git a/internal/mapping_test.go b/internal/mapping_test.go index 2b694f6b1..e837dccfb 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -385,7 +385,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcDeleteRule: "", }, expectedOnDelete: "", - expectedIssues: nil, + expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, }, } for _, tc := range tests { @@ -473,7 +473,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcUpdateRule: "", }, expectedOnUpdate: "", - expectedIssues: nil, + expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, }, } for _, tc := range tests { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index d0ceb6023..f20d3c4be 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -112,11 +112,22 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if p.severity == warning { + flag := false for _, spFk := range conv.SpSchema[tableId].ForeignKeys { srcFk, err := internal.GetSrcFkFromId(conv.SrcSchema[tableId].ForeignKeys, spFk.Id) if err != nil { continue } + if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { + flag = true + issue := internal.ForeignKeyActionsNotSupported + toAppend := Issue{ + Category: IssueDB[issue].Category, + Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), + } + l = append(l, toAppend) + } + if srcFk.OnDelete != spFk.OnDelete { issue := internal.ForeignKeyOnDelete toAppend := Issue{ @@ -545,10 +556,11 @@ var IssueDB = map[internal.SchemaIssue]struct { CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, - internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, - internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, + internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } type Severity int diff --git a/sources/mysql/report_test.go b/sources/mysql/report_test.go index 578aeea05..3289c71d3 100644 --- a/sources/mysql/report_test.go +++ b/sources/mysql/report_test.go @@ -50,7 +50,7 @@ func TestReport(t *testing.T) { a text, b bigint, PRIMARY KEY (a), - FOREIGN KEY (a) REFERENCES excellent_schema(a)); + FOREIGN KEY (a) REFERENCES excellent_schema(a) on delete restrict on update cascade); CREATE TABLE no_pk ( a bigint, b integer NOT NULL, diff --git a/sources/oracle/toddl_test.go b/sources/oracle/toddl_test.go index fc4bceb52..2bda799bd 100644 --- a/sources/oracle/toddl_test.go +++ b/sources/oracle/toddl_test.go @@ -128,8 +128,8 @@ func TestToSpannerType(t *testing.T) { }, PrimaryKeys: []schema.Key{{ColId: "c1"}}, ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c9"}}, - {Name: "fk_fake", ColIds: []string{"x"}, ReferTableId: "t2", ReferColumnIds: []string{"x"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c12"}}}, + {Name: "fk_fake", ColIds: []string{"x"}, ReferTableId: "t2", ReferColumnIds: []string{"x"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c12"}, OnDelete: "", OnUpdate: ""}}, Indexes: []schema.Index{{Name: "index1", Unique: true, Keys: []schema.Key{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}, {Name: "index_with_0_key", Unique: true, Keys: []schema.Key{{ColId: "m", Desc: false}, {ColId: "y", Desc: true}}}, }, @@ -177,14 +177,18 @@ func TestToSpannerType(t *testing.T) { "c8": {Name: "h", Id: "c8", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c9"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c12"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c9"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c12"}, OnDelete: "", OnUpdate: ""}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}, {Name: "index_with_0_key", TableId: tableId, Unique: true, Keys: nil}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{} - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{}, + } + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) // 1 FK issue, 2 index col not found assert.Equal(t, int64(3), conv.Unexpecteds()) } @@ -215,8 +219,8 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { }, PrimaryKeys: []schema.Key{{ColId: "c1"}}, ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c12"}}, - {Name: "fk_fake", ColIds: []string{"x"}, ReferTableId: "t2", ReferColumnIds: []string{"x"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c15"}}}, + {Name: "fk_fake", ColIds: []string{"x"}, ReferTableId: "t2", ReferColumnIds: []string{"x"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c15"}, OnDelete: "", OnUpdate: ""}}, Indexes: []schema.Index{{Name: "index1", Unique: true, Keys: []schema.Key{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}, {Name: "index_with_0_key", Unique: true, Keys: []schema.Key{{ColId: "m", Desc: false}, {ColId: "y", Desc: true}}}, }, @@ -267,13 +271,18 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { "c11": {Name: "k", Id: "c11", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c12"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c15"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c12"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c15"}, OnDelete: "", OnUpdate: ""}}, Indexes: []ddl.CreateIndex{{Name: "index_with_0_key", TableId: tableId, Unique: true, Keys: nil}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{} - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{}, + } + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) + // 1 FK issue, 2 index col not found assert.Equal(t, int64(3), conv.Unexpecteds()) } diff --git a/sources/postgres/report_test.go b/sources/postgres/report_test.go index 51d38a5d9..d16dcf7f6 100644 --- a/sources/postgres/report_test.go +++ b/sources/postgres/report_test.go @@ -45,7 +45,7 @@ func TestReport(t *testing.T) { a text primary key, b bigint); CREATE TABLE foreign_key ( - a text primary key references excellent_schema(a), + a text primary key references excellent_schema(a) on delete restrict on update cascade, b bigint); CREATE TABLE no_pk ( a bigint[], diff --git a/sources/sqlserver/toddl_test.go b/sources/sqlserver/toddl_test.go index 216fd769d..77bd6bb67 100644 --- a/sources/sqlserver/toddl_test.go +++ b/sources/sqlserver/toddl_test.go @@ -136,8 +136,8 @@ func TestToSpannerType(t *testing.T) { "c15": {Name: "o", Id: "c15", Type: schema.Type{Name: "uniqueidentifier"}}, }, PrimaryKeys: []schema.Key{{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}, OnDelete: "", OnUpdate: ""}}, Indexes: []schema.Index{{Name: "index1", Unique: true, Keys: []schema.Key{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}}, } conv.SrcSchema[tableId] = srcSchema @@ -191,19 +191,23 @@ func TestToSpannerType(t *testing.T) { }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}, OnDelete: "", OnUpdate: ""}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{ - "c1": {internal.Widened}, - "c2": {internal.Widened}, - "c3": {internal.Widened}, - "c10": {internal.Timestamp}, - "c13": {internal.NoGoodType}, + + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{ + "c1": {internal.Widened}, + "c2": {internal.Widened}, + "c3": {internal.Widened}, + "c10": {internal.Timestamp}, + "c13": {internal.NoGoodType}, + }, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) } // This is just a very basic smoke-test for toSpannerPostgreSQLDialectType. @@ -235,8 +239,8 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { "c15": {Name: "o", Id: "c15", Type: schema.Type{Name: "uniqueidentifier"}}, }, PrimaryKeys: []schema.Key{{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}, OnDelete: "", OnUpdate: ""}}, Indexes: []schema.Index{{Name: "index1", Unique: true, Keys: []schema.Key{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}}, } conv.SrcSchema[tableId] = srcSchema @@ -290,19 +294,23 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}}, - {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c16"}, OnDelete: "", OnUpdate: ""}, + {Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c19"}, OnDelete: "", OnUpdate: ""}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c4", Desc: true}}}}, } assert.Equal(t, expected, actual) - expectedIssues := map[string][]internal.SchemaIssue{ - "c1": {internal.Widened}, - "c2": {internal.Widened}, - "c3": {internal.Widened}, - "c10": {internal.Timestamp}, - "c13": {internal.NoGoodType}, + + expectedIssues := internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{ + "c1": {internal.Widened}, + "c2": {internal.Widened}, + "c3": {internal.Widened}, + "c10": {internal.Timestamp}, + "c13": {internal.NoGoodType}, + }, } - assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId].ColumnLevelIssues) + assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) } func dropComments(t *ddl.CreateTable) { diff --git a/test_data/mysql_structured_report.json b/test_data/mysql_structured_report.json index 2f3e53f9c..29bd36ce7 100644 --- a/test_data/mysql_structured_report.json +++ b/test_data/mysql_structured_report.json @@ -1,173 +1,187 @@ { - "summary": { - "text": "Schema conversion: POOR (29% of 17006 columns mapped cleanly) + some missing primary keys.\nData conversion: POOR (66% of 6000 rows written to Spanner).\n", - "rating": "POOR", - "dbName": "sampleDB" - }, - "isSharded": false, - "ignoredStatements": null, - "conversionMetadata": [ + "summary": { + "text": "Schema conversion: POOR (29% of 17006 columns mapped cleanly) + some missing primary keys.\nData conversion: POOR (66% of 6000 rows written to Spanner).\n", + "rating": "POOR", + "dbName": "sampleDB" + }, + "isSharded": false, + "ignoredStatements": null, + "conversionMetadata": [ + { + "conversionType": "Schema", + "duration": 0 + }, + { + "conversionType": "Data", + "duration": 0 + } + ], + "migrationType": "SCHEMA_AND_DATA", + "statementStats": { + "driverName": "mysqldump", + "statementStats": [ { - "conversionType": "Schema", - "duration": 0 - }, - { - "conversionType": "Data", - "duration": 0 + "statement": "CreateTableStmt", + "schema": 5, + "data": 0, + "skip": 0, + "error": 0, + "totalCount": 0 } - ], - "migrationType": "SCHEMA_AND_DATA", - "statementStats": { - "driverName": "mysqldump", - "statementStats": [ - { - "statement": "CreateTableStmt", - "schema": 5, - "data": 0, - "skip": 0, - "error": 0, - "totalCount": 0 - } - ] - }, - "nameChanges": null, - "tableReports": [ - { - "srcTableName": "bad_schema", - "spTableName": "bad_schema", - "schemaReport": { - "rating": "POOR", - "pkMissing": true, - "issues": 2, - "warnings": 2, - "totalColumns": 2 - }, - "dataReport": { - "rating": "OK", - "badRows": 60, - "totalRows": 1000, - "dryRun": false - }, - "issues": [ + ] + }, + "nameChanges": null, + "tableReports": [ + { + "srcTableName": "bad_schema", + "spTableName": "bad_schema", + "schemaReport": { + "rating": "POOR", + "pkMissing": true, + "issues": 2, + "warnings": 2, + "totalColumns": 2 + }, + "dataReport": { + "rating": "OK", + "badRows": 60, + "totalRows": 1000, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "STORAGE_WARNING", + "description": "Table 'bad_schema': Some columns will consume more storage in Spanner e.g. for column 'a', source DB type float is mapped to Spanner data type float64" + }, { - "issueType": "Warnings", - "issueList": [ - { - "category": "STORAGE_WARNING", - "description": "Table 'bad_schema': Some columns will consume more storage in Spanner e.g. for column 'a', source DB type float is mapped to Spanner data type float64" - }, - { - "category": "MISSING_PRIMARY_KEY", - "description": "Column 'synth_id' was added because table 'bad_schema' didn't have a primary key. Spanner requires a primary key for every table" - } - ] + "category": "MISSING_PRIMARY_KEY", + "description": "Column 'synth_id' was added because table 'bad_schema' didn't have a primary key. Spanner requires a primary key for every table" } - ] + ] + } + ] + }, + { + "srcTableName": "default_value", + "spTableName": "default_value", + "schemaReport": { + "rating": "EXCELLENT", + "pkMissing": false, + "issues": 1, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "default_value", - "spTableName": "default_value", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 1, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": [ + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false + }, + "issues": [ + { + "issueType": "Note", + "issueList": [ { - "issueType": "Note", - "issueList": [ - { - "category": "MISSING_DEFAULT_VALUE_CONSTRAINTS", - "description": "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete for table 'default_value' e.g. column 'b'" - } - ] + "category": "MISSING_DEFAULT_VALUE_CONSTRAINTS", + "description": "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete for table 'default_value' e.g. column 'b'" } - ] + ] + } + ] + }, + { + "srcTableName": "excellent_schema", + "spTableName": "excellent_schema", + "schemaReport": { + "rating": "EXCELLENT", + "pkMissing": false, + "issues": 0, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "excellent_schema", - "spTableName": "excellent_schema", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 0, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": null + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false }, - { - "srcTableName": "foreign_key", - "spTableName": "foreign_key", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 0, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": null + "issues": null + }, + { + "srcTableName": "foreign_key", + "spTableName": "foreign_key", + "schemaReport": { + "rating": "POOR", + "pkMissing": false, + "issues": 2, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "no_pk", - "spTableName": "no_pk", - "schemaReport": { - "rating": "POOR", - "pkMissing": true, - "issues": 2, - "warnings": 2, - "totalColumns": 3 - }, - "dataReport": { - "rating": "POOR", - "badRows": 2000, - "totalRows": 5000, - "dryRun": false - }, - "issues": [ + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "FOREIGN_KEY_ACTIONS", + "description": "Table 'foreign_key': ON DELETE action of Foreign Key '' mapped from RESTRICT to NO ACTION - Spanner supports only ON DELETE CASCADE/NO ACTION" + }, { - "issueType": "Warnings", - "issueList": [ - { - "category": "STORAGE_WARNING", - "description": "Table 'no_pk': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int(11) is mapped to Spanner data type int64" - }, - { - "category": "MISSING_PRIMARY_KEY", - "description": "Column 'synth_id' was added because table 'no_pk' didn't have a primary key. Spanner requires a primary key for every table" - } - ] + "category": "FOREIGN_KEY_ACTIONS", + "description": "Table 'foreign_key': ON UPDATE action of Foreign Key '' mapped from CASCADE to NO ACTION - Spanner supports only ON UPDATE NO ACTION" } - ] - } - ], - "unexpectedConditions": { - "Reparsed": 0, - "unexpectedConditions": [ - { - "count": 5, - "condition": "Testing unexpected messages" - } + ] + } + ] + }, + { + "srcTableName": "no_pk", + "spTableName": "no_pk", + "schemaReport": { + "rating": "POOR", + "pkMissing": true, + "issues": 2, + "warnings": 2, + "totalColumns": 3 + }, + "dataReport": { + "rating": "POOR", + "badRows": 2000, + "totalRows": 5000, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "STORAGE_WARNING", + "description": "Table 'no_pk': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int(11) is mapped to Spanner data type int64" + }, + { + "category": "MISSING_PRIMARY_KEY", + "description": "Column 'synth_id' was added because table 'no_pk' didn't have a primary key. Spanner requires a primary key for every table" + } + ] + } ] - } + } + ], + "unexpectedConditions": { + "Reparsed": 0, + "unexpectedConditions": [ + { + "count": 5, + "condition": "Testing unexpected messages" + } + ] + } } \ No newline at end of file diff --git a/test_data/mysql_text_report.txt b/test_data/mysql_text_report.txt index dca89a1f5..ab32d5f2f 100644 --- a/test_data/mysql_text_report.txt +++ b/test_data/mysql_text_report.txt @@ -58,9 +58,15 @@ Data conversion: NONE (100% of 0 rows written to Spanner). ---------------------------- Table foreign_key ---------------------------- -Schema conversion: EXCELLENT (100% of 2 columns mapped cleanly). +Schema conversion: POOR (100% of 2 columns mapped cleanly). Data conversion: NONE (100% of 0 rows written to Spanner). +Warnings +1) Table 'foreign_key': ON DELETE action of Foreign Key '' mapped from RESTRICT + to NO ACTION - Spanner supports only ON DELETE CASCADE/NO ACTION. +2) Table 'foreign_key': ON UPDATE action of Foreign Key '' mapped from CASCADE to + NO ACTION - Spanner supports only ON UPDATE NO ACTION. + ---------------------------- Table no_pk ---------------------------- diff --git a/test_data/postgres_structured_report.json b/test_data/postgres_structured_report.json index 6068861f7..073d7c36a 100644 --- a/test_data/postgres_structured_report.json +++ b/test_data/postgres_structured_report.json @@ -1,185 +1,199 @@ { - "summary": { - "text": "Schema conversion: POOR ( 0% of 19006 columns mapped cleanly) + some missing primary keys.\nData conversion: POOR (66% of 6000 rows written to Spanner).\n", - "rating": "POOR", - "dbName": "sampleDB" - }, - "isSharded": false, - "ignoredStatements": null, - "conversionMetadata": [ + "summary": { + "text": "Schema conversion: POOR ( 0% of 19006 columns mapped cleanly) + some missing primary keys.\nData conversion: POOR (66% of 6000 rows written to Spanner).\n", + "rating": "POOR", + "dbName": "sampleDB" + }, + "isSharded": false, + "ignoredStatements": null, + "conversionMetadata": [ + { + "conversionType": "Schema", + "duration": 0 + }, + { + "conversionType": "Data", + "duration": 0 + } + ], + "migrationType": "SCHEMA_AND_DATA", + "statementStats": { + "driverName": "pg_dump", + "statementStats": [ { - "conversionType": "Schema", - "duration": 0 - }, - { - "conversionType": "Data", - "duration": 0 + "statement": "CreateStmt", + "schema": 5, + "data": 0, + "skip": 0, + "error": 0, + "totalCount": 0 } - ], - "migrationType": "SCHEMA_AND_DATA", - "statementStats": { - "driverName": "pg_dump", - "statementStats": [ - { - "statement": "CreateStmt", - "schema": 5, - "data": 0, - "skip": 0, - "error": 0, - "totalCount": 0 - } - ] - }, - "nameChanges": null, - "tableReports": [ - { - "srcTableName": "bad_schema", - "spTableName": "bad_schema", - "schemaReport": { - "rating": "POOR", - "pkMissing": true, - "issues": 4, - "warnings": 4, - "totalColumns": 4 - }, - "dataReport": { - "rating": "OK", - "badRows": 60, - "totalRows": 1000, - "dryRun": false - }, - "issues": [ + ] + }, + "nameChanges": null, + "tableReports": [ + { + "srcTableName": "bad_schema", + "spTableName": "bad_schema", + "schemaReport": { + "rating": "POOR", + "pkMissing": true, + "issues": 4, + "warnings": 4, + "totalColumns": 4 + }, + "dataReport": { + "rating": "OK", + "badRows": 60, + "totalRows": 1000, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "STORAGE_WARNING", + "description": "Table 'bad_schema': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int4 is mapped to Spanner data type int64" + }, { - "issueType": "Warnings", - "issueList": [ - { - "category": "STORAGE_WARNING", - "description": "Table 'bad_schema': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int4 is mapped to Spanner data type int64" - }, - { - "category": "MULTI_DIMENSIONAL_ARRAY_USES", - "description": "Table 'bad_schema': Column 'c', type int4[4][2] is mapped to string(max). Spanner doesn't support multi-dimensional arrays" - }, - { - "category": "INAPPROPRIATE_TYPE", - "description": "Table 'bad_schema': Column 'd', type circle is mapped to string(max). No appropriate Spanner type. The column will be made nullable in Spanner" - }, - { - "category": "MISSING_PRIMARY_KEY", - "description": "Column 'synth_id' was added because table 'bad_schema' didn't have a primary key. Spanner requires a primary key for every table" - } - ] + "category": "MULTI_DIMENSIONAL_ARRAY_USES", + "description": "Table 'bad_schema': Column 'c', type int4[4][2] is mapped to string(max). Spanner doesn't support multi-dimensional arrays" + }, + { + "category": "INAPPROPRIATE_TYPE", + "description": "Table 'bad_schema': Column 'd', type circle is mapped to string(max). No appropriate Spanner type. The column will be made nullable in Spanner" + }, + { + "category": "MISSING_PRIMARY_KEY", + "description": "Column 'synth_id' was added because table 'bad_schema' didn't have a primary key. Spanner requires a primary key for every table" } - ] + ] + } + ] + }, + { + "srcTableName": "default_value", + "spTableName": "default_value", + "schemaReport": { + "rating": "EXCELLENT", + "pkMissing": false, + "issues": 1, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "default_value", - "spTableName": "default_value", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 1, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": [ + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false + }, + "issues": [ + { + "issueType": "Note", + "issueList": [ { - "issueType": "Note", - "issueList": [ - { - "category": "MISSING_DEFAULT_VALUE_CONSTRAINTS", - "description": "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete for table 'default_value' e.g. column 'b'" - } - ] + "category": "MISSING_DEFAULT_VALUE_CONSTRAINTS", + "description": "Some columns have default values which Spanner migration tool does not migrate. Please add the default constraints manually after the migration is complete for table 'default_value' e.g. column 'b'" } - ] + ] + } + ] + }, + { + "srcTableName": "excellent_schema", + "spTableName": "excellent_schema", + "schemaReport": { + "rating": "EXCELLENT", + "pkMissing": false, + "issues": 0, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "excellent_schema", - "spTableName": "excellent_schema", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 0, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": null + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false }, - { - "srcTableName": "foreign_key", - "spTableName": "foreign_key", - "schemaReport": { - "rating": "EXCELLENT", - "pkMissing": false, - "issues": 0, - "warnings": 0, - "totalColumns": 2 - }, - "dataReport": { - "rating": "NONE", - "badRows": 0, - "totalRows": 0, - "dryRun": false - }, - "issues": null + "issues": null + }, + { + "srcTableName": "foreign_key", + "spTableName": "foreign_key", + "schemaReport": { + "rating": "POOR", + "pkMissing": false, + "issues": 2, + "warnings": 0, + "totalColumns": 2 }, - { - "srcTableName": "no_pk", - "spTableName": "no_pk", - "schemaReport": { - "rating": "POOR", - "pkMissing": true, - "issues": 3, - "warnings": 3, - "totalColumns": 3 - }, - "dataReport": { - "rating": "POOR", - "badRows": 2000, - "totalRows": 5000, - "dryRun": false - }, - "issues": [ + "dataReport": { + "rating": "NONE", + "badRows": 0, + "totalRows": 0, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "FOREIGN_KEY_ACTIONS", + "description": "Table 'foreign_key': ON DELETE action of Foreign Key '' mapped from RESTRICT to NO ACTION - Spanner supports only ON DELETE CASCADE/NO ACTION" + }, { - "issueType": "Warnings", - "issueList": [ - { - "category": "ARRAY_TYPE_NOT_SUPPORTED", - "description": "Table 'no_pk': Column 'a', Array datatype migration is not fully supported. Please validate data after data migration" - }, - { - "category": "STORAGE_WARNING", - "description": "Table 'no_pk': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int4 is mapped to Spanner data type int64" - }, - { - "category": "MISSING_PRIMARY_KEY", - "description": "Column 'synth_id' was added because table 'no_pk' didn't have a primary key. Spanner requires a primary key for every table" - } - ] + "category": "FOREIGN_KEY_ACTIONS", + "description": "Table 'foreign_key': ON UPDATE action of Foreign Key '' mapped from CASCADE to NO ACTION - Spanner supports only ON UPDATE NO ACTION" } - ] - } - ], - "unexpectedConditions": { - "Reparsed": 0, - "unexpectedConditions": [ - { - "count": 5, - "condition": "Testing unexpected messages" - } + ] + } + ] + }, + { + "srcTableName": "no_pk", + "spTableName": "no_pk", + "schemaReport": { + "rating": "POOR", + "pkMissing": true, + "issues": 3, + "warnings": 3, + "totalColumns": 3 + }, + "dataReport": { + "rating": "POOR", + "badRows": 2000, + "totalRows": 5000, + "dryRun": false + }, + "issues": [ + { + "issueType": "Warnings", + "issueList": [ + { + "category": "ARRAY_TYPE_NOT_SUPPORTED", + "description": "Table 'no_pk': Column 'a', Array datatype migration is not fully supported. Please validate data after data migration" + }, + { + "category": "STORAGE_WARNING", + "description": "Table 'no_pk': Some columns will consume more storage in Spanner e.g. for column 'b', source DB type int4 is mapped to Spanner data type int64" + }, + { + "category": "MISSING_PRIMARY_KEY", + "description": "Column 'synth_id' was added because table 'no_pk' didn't have a primary key. Spanner requires a primary key for every table" + } + ] + } ] - } -} + } + ], + "unexpectedConditions": { + "Reparsed": 0, + "unexpectedConditions": [ + { + "count": 5, + "condition": "Testing unexpected messages" + } + ] + } +} \ No newline at end of file diff --git a/test_data/postgres_text_report.txt b/test_data/postgres_text_report.txt index 9e63ddfc9..ba142976f 100644 --- a/test_data/postgres_text_report.txt +++ b/test_data/postgres_text_report.txt @@ -61,9 +61,15 @@ Data conversion: NONE (100% of 0 rows written to Spanner). ---------------------------- Table foreign_key ---------------------------- -Schema conversion: EXCELLENT (100% of 2 columns mapped cleanly). +Schema conversion: POOR (100% of 2 columns mapped cleanly). Data conversion: NONE (100% of 0 rows written to Spanner). +Warnings +1) Table 'foreign_key': ON DELETE action of Foreign Key '' mapped from RESTRICT + to NO ACTION - Spanner supports only ON DELETE CASCADE/NO ACTION. +2) Table 'foreign_key': ON UPDATE action of Foreign Key '' mapped from CASCADE to + NO ACTION - Spanner supports only ON UPDATE NO ACTION. + ---------------------------- Table no_pk ---------------------------- From 223546b4b2a8b371d35d153ebf2a5331fab6192a Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 10 Jul 2024 09:55:58 +0000 Subject: [PATCH 13/46] Addressing review comments by Deep --- common/constants/constants.go | 10 +++---- internal/convert.go | 2 +- internal/mapping.go | 37 +++++++++--------------- internal/mapping_test.go | 44 ++++++++++++++--------------- internal/reports/report_helpers.go | 12 ++++---- sources/common/toddl_test.go | 28 +++++++++--------- sources/mysql/infoschema_test.go | 16 +++++------ sources/mysql/mysqldump.go | 4 +-- sources/mysql/mysqldump_test.go | 16 +++++------ sources/oracle/toddl_test.go | 4 +-- sources/postgres/infoschema_test.go | 18 ++++++------ sources/postgres/pgdump.go | 24 ++++++++-------- sources/postgres/pgdump_test.go | 20 ++++++------- sources/postgres/toddl_test.go | 16 +++++------ sources/sqlserver/toddl_test.go | 4 +-- spanner/ddl/ast_test.go | 24 ++++++++-------- 16 files changed, 134 insertions(+), 145 deletions(-) diff --git a/common/constants/constants.go b/common/constants/constants.go index ae6c99288..eb0cd0d40 100644 --- a/common/constants/constants.go +++ b/common/constants/constants.go @@ -109,9 +109,9 @@ const ( DEFAULT_TEMPLATE_PATH string = "gs://dataflow-templates/latest/flex/Cloud_Datastream_to_Spanner" //FK Actions - NO_ACTION string = "NO ACTION" - CASCADE string = "CASCADE" - SET_DEFAULT string = "SET DEFAULT" - SET_NULL string = "SET NULL" - RESTRICT string = "RESTRICT" + FK_NO_ACTION string = "NO ACTION" + FK_CASCADE string = "CASCADE" + FK_SET_DEFAULT string = "SET DEFAULT" + FK_SET_NULL string = "SET NULL" + FK_RESTRICT string = "RESTRICT" ) diff --git a/internal/convert.go b/internal/convert.go index ecee75deb..c6f6ae60f 100644 --- a/internal/convert.go +++ b/internal/convert.go @@ -126,7 +126,7 @@ const ( ForeignKeyOnDelete ForeignKeyOnUpdate SequenceCreated - ForeignKeyActionsNotSupported + ForeignKeyActionNotSupported ) const ( diff --git a/internal/mapping.go b/internal/mapping.go index 3bd321e82..7cd43b640 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -16,6 +16,7 @@ package internal import ( "fmt" + "slices" "strconv" "strings" @@ -159,7 +160,7 @@ func ToSpannerForeignKey(conv *Conv, srcFkName string) string { // to generate warning message (prints only once for each table with FK Actions) func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) string { srcDeleteRule = strings.ToUpper(srcDeleteRule) - if srcDeleteRule == constants.NO_ACTION || srcDeleteRule == constants.CASCADE { + if srcDeleteRule == constants.FK_NO_ACTION || srcDeleteRule == constants.FK_CASCADE { return srcDeleteRule } if conv.SchemaIssues == nil { @@ -167,18 +168,12 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri } tableIssues := conv.SchemaIssues[srcTableId] + // srcDeleteRule will only be empty for unsupported sources (Oracle, SQL Server) if srcDeleteRule == "" { - //add ForeignKeyActionsNotSupported issue only if not previously added - flag := false - for i := 0; i < len(tableIssues.TableLevelIssues); i++ { - if tableIssues.TableLevelIssues[i] == ForeignKeyActionsNotSupported { - flag = true - break - } - } - if !flag { + //add ForeignKeyActionNotSupported issue only if not previously added + if !slices.Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionsNotSupported), + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported), ColumnLevelIssues: tableIssues.ColumnLevelIssues} } return "" @@ -187,7 +182,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyOnDelete), ColumnLevelIssues: tableIssues.ColumnLevelIssues} - return constants.NO_ACTION + return constants.FK_NO_ACTION } // ToSpannerOnUpdate maps the source ON UPDATE action @@ -206,7 +201,7 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // to generate warning message (prints only once for each table with FK Actions) func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) string { srcUpdateRule = strings.ToUpper(srcUpdateRule) - if srcUpdateRule == constants.NO_ACTION { + if srcUpdateRule == constants.FK_NO_ACTION { return srcUpdateRule } @@ -215,18 +210,12 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri } tableIssues := conv.SchemaIssues[srcTableId] + // srcUpdateRule will only be empty for unsupported sources (Oracle, SQL Server) if srcUpdateRule == "" { - //add ForeignKeyActionsNotSupported issue only if not previously added - flag := false - for i := 0; i < len(tableIssues.TableLevelIssues); i++ { - if tableIssues.TableLevelIssues[i] == ForeignKeyActionsNotSupported { - flag = true - break - } - } - if !flag { + //add ForeignKeyActionNotSupported issue only if not previously added + if !slices.Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { conv.SchemaIssues[srcTableId] = TableIssues{ - TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionsNotSupported), + TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported), ColumnLevelIssues: tableIssues.ColumnLevelIssues} } return "" @@ -235,7 +224,7 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyOnUpdate), ColumnLevelIssues: tableIssues.ColumnLevelIssues} - return constants.NO_ACTION + return constants.FK_NO_ACTION } // ToSpannerIndexName maps source index name to legal Spanner index name. diff --git a/internal/mapping_test.go b/internal/mapping_test.go index e837dccfb..3a72bf1bc 100644 --- a/internal/mapping_test.go +++ b/internal/mapping_test.go @@ -328,36 +328,36 @@ func TestToSpannerOnDelete(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcDeleteRule: constants.RESTRICT, + srcDeleteRule: constants.FK_RESTRICT, }, - expectedOnDelete: constants.NO_ACTION, + expectedOnDelete: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcDeleteRule: constants.SET_DEFAULT, + srcDeleteRule: constants.FK_SET_DEFAULT, }, - expectedOnDelete: constants.NO_ACTION, + expectedOnDelete: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcDeleteRule: constants.SET_NULL, + srcDeleteRule: constants.FK_SET_NULL, }, - expectedOnDelete: constants.NO_ACTION, + expectedOnDelete: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcDeleteRule: constants.CASCADE, + srcDeleteRule: constants.FK_CASCADE, }, - expectedOnDelete: constants.CASCADE, + expectedOnDelete: constants.FK_CASCADE, expectedIssues: nil, }, { name: "no action - lowercase", @@ -366,7 +366,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t5", srcDeleteRule: "no action", }, - expectedOnDelete: constants.NO_ACTION, + expectedOnDelete: constants.FK_NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -375,7 +375,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcTableId: "t6", srcDeleteRule: "xyz", }, - expectedOnDelete: constants.NO_ACTION, + expectedOnDelete: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnDelete}, }, { name: "fk action not read - for sources other than MySQL and Postgres", @@ -385,7 +385,7 @@ func TestToSpannerOnDelete(t *testing.T) { srcDeleteRule: "", }, expectedOnDelete: "", - expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: []SchemaIssue{ForeignKeyActionNotSupported}, }, } for _, tc := range tests { @@ -416,36 +416,36 @@ func TestToSpannerOnUpdate(t *testing.T) { args: arg{ conv: conv, srcTableId: "t1", - srcUpdateRule: constants.RESTRICT, + srcUpdateRule: constants.FK_RESTRICT, }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set default", args: arg{ conv: conv, srcTableId: "t2", - srcUpdateRule: constants.SET_DEFAULT, + srcUpdateRule: constants.FK_SET_DEFAULT, }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "set null", args: arg{ conv: conv, srcTableId: "t3", - srcUpdateRule: constants.SET_NULL, + srcUpdateRule: constants.FK_SET_NULL, }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "cascade", args: arg{ conv: conv, srcTableId: "t4", - srcUpdateRule: constants.CASCADE, + srcUpdateRule: constants.FK_CASCADE, }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "no action - lowercase", @@ -454,7 +454,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t5", srcUpdateRule: "no action", }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: nil, }, { name: "random", @@ -463,7 +463,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcTableId: "t6", srcUpdateRule: "xyz", }, - expectedOnUpdate: constants.NO_ACTION, + expectedOnUpdate: constants.FK_NO_ACTION, expectedIssues: []SchemaIssue{ForeignKeyOnUpdate}, }, { name: "fk action not read - for sources other than MySQL and Postgres", @@ -473,7 +473,7 @@ func TestToSpannerOnUpdate(t *testing.T) { srcUpdateRule: "", }, expectedOnUpdate: "", - expectedIssues: []SchemaIssue{ForeignKeyActionsNotSupported}, + expectedIssues: []SchemaIssue{ForeignKeyActionNotSupported}, }, } for _, tc := range tests { diff --git a/internal/reports/report_helpers.go b/internal/reports/report_helpers.go index f20d3c4be..5e20289b9 100644 --- a/internal/reports/report_helpers.go +++ b/internal/reports/report_helpers.go @@ -120,7 +120,7 @@ func buildTableReportBody(conv *internal.Conv, tableId string, issues map[string } if srcFk.OnDelete == "" && srcFk.OnUpdate == "" && flag == false { flag = true - issue := internal.ForeignKeyActionsNotSupported + issue := internal.ForeignKeyActionNotSupported toAppend := Issue{ Category: IssueDB[issue].Category, Description: fmt.Sprintf("Table '%s': %s", conv.SpSchema[tableId].Name, IssueDB[issue].Brief), @@ -556,11 +556,11 @@ var IssueDB = map[internal.SchemaIssue]struct { CategoryDescription: "Primary Key is missing, synthetic column created as a primary key"}, internal.UniqueIndexPrimaryKey: {Category: "UNIQUE_INDEX_PRIMARY_KEY", CategoryDescription: "Primary Key is missing, unique column(s) used as primary key"}, - internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, - internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, - internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, - internal.ForeignKeyActionsNotSupported: {Brief: "Spanner doesn't support foreign key action migration", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ArrayTypeNotSupported: {Brief: "Array datatype migration is not fully supported. Please validate data after data migration", Severity: warning, Category: "ARRAY_TYPE_NOT_SUPPORTED"}, + internal.SequenceCreated: {Brief: "Auto Increment has been converted to Sequence, set Skipped Range or Start with Counter to avoid duplicate value errors", Severity: warning, Category: "SEQUENCE_CREATED"}, + internal.ForeignKeyOnDelete: {Brief: "Spanner supports only ON DELETE CASCADE/NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyOnUpdate: {Brief: "Spanner supports only ON UPDATE NO ACTION", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, + internal.ForeignKeyActionNotSupported: {Brief: "Spanner supports foreign key action migration only for MySQL and PostgreSQL", Severity: warning, Category: "FOREIGN_KEY_ACTIONS"}, } type Severity int diff --git a/sources/common/toddl_test.go b/sources/common/toddl_test.go index 5c64373f5..63ecad71b 100644 --- a/sources/common/toddl_test.go +++ b/sources/common/toddl_test.go @@ -108,7 +108,7 @@ func Test_cvtForeignKeys(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.FK_RESTRICT, OnUpdate: constants.FK_CASCADE}}, }, "t2": { Name: "table2", @@ -134,8 +134,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: constants.RESTRICT, - OnUpdate: constants.CASCADE, + OnDelete: constants.FK_RESTRICT, + OnUpdate: constants.FK_CASCADE, }, } @@ -145,8 +145,8 @@ func Test_cvtForeignKeys(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: constants.NO_ACTION, - OnUpdate: constants.NO_ACTION, + OnDelete: constants.FK_NO_ACTION, + OnUpdate: constants.FK_NO_ACTION, }, } @@ -294,7 +294,7 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { "c1": {Name: "a", Id: "c1", Type: schema.Type{Name: ddl.String, Mods: []int64{255}}}, "c2": {Name: "b", Id: "c2", Type: schema.Type{Name: ddl.Numeric, Mods: []int64{6, 4}}}, }, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.RESTRICT, OnUpdate: constants.CASCADE}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", Id: "f1", ColumnNames: []string{"a"}, ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c3"}, ReferTableName: "table2", ReferColumnNames: []string{"c"}, OnDelete: constants.FK_RESTRICT, OnUpdate: constants.FK_CASCADE}}, }, "t2": { Name: "table2", @@ -331,8 +331,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferColumnIds: []string{"c3"}, ReferColumnNames: []string{"c"}, Id: "f1", - OnDelete: constants.RESTRICT, - OnUpdate: constants.CASCADE, + OnDelete: constants.FK_RESTRICT, + OnUpdate: constants.FK_CASCADE, }, } resultForeignKey := []ddl.Foreignkey{ @@ -342,8 +342,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: constants.NO_ACTION, - OnUpdate: constants.NO_ACTION, + OnDelete: constants.FK_NO_ACTION, + OnUpdate: constants.FK_NO_ACTION, }, { Name: "fk1", @@ -351,8 +351,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: constants.NO_ACTION, - OnUpdate: constants.NO_ACTION, + OnDelete: constants.FK_NO_ACTION, + OnUpdate: constants.FK_NO_ACTION, }, } spKey := []ddl.Foreignkey{{ @@ -361,8 +361,8 @@ func Test_cvtForeignKeysForAReferenceTable(t *testing.T) { ReferTableId: "t2", ReferColumnIds: []string{"c3"}, Id: "f1", - OnDelete: constants.NO_ACTION, - OnUpdate: constants.NO_ACTION, + OnDelete: constants.FK_NO_ACTION, + OnUpdate: constants.FK_NO_ACTION, }, } diff --git a/sources/mysql/infoschema_test.go b/sources/mysql/infoschema_test.go index 8c8fce55a..a61c04580 100644 --- a/sources/mysql/infoschema_test.go +++ b/sources/mysql/infoschema_test.go @@ -62,7 +62,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "user"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"test", "ref", "id", "fk_test", constants.SET_NULL, constants.CASCADE}, + {"test", "ref", "id", "fk_test", constants.FK_SET_NULL, constants.FK_CASCADE}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -91,8 +91,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { args: []driver.Value{"test", "cart"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, rows: [][]driver.Value{ - {"product", "productid", "product_id", "fk_test2", constants.NO_ACTION, constants.NO_ACTION}, - {"user", "userid", "user_id", "fk_test3", constants.RESTRICT, constants.SET_NULL}, + {"product", "productid", "product_id", "fk_test2", constants.FK_NO_ACTION, constants.FK_NO_ACTION}, + {"user", "userid", "user_id", "fk_test3", constants.FK_RESTRICT, constants.FK_SET_NULL}, }, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -148,8 +148,8 @@ func TestProcessSchemaMYSQL(t *testing.T) { query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+)", args: []driver.Value{"test", "test"}, cols: []string{"REFERENCED_TABLE_NAME", "COLUMN_NAME", "REFERENCED_COLUMN_NAME", "CONSTRAINT_NAME", "DELETE_RULE", "UPDATE_RULE"}, - rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", constants.CASCADE, constants.RESTRICT}, - {"test_ref", "txt", "ref_txt", "fk_test4", constants.CASCADE, constants.RESTRICT}}, + rows: [][]driver.Value{{"test_ref", "id", "ref_id", "fk_test4", constants.FK_CASCADE, constants.FK_RESTRICT}, + {"test_ref", "txt", "ref_txt", "fk_test4", constants.FK_CASCADE, constants.FK_RESTRICT}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", args: []driver.Value{"test", "test"}, @@ -221,7 +221,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "quantity": schema.Column{Name: "quantity", Type: schema.Type{Name: "bigint", Mods: []int64{64}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "userid": schema.Column{Name: "userid", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION, Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: constants.SET_NULL, OnDelete: constants.RESTRICT, Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION, Id: ""}, schema.ForeignKey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnUpdate: constants.FK_SET_NULL, OnDelete: constants.FK_RESTRICT, Id: ""}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "userid", Desc: false, Order: 0}, schema.Key{ColId: "productid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}, schema.Index{Name: "index3", Unique: true, Keys: []schema.Key{schema.Key{ColId: "productid", Desc: false, Order: 0}, schema.Key{ColId: "userid", Desc: true, Order: 0}}, Id: "", StoredColumnIds: []string(nil)}}, Id: ""}, "product": schema.Table{Name: "product", Schema: "test", ColIds: []string{"product_id", "product_name"}, ColDefs: map[string]schema.Column{ @@ -252,7 +252,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "vc": schema.Column{Name: "vc", Type: schema.Type{Name: "varchar", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "vc6": schema.Column{Name: "vc6", Type: schema.Type{Name: "varchar", Mods: []int64{6}, ArrayBounds: []int64(nil)}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: constants.RESTRICT, OnDelete: constants.CASCADE, Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnUpdate: constants.FK_RESTRICT, OnDelete: constants.FK_CASCADE, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}, "test_ref": schema.Table{Name: "test_ref", Schema: "test", ColIds: []string{"ref_id", "ref_txt", "abc"}, ColDefs: map[string]schema.Column{ "abc": schema.Column{Name: "abc", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, @@ -266,7 +266,7 @@ func TestProcessSchemaMYSQL(t *testing.T) { "ref": schema.Column{Name: "ref", Type: schema.Type{Name: "bigint", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}, "user_id": schema.Column{Name: "user_id", Type: schema.Type{Name: "text", Mods: []int64(nil), ArrayBounds: []int64(nil)}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: ""}}, PrimaryKeys: []schema.Key{schema.Key{ColId: "user_id", Desc: false, Order: 0}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: constants.CASCADE, OnDelete: constants.SET_NULL, Id: ""}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnUpdate: constants.FK_CASCADE, OnDelete: constants.FK_SET_NULL, Id: ""}}, Indexes: []schema.Index(nil), Id: ""}} internal.AssertSrcSchema(t, conv, expectedSchema, conv.SrcSchema) assert.Equal(t, int64(0), conv.Unexpecteds()) diff --git a/sources/mysql/mysqldump.go b/sources/mysql/mysqldump.go index 23765ebf0..6145aee27 100644 --- a/sources/mysql/mysqldump.go +++ b/sources/mysql/mysqldump.go @@ -362,11 +362,11 @@ func toForeignKeys(conv *internal.Conv, fk *ast.Constraint) (fkey schema.Foreign onUpdate := fk.Refer.OnUpdate.ReferOpt.String() if onDelete == "" { - onDelete = constants.NO_ACTION + onDelete = constants.FK_NO_ACTION } if onUpdate == "" { - onUpdate = constants.NO_ACTION + onUpdate = constants.FK_NO_ACTION } fkey = schema.ForeignKey{ diff --git a/sources/mysql/mysqldump_test.go b/sources/mysql/mysqldump_test.go index 936a4dde5..1f5bda779 100644 --- a/sources/mysql/mysqldump_test.go +++ b/sources/mysql/mysqldump_test.go @@ -188,7 +188,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": {Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create table with multiple foreign key test constraint name", @@ -222,8 +222,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "A_fk_test_2", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "A_fk_test_2_3", ColIds: []string{"c"}, ReferTableId: "test3", ReferColumnIds: []string{"e"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Alter table add foreign key", @@ -248,7 +248,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Alter table add constraint foreign key", @@ -273,7 +273,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create table with multiple foreign keys", @@ -307,8 +307,8 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create table with single foreign key multiple column", @@ -335,7 +335,7 @@ func TestProcessMySQLDump_MultiCol(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e", "f"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create table with index keys", diff --git a/sources/oracle/toddl_test.go b/sources/oracle/toddl_test.go index 2bda799bd..4f2895c14 100644 --- a/sources/oracle/toddl_test.go +++ b/sources/oracle/toddl_test.go @@ -185,7 +185,7 @@ func TestToSpannerType(t *testing.T) { assert.Equal(t, expected, actual) expectedIssues := internal.TableIssues{ - TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionNotSupported}, ColumnLevelIssues: map[string][]internal.SchemaIssue{}, } assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) @@ -278,7 +278,7 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { assert.Equal(t, expected, actual) expectedIssues := internal.TableIssues{ - TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionNotSupported}, ColumnLevelIssues: map[string][]internal.SchemaIssue{}, } assert.Equal(t, expectedIssues, conv.SchemaIssues[tableId]) diff --git a/sources/postgres/infoschema_test.go b/sources/postgres/infoschema_test.go index 8ed35a70a..bd3afcf05 100644 --- a/sources/postgres/infoschema_test.go +++ b/sources/postgres/infoschema_test.go @@ -70,7 +70,7 @@ func TestProcessSchema(t *testing.T) { args: []driver.Value{"public", "user"}, cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, rows: [][]driver.Value{ - {"public", "test", "ref", "id", "fk_test", constants.RESTRICT, constants.CASCADE}, + {"public", "test", "ref", "id", "fk_test", constants.FK_RESTRICT, constants.FK_CASCADE}, }, }, { @@ -102,8 +102,8 @@ func TestProcessSchema(t *testing.T) { args: []driver.Value{"public", "cart"}, cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, rows: [][]driver.Value{ - {"public", "product", "productid", "product_id", "fk_test2", constants.NO_ACTION, constants.SET_NULL}, - {"public", "user", "userid", "user_id", "fk_test3", constants.SET_NULL, constants.RESTRICT}}, + {"public", "product", "productid", "product_id", "fk_test2", constants.FK_NO_ACTION, constants.FK_SET_NULL}, + {"public", "user", "userid", "user_id", "fk_test3", constants.FK_SET_NULL, constants.FK_RESTRICT}}, }, { query: "SELECT (.+) FROM information_schema.COLUMNS (.+)", @@ -162,8 +162,8 @@ func TestProcessSchema(t *testing.T) { query: "SELECT (.+) FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS (.+) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE (.+) JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE (.+)", args: []driver.Value{"public", "test"}, cols: []string{"TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "COLUMN_NAME", "REF_COLUMN_NAME", "CONSTRAINT_NAME", "ON_DELETE", "ON_UPDATE"}, - rows: [][]driver.Value{{"public", "test_ref", "id", "ref_id", "fk_test4", constants.CASCADE, constants.NO_ACTION}, - {"public", "test_ref", "txt", "ref_txt", "fk_test4", constants.CASCADE, constants.NO_ACTION}}, + rows: [][]driver.Value{{"public", "test_ref", "id", "ref_id", "fk_test4", constants.FK_CASCADE, constants.FK_NO_ACTION}, + {"public", "test_ref", "txt", "ref_txt", "fk_test4", constants.FK_CASCADE, constants.FK_NO_ACTION}}, }, { @@ -243,7 +243,7 @@ func TestProcessSchema(t *testing.T) { "ref": ddl.ColumnDef{Name: "ref", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "user_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"ref"}, ReferTableId: "test", ReferColumnIds: []string{"id"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}, "cart": ddl.CreateTable{ Name: "cart", ColIds: []string{"productid", "userid", "quantity"}, @@ -253,8 +253,8 @@ func TestProcessSchema(t *testing.T) { "quantity": ddl.ColumnDef{Name: "quantity", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "productid", Order: 1}, ddl.IndexKey{ColId: "userid", Order: 2}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"productid"}, ReferTableId: "product", ReferColumnIds: []string{"product_id"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test3", ColIds: []string{"userid"}, ReferTableId: "user", ReferColumnIds: []string{"user_id"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: "cart", Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "userid", Desc: false, Order: 1}}}, ddl.CreateIndex{Name: "index2", TableId: "cart", Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "userid", Desc: false, Order: 1}, ddl.IndexKey{ColId: "productid", Desc: true, Order: 2}}}, ddl.CreateIndex{Name: "index3", TableId: "cart", Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "productid", Desc: true, Order: 1}, ddl.IndexKey{ColId: "userid", Desc: false, Order: 2}}}}}, @@ -293,7 +293,7 @@ func TestProcessSchema(t *testing.T) { "vc6": ddl.ColumnDef{Name: "vc6", T: ddl.Type{Name: ddl.String, Len: int64(6)}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test4", ColIds: []string{"id", "txt"}, ReferTableId: "test_ref", ReferColumnIds: []string{"ref_id", "ref_txt"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}}, "test_ref": ddl.CreateTable{ Name: "test_ref", ColIds: []string{"ref_id", "ref_txt", "abc"}, diff --git a/sources/postgres/pgdump.go b/sources/postgres/pgdump.go index 3b91042df..bc53e7103 100644 --- a/sources/postgres/pgdump.go +++ b/sources/postgres/pgdump.go @@ -633,17 +633,17 @@ func extractConstraints(conv *internal.Conv, stmtType, table string, l []*pg_que onDelete = c.GetFkDelAction() switch onDelete { case "a": - onDelete = constants.NO_ACTION + onDelete = constants.FK_NO_ACTION case "r": - onDelete = constants.RESTRICT + onDelete = constants.FK_RESTRICT case "c": - onDelete = constants.CASCADE + onDelete = constants.FK_CASCADE case "n": - onDelete = constants.SET_NULL + onDelete = constants.FK_SET_NULL case "d": - onDelete = constants.SET_DEFAULT + onDelete = constants.FK_SET_DEFAULT case " ": - onDelete = constants.NO_ACTION + onDelete = constants.FK_NO_ACTION default: onDelete = "UNKNOWN" } @@ -651,17 +651,17 @@ func extractConstraints(conv *internal.Conv, stmtType, table string, l []*pg_que onUpdate = c.GetFkUpdAction() switch onUpdate { case "a": - onUpdate = constants.NO_ACTION + onUpdate = constants.FK_NO_ACTION case "r": - onUpdate = constants.RESTRICT + onUpdate = constants.FK_RESTRICT case "c": - onUpdate = constants.CASCADE + onUpdate = constants.FK_CASCADE case "n": - onUpdate = constants.SET_NULL + onUpdate = constants.FK_SET_NULL case "d": - onUpdate = constants.SET_DEFAULT + onUpdate = constants.FK_SET_DEFAULT case " ": - onUpdate = constants.NO_ACTION + onUpdate = constants.FK_NO_ACTION default: onUpdate = "UNKNOWN" } diff --git a/sources/postgres/pgdump_test.go b/sources/postgres/pgdump_test.go index 6cf814ce6..6ee184e4f 100644 --- a/sources/postgres/pgdump_test.go +++ b/sources/postgres/pgdump_test.go @@ -193,7 +193,7 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -219,7 +219,7 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -246,7 +246,7 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -283,8 +283,8 @@ func TestProcessPgDump(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create index statement", @@ -869,7 +869,7 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -895,7 +895,7 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"d"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -922,7 +922,7 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c", "d"}, ReferTableId: "test", ReferColumnIds: []string{"a", "b"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, }, { @@ -959,8 +959,8 @@ func TestProcessPgDumpPGTarget(t *testing.T) { "synth_id": ddl.ColumnDef{Name: "synth_id", T: ddl.Type{Name: ddl.String, Len: 50}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "synth_id", Order: 1}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"e"}, ReferTableId: "test", ReferColumnIds: []string{"a"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"f"}, ReferTableId: "test2", ReferColumnIds: []string{"c"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}}}, }, { name: "Create index statement", diff --git a/sources/postgres/toddl_test.go b/sources/postgres/toddl_test.go index e335a9345..bc8db360c 100644 --- a/sources/postgres/toddl_test.go +++ b/sources/postgres/toddl_test.go @@ -134,8 +134,8 @@ func TestToSpannerType(t *testing.T) { "c6": schema.Column{Name: "f", Id: "c6", Type: schema.Type{Name: "timestamptz"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.RESTRICT}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.SET_NULL, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_RESTRICT}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.FK_SET_NULL, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -180,8 +180,8 @@ func TestToSpannerType(t *testing.T) { "c6": ddl.ColumnDef{Name: "f", Id: "c6", T: ddl.Type{Name: ddl.Timestamp}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } @@ -222,8 +222,8 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": schema.Column{Name: "g", Id: "c7", Type: schema.Type{Name: "json"}}, }, PrimaryKeys: []schema.Key{schema.Key{ColId: "c1"}}, - ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.RESTRICT}, - schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.SET_NULL, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []schema.ForeignKey{schema.ForeignKey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_RESTRICT}, + schema.ForeignKey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.FK_SET_NULL, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []schema.Index{schema.Index{Name: "index1", Unique: true, Keys: []schema.Key{schema.Key{ColId: "c1", Desc: false}, schema.Key{ColId: "c4", Desc: true}}}, schema.Index{Name: "index2", Unique: false, Keys: []schema.Key{schema.Key{ColId: "c4", Desc: true}}}}, } @@ -269,8 +269,8 @@ func TestToExperimentalSpannerType(t *testing.T) { "c7": ddl.ColumnDef{Name: "g", Id: "c7", T: ddl.Type{Name: ddl.JSON}}, }, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1"}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk_test", ColIds: []string{"c4"}, ReferTableId: "t2", ReferColumnIds: []string{"c7"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + ddl.Foreignkey{Name: "fk_test2", ColIds: []string{"c1"}, ReferTableId: "t3", ReferColumnIds: []string{"c10"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []ddl.CreateIndex{ddl.CreateIndex{Name: "index1", TableId: tableId, Unique: true, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}, ddl.IndexKey{ColId: "c4", Desc: true}}}, ddl.CreateIndex{Name: "index2", TableId: tableId, Unique: false, Keys: []ddl.IndexKey{ddl.IndexKey{ColId: "c4", Desc: true}}}}, } diff --git a/sources/sqlserver/toddl_test.go b/sources/sqlserver/toddl_test.go index 77bd6bb67..6ec6b56f4 100644 --- a/sources/sqlserver/toddl_test.go +++ b/sources/sqlserver/toddl_test.go @@ -198,7 +198,7 @@ func TestToSpannerType(t *testing.T) { assert.Equal(t, expected, actual) expectedIssues := internal.TableIssues{ - TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionNotSupported}, ColumnLevelIssues: map[string][]internal.SchemaIssue{ "c1": {internal.Widened}, "c2": {internal.Widened}, @@ -301,7 +301,7 @@ func TestToSpannerPostgreSQLDialectType(t *testing.T) { assert.Equal(t, expected, actual) expectedIssues := internal.TableIssues{ - TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionsNotSupported}, + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyActionNotSupported}, ColumnLevelIssues: map[string][]internal.SchemaIssue{ "c1": {internal.Widened}, "c2": {internal.Widened}, diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index e3fb62843..4605e240b 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -327,8 +327,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1", "ref_c2"}, "1", - constants.NO_ACTION, - constants.NO_ACTION, + constants.FK_NO_ACTION, + constants.FK_NO_ACTION, }, { "", @@ -336,8 +336,8 @@ func TestPrintForeignKey(t *testing.T) { "ref_table", []string{"ref_c1"}, "1", - constants.CASCADE, - constants.NO_ACTION, + constants.FK_CASCADE, + constants.FK_NO_ACTION, }, { "fk_test", @@ -386,8 +386,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4", "c5"}, "f1", - constants.CASCADE, - constants.NO_ACTION, + constants.FK_CASCADE, + constants.FK_NO_ACTION, }, { "", @@ -395,8 +395,8 @@ func TestPrintForeignKeyAlterTable(t *testing.T) { "t2", []string{"c4"}, "f2", - constants.NO_ACTION, - constants.NO_ACTION, + constants.FK_NO_ACTION, + constants.FK_NO_ACTION, }, { "fk_test2", @@ -605,7 +605,7 @@ func TestGetDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c5"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -618,7 +618,7 @@ func TestGetDDL(t *testing.T) { "c6": {Name: "c", Id: "c6", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c4"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c5", "c6"}, ReferTableId: "t3", ReferColumnIds: []string{"c8", "c9"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c5", Desc: true}, {ColId: "c6", Desc: false}}}}, }, "t3": CreateTable{ @@ -713,7 +713,7 @@ func TestGetPGDDL(t *testing.T) { "c2": {Name: "b", Id: "c2", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c1"}}, - ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []CreateIndex{{Name: "index1", TableId: "t1", Unique: false, Keys: []IndexKey{{ColId: "c2", Desc: false}}}}, }, "t2": CreateTable{ @@ -726,7 +726,7 @@ func TestGetPGDDL(t *testing.T) { "c5": {Name: "c", Id: "c5", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c3"}}, - ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []Foreignkey{{Name: "fk2", ColIds: []string{"c4", "c5"}, ReferTableId: "t3", ReferColumnIds: []string{"c7", "c8"}, OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []CreateIndex{{Name: "index2", TableId: "t2", Unique: true, Keys: []IndexKey{{ColId: "c4", Desc: true}, {ColId: "c5", Desc: false}}}}, }, "t3": CreateTable{ From e2f02084f2a7da5371a56d1f495c6b657b076979 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 10 Jul 2024 10:26:17 +0000 Subject: [PATCH 14/46] resolving slice issue --- internal/helpers.go | 10 ++++++++++ internal/mapping.go | 11 ++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/internal/helpers.go b/internal/helpers.go index 8c7bb4cdd..afa3c505e 100644 --- a/internal/helpers.go +++ b/internal/helpers.go @@ -182,3 +182,13 @@ func ResolveForeignKeyIds(schema map[string]schema.Table) { } } } + +// Checks if target is present in slice +func Contains[T comparable](slice []T, target T) bool { + for _, item := range slice { + if target == item { + return true + } + } + return false +} diff --git a/internal/mapping.go b/internal/mapping.go index 7cd43b640..0eb9bd055 100644 --- a/internal/mapping.go +++ b/internal/mapping.go @@ -16,7 +16,6 @@ package internal import ( "fmt" - "slices" "strconv" "strings" @@ -171,10 +170,11 @@ func ToSpannerOnDelete(conv *Conv, srcTableId string, srcDeleteRule string) stri // srcDeleteRule will only be empty for unsupported sources (Oracle, SQL Server) if srcDeleteRule == "" { //add ForeignKeyActionNotSupported issue only if not previously added - if !slices.Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { + if !Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { conv.SchemaIssues[srcTableId] = TableIssues{ TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported), - ColumnLevelIssues: tableIssues.ColumnLevelIssues} + ColumnLevelIssues: tableIssues.ColumnLevelIssues, + } } return "" } @@ -213,10 +213,11 @@ func ToSpannerOnUpdate(conv *Conv, srcTableId string, srcUpdateRule string) stri // srcUpdateRule will only be empty for unsupported sources (Oracle, SQL Server) if srcUpdateRule == "" { //add ForeignKeyActionNotSupported issue only if not previously added - if !slices.Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { + if !Contains(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported) { conv.SchemaIssues[srcTableId] = TableIssues{ TableLevelIssues: append(tableIssues.TableLevelIssues, ForeignKeyActionNotSupported), - ColumnLevelIssues: tableIssues.ColumnLevelIssues} + ColumnLevelIssues: tableIssues.ColumnLevelIssues, + } } return "" } From ca1fed7415c16d6547d663565083fc61a8d4c9a4 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 10 Jul 2024 10:33:33 +0000 Subject: [PATCH 15/46] unit test issue resolved --- webv2/api/schema_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index 121f8fe87..8d22e354b 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -258,7 +258,7 @@ func TestGetDDL(t *testing.T) { "c2": ddl.ColumnDef{Name: "b", T: ddl.Type{Name: ddl.Int64}, NotNull: true}, "c3": ddl.ColumnDef{Name: "c", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}}, PrimaryKeys: []ddl.IndexKey{ddl.IndexKey{ColId: "c1", Desc: false}}, - ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, Indexes: []ddl.CreateIndex{{Name: "index1", TableId: "t1", Id: "i1", Keys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}}}}, }, "t2": {Name: "table2", @@ -406,14 +406,14 @@ func TestDropForeignKey(t *testing.T) { { name: "Test drop valid FK success", table: "t1", - input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, statusCode: http.StatusOK, conv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}, - {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.NO_ACTION, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), @@ -422,7 +422,7 @@ func TestDropForeignKey(t *testing.T) { expectedConv: &internal.Conv{ SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.CASCADE, OnUpdate: constants.NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, }}, }, }, From 3302b3c7d2242b32e2baa121623556a9e1a661e0 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 10 Jul 2024 11:28:49 +0000 Subject: [PATCH 16/46] add interleave struct --- spanner/ddl/ast.go | 26 +++++---- spanner/ddl/ast_test.go | 116 ++++++++++++++++++++-------------------- 2 files changed, 76 insertions(+), 66 deletions(-) diff --git a/spanner/ddl/ast.go b/spanner/ddl/ast.go index 2174f8976..c93d69945 100644 --- a/spanner/ddl/ast.go +++ b/spanner/ddl/ast.go @@ -282,6 +282,14 @@ type Foreignkey struct { OnUpdate string } +// InterleavedParent encodes the following DDL definition: +// +// INTERLEAVE IN PARENT parent_name ON DELETE delete_rule +type InterleavedParent struct { + Id string + OnDelete string +} + // PrintForeignKey unparses the foreign keys. func (k Foreignkey) PrintForeignKey(c Config) string { var cols, referCols []string @@ -311,7 +319,7 @@ type CreateTable struct { PrimaryKeys []IndexKey ForeignKeys []Foreignkey Indexes []CreateIndex - ParentId string //if not empty, this table will be interleaved + ParentTable InterleavedParent //if not empty, this table will be interleaved Comment string Id string } @@ -353,14 +361,14 @@ func (ct CreateTable) PrintCreateTable(spSchema Schema, config Config) string { } var interleave string - if ct.ParentId != "" { - parent := spSchema[ct.ParentId].Name + if ct.ParentTable.Id != "" { + parent := spSchema[ct.ParentTable.Id].Name if config.SpDialect == constants.DIALECT_POSTGRESQL { // PG spanner only supports PRIMARY KEY() inside the CREATE TABLE() // and thus INTERLEAVE follows immediately after closing brace. - interleave = " INTERLEAVE IN PARENT " + config.quote(parent) + interleave = " INTERLEAVE IN PARENT " + config.quote(parent) + " ON DELETE " + ct.ParentTable.OnDelete } else { - interleave = ",\nINTERLEAVE IN PARENT " + config.quote(parent) + interleave = ",\nINTERLEAVE IN PARENT " + config.quote(parent) + " ON DELETE " + ct.ParentTable.OnDelete } } @@ -507,14 +515,14 @@ func GetSortedTableIdsBySpName(s Schema) []string { table := s[tableNameIdMap[tableName]] tableQueue = tableQueue[1:] parentTableExists := false - if table.ParentId != "" { - _, parentTableExists = s[table.ParentId] + if table.ParentTable.Id != "" { + _, parentTableExists = s[table.ParentTable.Id] } // Add table t if either: // a) t is not interleaved in another table, or // b) t is interleaved in another table and that table has already been added to the list. - if table.ParentId == "" || tableAdded[s[table.ParentId].Name] || !parentTableExists { + if table.ParentTable.Id == "" || tableAdded[s[table.ParentTable.Id].Name] || !parentTableExists { sortedTableNames = append(sortedTableNames, tableName) tableAdded[tableName] = true } else { @@ -578,7 +586,7 @@ func GetDDL(c Config, tableSchema Schema, sequenceSchema map[string]Sequence) [] // CheckInterleaved checks if schema contains interleaved tables. func (s Schema) CheckInterleaved() bool { for _, table := range s { - if table.ParentId != "" { + if table.ParentTable.Id != "" { return true } } diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index e3fb62843..5bf6afbb7 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -133,29 +133,30 @@ func TestPrintCreateTable(t *testing.T) { cds["col1"] = ColumnDef{Name: "col1", T: Type{Name: Int64}, NotNull: true} cds["col2"] = ColumnDef{Name: "col2", T: Type{Name: String, Len: MaxLength}, NotNull: false} cds["col3"] = ColumnDef{Name: "col3", T: Type{Name: Bytes, Len: int64(42)}, NotNull: false} + t1 := CreateTable{ - "mytable", - []string{"col1", "col2", "col3"}, - "", - cds, - []IndexKey{{ColId: "col1", Desc: true}}, - nil, - nil, - "", - "", - "1", + Name: "mytable", + ColIds: []string{"col1", "col2", "col3"}, + ShardIdColumn: "", + ColDefs: cds, + PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, + ForeignKeys: nil, + Indexes: nil, + ParentTable: InterleavedParent{}, + Comment: "", + Id: "1", } t2 := CreateTable{ - "mytable", - []string{"col1", "col2", "col3"}, - "", - cds, - []IndexKey{{ColId: "col1", Desc: true}}, - nil, - nil, - "parent", - "", - "1", + Name: "mytable", + ColIds: []string{"col1", "col2", "col3"}, + ShardIdColumn: "", + ColDefs: cds, + PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, + ForeignKeys: nil, + Indexes: nil, + ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.CASCADE}, + Comment: "", + Id: "1", } tests := []struct { name string @@ -192,7 +193,7 @@ func TestPrintCreateTable(t *testing.T) { " col2 STRING(MAX),\n" + " col3 BYTES(42),\n" + ") PRIMARY KEY (col1 DESC),\n" + - "INTERLEAVE IN PARENT ", + "INTERLEAVE IN PARENT ON DELETE CASCADE", }, } for _, tc := range tests { @@ -205,29 +206,30 @@ func TestPrintCreateTablePG(t *testing.T) { cds["col1"] = ColumnDef{Name: "col1", T: Type{Name: Int64}, NotNull: true} cds["col2"] = ColumnDef{Name: "col2", T: Type{Name: String, Len: MaxLength}, NotNull: false} cds["col3"] = ColumnDef{Name: "col3", T: Type{Name: Bytes, Len: int64(42)}, NotNull: false} + t1 := CreateTable{ - "mytable", - []string{"col1", "col2", "col3"}, - "", - cds, - []IndexKey{{ColId: "col1", Desc: true}}, - nil, - nil, - "", - "", - "1", + Name: "mytable", + ColIds: []string{"col1", "col2", "col3"}, + ShardIdColumn: "", + ColDefs: cds, + PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, + ForeignKeys: nil, + Indexes: nil, + ParentTable: InterleavedParent{}, + Comment: "", + Id: "1", } t2 := CreateTable{ - "mytable", - []string{"col1", "col2", "col3"}, - "", - cds, - []IndexKey{{ColId: "col1", Desc: true}}, - nil, - nil, - "parent", - "", - "1", + Name: "mytable", + ColIds: []string{"col1", "col2", "col3"}, + ShardIdColumn: "", + ColDefs: cds, + PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, + ForeignKeys: nil, + Indexes: nil, + ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.CASCADE}, + Comment: "", + Id: "1", } tests := []struct { name string @@ -266,7 +268,7 @@ func TestPrintCreateTablePG(t *testing.T) { " col2 VARCHAR(2621440),\n" + " col3 BYTEA,\n" + " PRIMARY KEY (col1 DESC)\n" + - ") INTERLEAVE IN PARENT ", + ") INTERLEAVE IN PARENT ON DELETE CASCADE", }, } for _, tc := range tests { @@ -631,7 +633,7 @@ func TestGetDDL(t *testing.T) { "c9": {Name: "c", Id: "c9", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c7"}, {ColId: "c8"}}, - ParentId: "t1", + ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.NO_ACTION}, }, } tablesOnly := GetDDL(Config{Tables: true, ForeignKeys: false}, s, make(map[string]Sequence)) @@ -652,7 +654,7 @@ func TestGetDDL(t *testing.T) { " b INT64,\n" + " c INT64,\n" + ") PRIMARY KEY (a, b),\n" + - "INTERLEAVE IN PARENT table1", + "INTERLEAVE IN PARENT table1 ON DELETE NO ACTION", } assert.ElementsMatch(t, e, tablesOnly) @@ -681,7 +683,7 @@ func TestGetDDL(t *testing.T) { " b INT64,\n" + " c INT64,\n" + ") PRIMARY KEY (a, b),\n" + - "INTERLEAVE IN PARENT table1", + "INTERLEAVE IN PARENT table1 ON DELETE NO ACTION", "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } @@ -739,7 +741,7 @@ func TestGetPGDDL(t *testing.T) { "c8": {Name: "c", Id: "c8", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c6"}, {ColId: "c7"}}, - ParentId: "t1", + ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.NO_ACTION}, }, } tablesOnly := GetDDL(Config{Tables: true, ForeignKeys: false, SpDialect: constants.DIALECT_POSTGRESQL}, s, make(map[string]Sequence)) @@ -762,7 +764,7 @@ func TestGetPGDDL(t *testing.T) { " b INT8,\n" + " c INT8,\n" + " PRIMARY KEY (a, b)\n" + - ") INTERLEAVE IN PARENT table1", + ") INTERLEAVE IN PARENT table1 ON DELETE NO ACTION", } assert.ElementsMatch(t, e, tablesOnly) @@ -793,7 +795,7 @@ func TestGetPGDDL(t *testing.T) { " b INT8,\n" + " c INT8,\n" + " PRIMARY KEY (a, b)\n" + - ") INTERLEAVE IN PARENT table1", + ") INTERLEAVE IN PARENT table1 ON DELETE NO ACTION", "ALTER TABLE table1 ADD CONSTRAINT fk1 FOREIGN KEY (b) REFERENCES table2 (b) ON DELETE CASCADE", "ALTER TABLE table2 ADD CONSTRAINT fk2 FOREIGN KEY (b, c) REFERENCES table3 (b, c) ON DELETE NO ACTION", } @@ -846,14 +848,14 @@ func TestGetSortedTableIdsBySpName(t *testing.T) { Id: "table_id_1", }, "table_id_2": CreateTable{ - Name: "Table2", - Id: "table_id_2", - ParentId: "table_id_1", + Name: "Table2", + Id: "table_id_2", + ParentTable: InterleavedParent{Id: "table_id_1", OnDelete: constants.CASCADE}, }, "table_id_3": CreateTable{ - Name: "Table3", - Id: "table_id_3", - ParentId: "table_id_2", + Name: "Table3", + Id: "table_id_3", + ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.NO_ACTION}, }, }, expected: []string{"table_id_1", "table_id_2", "table_id_3"}, @@ -878,9 +880,9 @@ func TestGetSortedTableIdsBySpName(t *testing.T) { description: "Schema with a table having a non-existent parent", schema: Schema{ "table_id_1": CreateTable{ - Name: "Table1", - Id: "table_id_1", - ParentId: "table_id_2", + Name: "Table1", + Id: "table_id_1", + ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.NO_ACTION}, }, }, expected: []string{"table_id_1"}, From 950d2e4f28665f1a07b5109a8982978bd67e8b49 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Tue, 16 Jul 2024 11:25:38 +0000 Subject: [PATCH 17/46] Foreign Key Actions: Interleaving + Drop Foreign Key properly handled --- accessors/spanner/spanner_accessor_test.go | 200 +++++++++--------- common/metrics/metrics.go | 4 +- common/utils/utils.go | 14 +- sources/spanner/infoschema.go | 1 + spanner/ddl/ast_test.go | 14 +- test_data/basic_session_file_test.json | 2 +- ...basic_sessions_file_wo_sequences_test.json | 2 +- test_data/mysql_interleave_session_test.json | 4 +- ui/dist/ui/index.html | 2 +- ...bee8c4a595.js => main.c8f4d9af2ca45e5b.js} | 2 +- .../object-detail/object-detail.component.ts | 16 +- ui/src/app/model/conv.ts | 11 +- .../services/conversion/conversion.service.ts | 6 +- ui/src/mocks/conv.ts | 6 +- webv2/api/rules.go | 4 +- webv2/api/schema.go | 69 +++--- webv2/api/schema_test.go | 138 ++++++++---- webv2/index/index.go | 2 +- webv2/primarykey/primarykey_service.go | 11 +- webv2/table/remove_column.go | 8 +- webv2/table/rename_column.go | 4 +- webv2/table/review_column_type.go | 6 +- webv2/table/review_rename_column.go | 2 +- webv2/table/review_table_schema_test.go | 40 ++-- webv2/table/update_column_type.go | 4 +- webv2/table/update_table_schema_test.go | 28 +-- webv2/types/types.go | 1 + webv2/utilities/utilities.go | 41 +++- 28 files changed, 376 insertions(+), 266 deletions(-) rename ui/dist/ui/{main.afdaa2bee8c4a595.js => main.c8f4d9af2ca45e5b.js} (67%) diff --git a/accessors/spanner/spanner_accessor_test.go b/accessors/spanner/spanner_accessor_test.go index ed674a387..6a0238350 100644 --- a/accessors/spanner/spanner_accessor_test.go +++ b/accessors/spanner/spanner_accessor_test.go @@ -23,6 +23,7 @@ import ( "cloud.google.com/go/spanner/admin/instance/apiv1/instancepb" spanneradmin "github.com/GoogleCloudPlatform/spanner-migration-tool/accessors/clients/spanner/admin" spinstanceadmin "github.com/GoogleCloudPlatform/spanner-migration-tool/accessors/clients/spanner/instanceadmin" + "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/internal" "github.com/GoogleCloudPlatform/spanner-migration-tool/logger" "github.com/GoogleCloudPlatform/spanner-migration-tool/spanner/ddl" @@ -339,29 +340,29 @@ func TestSpannerAccessorImpl_GetSpannerLeaderLocation(t *testing.T) { func TestSpannerAccessorImpl_CreateDatabase(t *testing.T) { testCases := []struct { - name string - acm spanneradmin.AdminClientMock - dialect string + name string + acm spanneradmin.AdminClientMock + dialect string migrationType string - expectError bool + expectError bool }{ { name: "GoogleSql Dataflow", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil }, }, - expectError: false, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: false, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "Pg Dataflow", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -372,27 +373,27 @@ func TestSpannerAccessorImpl_CreateDatabase(t *testing.T) { }, nil }, }, - expectError: false, - dialect: "postgresql", - migrationType: "dataflow", + expectError: false, + dialect: "postgresql", + migrationType: "dataflow", }, { name: "GoogleSql bulk", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil }, }, - expectError: false, - dialect: "google_standard_sql", - migrationType: "bulk", + expectError: false, + dialect: "google_standard_sql", + migrationType: "bulk", }, { name: "Pg bulk", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -403,25 +404,25 @@ func TestSpannerAccessorImpl_CreateDatabase(t *testing.T) { }, nil }, }, - expectError: false, - dialect: "postgresql", - migrationType: "bulk", + expectError: false, + dialect: "postgresql", + migrationType: "bulk", }, { name: "GoogleSql Dataflow create database error", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return nil, fmt.Errorf("error") }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "Pg Dataflow update error", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -430,22 +431,24 @@ func TestSpannerAccessorImpl_CreateDatabase(t *testing.T) { return nil, fmt.Errorf("error") }, }, - expectError: true, - dialect: "postgresql", - migrationType: "dataflow", + expectError: true, + dialect: "postgresql", + migrationType: "dataflow", }, { name: "GoogleSql Dataflow operation error", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ - WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, fmt.Errorf("error") }, + WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { + return nil, fmt.Errorf("error") + }, }, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, } ctx := context.Background() @@ -461,16 +464,16 @@ func TestSpannerAccessorImpl_CreateDatabase(t *testing.T) { func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { testCases := []struct { - name string - acm spanneradmin.AdminClientMock - dialect string + name string + acm spanneradmin.AdminClientMock + dialect string migrationType string - expectError bool + expectError bool }{ { name: "GoogleSql Dataflow db does not exist", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -482,14 +485,14 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: false, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: false, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "GoogleSql Dataflow db exists", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -501,9 +504,9 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "Postgres Dataflow db exists", @@ -515,9 +518,9 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "Postgres bulk db exists", @@ -534,10 +537,10 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: false, - dialect: "google_standard_sql", - migrationType: "bulk", - }, + expectError: false, + dialect: "google_standard_sql", + migrationType: "bulk", + }, { name: "GoogleSql Dataflow db get database error", acm: spanneradmin.AdminClientMock{ @@ -548,9 +551,9 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "GoogleSql Dataflow db ddl statements nto empty", @@ -562,14 +565,14 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{Statements: []string{"string"}}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "GoogleSql Dataflow db get database ddl error", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return &spanneradmin.CreateDatabaseOperationMock{ WaitMock: func(ctx context.Context, opts ...gax.CallOption) (*databasepb.Database, error) { return nil, nil }, }, nil @@ -581,9 +584,9 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return nil, fmt.Errorf("error") }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, { name: "Postgres bulk db exists update ddl error", @@ -598,14 +601,14 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "bulk", - }, + expectError: true, + dialect: "google_standard_sql", + migrationType: "bulk", + }, { name: "GoogleSql Dataflow db does not exist create error", acm: spanneradmin.AdminClientMock{ - CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { + CreateDatabaseMock: func(ctx context.Context, req *databasepb.CreateDatabaseRequest, opts ...gax.CallOption) (spanneradmin.CreateDatabaseOperation, error) { return nil, fmt.Errorf("error") }, GetDatabaseMock: func(ctx context.Context, req *databasepb.GetDatabaseRequest, opts ...gax.CallOption) (*databasepb.Database, error) { @@ -615,9 +618,9 @@ func TestSpannerAccessorImpl_CreateOrUpdateDatabase(t *testing.T) { return &databasepb.GetDatabaseDdlResponse{}, nil }, }, - expectError: true, - dialect: "google_standard_sql", - migrationType: "dataflow", + expectError: true, + dialect: "google_standard_sql", + migrationType: "dataflow", }, } ctx := context.Background() @@ -679,34 +682,33 @@ func TestSpannerAccessorImpl_UpdateDatabase(t *testing.T) { } } - func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { - schemaWithStatements:=map[string]ddl.CreateTable{ - "table_id" : { + schemaWithStatements := map[string]ddl.CreateTable{ + "table_id": { Name: "table1", - Id: "table_id", + Id: "table_id", }, - "table_id2" : { - Name: "table2", - Id: "table_id2", - ParentId: "table1", + "table_id2": { + Name: "table2", + Id: "table_id2", + ParentTable: ddl.InterleavedParent{Id: "table1", OnDelete: constants.FK_CASCADE}, ForeignKeys: []ddl.Foreignkey{ { - Name: "fk", - ColIds: []string{"columns"}, - ReferTableId:"table1", - ReferColumnIds:[]string{"column"}, - Id:"table_id", + Name: "fk", + ColIds: []string{"columns"}, + ReferTableId: "table1", + ReferColumnIds: []string{"column"}, + Id: "table_id", }, }, }, } testCases := []struct { - name string - acm spanneradmin.AdminClientMock - dialect string - migrationType string - spSchema ddl.Schema + name string + acm spanneradmin.AdminClientMock + dialect string + migrationType string + spSchema ddl.Schema }{ { name: "Update DDL ForeignKey successful pg dataflow", @@ -717,8 +719,8 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { }, nil }, }, - dialect: "postgresql", - spSchema: schemaWithStatements, + dialect: "postgresql", + spSchema: schemaWithStatements, migrationType: "dataflow", }, { @@ -730,8 +732,8 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { }, nil }, }, - dialect: "postgresql", - spSchema: map[string]ddl.CreateTable{}, + dialect: "postgresql", + spSchema: map[string]ddl.CreateTable{}, migrationType: "dataflow", }, { @@ -743,8 +745,8 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { }, nil }, }, - dialect: "google_standard_sql", - spSchema: schemaWithStatements, + dialect: "google_standard_sql", + spSchema: schemaWithStatements, migrationType: "dataflow", }, { @@ -754,8 +756,8 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { return nil, fmt.Errorf("error") }, }, - dialect: "postgresql", - spSchema: schemaWithStatements, + dialect: "postgresql", + spSchema: schemaWithStatements, migrationType: "dataflow", }, { @@ -767,8 +769,8 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { }, nil }, }, - dialect: "postgresql", - spSchema: schemaWithStatements, + dialect: "postgresql", + spSchema: schemaWithStatements, migrationType: "dataflow", }, } @@ -781,4 +783,4 @@ func TestSpannerAccessorImpl_UpdateDDLForeignKey(t *testing.T) { conv.SpSchema = tc.spSchema spA.UpdateDDLForeignKeys(ctx, &tc.acm, dbURI, conv, "", tc.migrationType) } -} \ No newline at end of file +} diff --git a/common/metrics/metrics.go b/common/metrics/metrics.go index c0781f4e3..3c66c95e0 100644 --- a/common/metrics/metrics.go +++ b/common/metrics/metrics.go @@ -76,10 +76,10 @@ func getMigrationDataSchemaPatterns(conv *internal.Conv, migrationData *migratio numIndexes += int32(len(table.Indexes)) depth := 0 tableId := table.Id - for conv.SpSchema[tableId].ParentId != "" { + for conv.SpSchema[tableId].ParentTable.Id != "" { numInterleaves++ depth++ - tableId = conv.SpSchema[tableId].ParentId + tableId = conv.SpSchema[tableId].ParentTable.Id } maxInterleaveDepth = int32(math.Max(float64(maxInterleaveDepth), float64(depth))) } diff --git a/common/utils/utils.go b/common/utils/utils.go index 5cd2fedfa..b0cd06bf9 100644 --- a/common/utils/utils.go +++ b/common/utils/utils.go @@ -521,11 +521,12 @@ func ReadSpannerSchema(ctx context.Context, conv *internal.Conv, client *sp.Clie conv.Unexpected(fmt.Sprintf("error trying to fetch interleave table info from schema: %v", err)) } // Assign parents if any. + // TODO: Assign ParentTable.OnDelete too for tableName, parentName := range parentTables { tableId, _ := internal.GetTableIdFromSpName(conv.SpSchema, tableName) parentTableId, _ := internal.GetTableIdFromSpName(conv.SpSchema, parentName) spTable := conv.SpSchema[tableId] - spTable.ParentId = parentTableId + spTable.ParentTable.Id = parentTableId conv.SpSchema[tableId] = spTable } return nil @@ -542,8 +543,8 @@ func CompareSchema(sessionFileConv, actualSpannerConv *internal.Conv) error { return fmt.Errorf("table %v not found in the spanner database schema but found in the session file. If this table does not need to be migrated, please exclude it during the schema conversion and migration process", sessionTable.Name) } spannerTable := actualSpannerConv.SpSchema[spannerTableId] - sessionTableParentName := sessionFileConv.SpSchema[sessionTable.ParentId].Name - spannerTableParentName := actualSpannerConv.SpSchema[spannerTable.ParentId].Name + sessionTableParentName := sessionFileConv.SpSchema[sessionTable.ParentTable.Id].Name + spannerTableParentName := actualSpannerConv.SpSchema[spannerTable.ParentTable.Id].Name //table names should match if sessionTable.Name != spannerTable.Name { @@ -555,6 +556,11 @@ func CompareSchema(sessionFileConv, actualSpannerConv *internal.Conv) error { return fmt.Errorf("parent table name don't match: session table %v, parent session table name: %v, spanner table %v, parent spanner table name: %v", sessionTable.Name, sessionTableParentName, spannerTable.Name, spannerTableParentName) } + //parent table on delete actions should match + if sessionTable.ParentTable.OnDelete != spannerTable.ParentTable.OnDelete { + return fmt.Errorf("parent table on delete actions don't match: session table %v, parent session table name: %v, spanner table %v, parent spanner table name: %v", sessionTable.Name, sessionTable.ParentTable.OnDelete, spannerTable.Name, spannerTable.ParentTable.OnDelete) + } + //number of columns should match if len(sessionTable.ColDefs) != len(spannerTable.ColDefs) { return fmt.Errorf("number of columns don't match: session table %v, spanner table %v", sessionTable.Name, spannerTable.Name) @@ -659,4 +665,4 @@ func SetDataflowTemplatePath(path string) { func GetDataflowTemplatePath() string { return dataflowTemplatePath -} \ No newline at end of file +} diff --git a/sources/spanner/infoschema.go b/sources/spanner/infoschema.go index c3270fcfa..117fb2b57 100644 --- a/sources/spanner/infoschema.go +++ b/sources/spanner/infoschema.go @@ -387,6 +387,7 @@ func (isi InfoSchemaImpl) GetIndexes(conv *internal.Conv, table common.SchemaAnd return indexes, nil } +// TODO: Extract & initialise ON DELETE action and return it (ON_DELETE_ACTION in information_schema.tables) func (isi InfoSchemaImpl) GetInterleaveTables() (map[string]string, error) { q := `SELECT table_name, parent_table_name FROM information_schema.tables WHERE interleave_type = 'IN PARENT' AND table_type = 'BASE TABLE' AND table_schema = ''` diff --git a/spanner/ddl/ast_test.go b/spanner/ddl/ast_test.go index ac33194da..6cf04795e 100644 --- a/spanner/ddl/ast_test.go +++ b/spanner/ddl/ast_test.go @@ -154,7 +154,7 @@ func TestPrintCreateTable(t *testing.T) { PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, ForeignKeys: nil, Indexes: nil, - ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.CASCADE}, + ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.FK_CASCADE}, Comment: "", Id: "1", } @@ -227,7 +227,7 @@ func TestPrintCreateTablePG(t *testing.T) { PrimaryKeys: []IndexKey{{ColId: "col1", Desc: true}}, ForeignKeys: nil, Indexes: nil, - ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.CASCADE}, + ParentTable: InterleavedParent{Id: "par1", OnDelete: constants.FK_CASCADE}, Comment: "", Id: "1", } @@ -633,7 +633,7 @@ func TestGetDDL(t *testing.T) { "c9": {Name: "c", Id: "c9", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c7"}, {ColId: "c8"}}, - ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.NO_ACTION}, + ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, } tablesOnly := GetDDL(Config{Tables: true, ForeignKeys: false}, s, make(map[string]Sequence)) @@ -741,7 +741,7 @@ func TestGetPGDDL(t *testing.T) { "c8": {Name: "c", Id: "c8", T: Type{Name: Int64}}, }, PrimaryKeys: []IndexKey{{ColId: "c6"}, {ColId: "c7"}}, - ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.NO_ACTION}, + ParentTable: InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, } tablesOnly := GetDDL(Config{Tables: true, ForeignKeys: false, SpDialect: constants.DIALECT_POSTGRESQL}, s, make(map[string]Sequence)) @@ -850,12 +850,12 @@ func TestGetSortedTableIdsBySpName(t *testing.T) { "table_id_2": CreateTable{ Name: "Table2", Id: "table_id_2", - ParentTable: InterleavedParent{Id: "table_id_1", OnDelete: constants.CASCADE}, + ParentTable: InterleavedParent{Id: "table_id_1", OnDelete: constants.FK_CASCADE}, }, "table_id_3": CreateTable{ Name: "Table3", Id: "table_id_3", - ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.NO_ACTION}, + ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.FK_NO_ACTION}, }, }, expected: []string{"table_id_1", "table_id_2", "table_id_3"}, @@ -882,7 +882,7 @@ func TestGetSortedTableIdsBySpName(t *testing.T) { "table_id_1": CreateTable{ Name: "Table1", Id: "table_id_1", - ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.NO_ACTION}, + ParentTable: InterleavedParent{Id: "table_id_2", OnDelete: constants.FK_NO_ACTION}, }, }, expected: []string{"table_id_1"}, diff --git a/test_data/basic_session_file_test.json b/test_data/basic_session_file_test.json index 96a6c720e..4906a4445 100644 --- a/test_data/basic_session_file_test.json +++ b/test_data/basic_session_file_test.json @@ -48,7 +48,7 @@ ], "ForeignKeys": null, "Indexes": null, - "ParentId": "", + "ParentTable": {"Id": "", "OnDelete": ""}, "Comment": "Spanner schema for source table numbers", "Id": "t1" } diff --git a/test_data/basic_sessions_file_wo_sequences_test.json b/test_data/basic_sessions_file_wo_sequences_test.json index 2a09f714c..e35cb4cc9 100644 --- a/test_data/basic_sessions_file_wo_sequences_test.json +++ b/test_data/basic_sessions_file_wo_sequences_test.json @@ -48,7 +48,7 @@ ], "ForeignKeys": null, "Indexes": null, - "ParentId": "", + "ParentTable": {"Id": "", "OnDelete": ""}, "Comment": "Spanner schema for source table numbers", "Id": "t1" } diff --git a/test_data/mysql_interleave_session_test.json b/test_data/mysql_interleave_session_test.json index 42ab62018..c7af1a006 100644 --- a/test_data/mysql_interleave_session_test.json +++ b/test_data/mysql_interleave_session_test.json @@ -61,7 +61,7 @@ } ], "Indexes": null, - "ParentId": "", + "ParentTable": {"Id": "", "OnDelete": ""}, "Comment": "Spanner schema for source table cart", "Id": "t46" }, @@ -101,7 +101,7 @@ ], "ForeignKeys": null, "Indexes": null, - "ParentId": "", + "ParentTable": {"Id": "", "OnDelete": ""}, "Comment": "Spanner schema for source table user", "Id": "t51" } diff --git a/ui/dist/ui/index.html b/ui/dist/ui/index.html index b84774b8a..5c5e15a11 100644 --- a/ui/dist/ui/index.html +++ b/ui/dist/ui/index.html @@ -12,5 +12,5 @@ - + diff --git a/ui/dist/ui/main.afdaa2bee8c4a595.js b/ui/dist/ui/main.c8f4d9af2ca45e5b.js similarity index 67% rename from ui/dist/ui/main.afdaa2bee8c4a595.js rename to ui/dist/ui/main.c8f4d9af2ca45e5b.js index 47f45ba08..37592b5ba 100644 --- a/ui/dist/ui/main.afdaa2bee8c4a595.js +++ b/ui/dist/ui/main.c8f4d9af2ca45e5b.js @@ -1 +1 @@ -(self.webpackChunkui=self.webpackChunkui||[]).push([[590],{536:(ld,q,Re)=>{"use strict";let S=null,$=1;const W=Symbol("SIGNAL");function V(t){const n=S;return S=t,n}function j(t){if((!H(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==$)){if(!t.producerMustRecompute(t)&&!Fe(t))return t.dirty=!1,void(t.lastCleanEpoch=$);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=$}}function Fe(t){Ce(t);for(let n=0;n0}function Ce(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}let fe=null;function J(t){return"function"==typeof t}function L(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const O=L(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Z(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class de{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(J(i))try{i()}catch(r){n=r instanceof O?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{je(r)}catch(a){n=n??[],a instanceof O?n=[...n,...a.errors]:n.push(a)}}if(n)throw new O(n)}}add(n){var e;if(n&&n!==this)if(this.closed)je(n);else{if(n instanceof de){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Z(e,n)}remove(n){const{_finalizers:e}=this;e&&Z(e,n),n instanceof de&&n._removeParent(this)}}de.EMPTY=(()=>{const t=new de;return t.closed=!0,t})();const Ee=de.EMPTY;function ce(t){return t instanceof de||t&&"closed"in t&&J(t.remove)&&J(t.add)&&J(t.unsubscribe)}function je(t){J(t)?t():t.unsubscribe()}const Je={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ze={setTimeout(t,n,...e){const{delegate:i}=ze;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=ze;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function ht(t){ze.setTimeout(()=>{const{onUnhandledError:n}=Je;if(!n)throw t;n(t)})}function oi(){}const Kt=_o("C",void 0,void 0);function _o(t,n,e){return{kind:t,value:n,error:e}}let Mo=null;function Ti(t){if(Je.useDeprecatedSynchronousErrorHandling){const n=!Mo;if(n&&(Mo={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Mo;if(Mo=null,e)throw i}}else t()}class xs extends de{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ce(n)&&n.add(this)):this.destination=yc}static create(n,e,i){return new Ds(n,e,i)}next(n){this.isStopped?Qr(function ws(t){return _o("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qr(function go(t){return _o("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qr(Kt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const sr=Function.prototype.bind;function bc(t,n){return sr.call(t,n)}class Ag{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){vc(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){vc(i)}else vc(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){vc(e)}}}class Ds extends xs{constructor(n,e,i){let o;if(super(),J(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Je.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&bc(n.next,r),error:n.error&&bc(n.error,r),complete:n.complete&&bc(n.complete,r)}):o=n}this.destination=new Ag(o)}}function vc(t){Je.useDeprecatedSynchronousErrorHandling?function _c(t){Je.useDeprecatedSynchronousErrorHandling&&Mo&&(Mo.errorThrown=!0,Mo.error=t)}(t):ht(t)}function Qr(t,n){const{onStoppedNotification:e}=Je;e&&ze.setTimeout(()=>e(t,n))}const yc={closed:!0,next:oi,error:function Sh(t){throw t},complete:oi},Pg="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ra(t){return t}function Tw(t){return 0===t.length?Ra:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let li=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function ZN(t){return t&&t instanceof xs||function KN(t){return t&&J(t.next)&&J(t.error)&&J(t.complete)}(t)&&ce(t)}(e)?e:new Ds(e,i,o);return Ti(()=>{const{operator:a,source:s}=this;r.add(a?a.call(r,s):s?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Iw(i))((o,r)=>{const a=new Ds({next:s=>{try{e(s)}catch(c){r(c),a.unsubscribe()}},error:r,complete:o});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Pg](){return this}pipe(...e){return Tw(e)(this)}toPromise(e){return new(e=Iw(e))((i,o)=>{let r;this.subscribe(a=>r=a,a=>o(a),()=>i(r))})}}return t.create=n=>new t(n),t})();function Iw(t){var n;return null!==(n=t??Je.Promise)&&void 0!==n?n:Promise}const YN=L(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let qe=(()=>{class t extends li{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Ew(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new YN}next(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?Ee:(this.currentObservers=null,r.push(e),new de(()=>{this.currentObservers=null,Z(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new li;return e.source=this,e}}return t.create=(n,e)=>new Ew(n,e),t})();class Ew extends qe{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:Ee}}class pt extends qe{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Ow(t){return J(t?.lift)}function $i(t){return n=>{if(Ow(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Fi(t,n,e,i,o){return new QN(t,n,e,i,o)}class QN extends xs{constructor(n,e,i,o,r,a){super(n),this.onFinalize=r,this.shouldUnsubscribe=a,this._next=e?function(s){try{e(s)}catch(c){n.error(c)}}:super._next,this._error=o?function(s){try{o(s)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function nt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{i.next(t.call(n,r,o++))}))})}const Aw="https://g.co/ng/security#xss";class ue extends Error{constructor(n,e){super(function Cc(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function Rg(t){return n=>{setTimeout(t,void 0,n)}}const Ne=class XN extends qe{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,r=e||(()=>null),a=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(r=Rg(r),o&&(o=Rg(o)),a&&(a=Rg(a)));const s=super.subscribe({next:o,error:r,complete:a});return n instanceof de&&n.add(s),s}};var $t=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}($t||{});function yn(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(yn).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function Ng(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}var Mh=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(Mh||{}),cr=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}(cr||{});function Xr(t){return{toString:t}.toString()}const di=globalThis,kr={},Jt=[];function mi(t){for(let n in t)if(t[n]===mi)return n;throw Error("Could not find renamed property on target object.")}function iF(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}const dd=mi({\u0275cmp:mi}),Fg=mi({\u0275dir:mi}),Lg=mi({\u0275pipe:mi}),Nw=mi({\u0275mod:mi}),Jr=mi({\u0275fac:mi}),ud=mi({__NG_ELEMENT_ID__:mi}),Fw=mi({__NG_ENV_ID__:mi});var ge=function(t){return t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",t}(ge||{});function Lw(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const r=n.length;if(o+r===i||t.charCodeAt(o+r)<=32)return o}e=o+1}}function Bg(t,n,e){let i=0;for(;in){a=r-1;break}}}for(;rr?"":o[g+1].toLowerCase();const w=8&i?b:null;if(w&&-1!==Lw(w,u,0)||2&i&&u!==b){if(lr(i))return!1;a=!0}}}}else{if(!a&&!lr(i)&&!lr(c))return!1;if(a&&lr(c))continue;a=!1,i=c|1&i}}return lr(i)||a}function lr(t){return 0==(1&t)}function aF(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+s+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!lr(a)&&(n+=$w(r,o),o=""),i=a,r=r||!lr(i);e++}return""!==o&&(n+=$w(r,o)),n}function Ie(t){return Xr(()=>{const n=qw(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Mh.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||cr.Emulated,styles:t.styles||Jt,_:null,schemas:t.schemas||null,tView:null,id:""};Ww(e);const i=t.dependencies;return e.directiveDefs=Th(i,!1),e.pipeDefs=Th(i,!0),e.id=function _F(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function pF(t){return Ht(t)||Cn(t)}function fF(t){return null!==t}function ct(t){return Xr(()=>({type:t.type,bootstrap:t.bootstrap||Jt,declarations:t.declarations||Jt,imports:t.imports||Jt,exports:t.exports||Jt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Gw(t,n){if(null==t)return kr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,a,s=ge.None;Array.isArray(o)?(s=o[0],r=o[1],a=o[2]??r):(r=o,a=o),n?(e[r]=s!==ge.None?[i,s]:i,n[r]=a):e[r]=i}return e}function Q(t){return Xr(()=>{const n=qw(t);return Ww(n),n})}function bo(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ht(t){return t[dd]||null}function Cn(t){return t[Fg]||null}function Ln(t){return t[Lg]||null}function Un(t,n){const e=t[Nw]||null;if(!e&&!0===n)throw new Error(`Type ${yn(t)} does not have '\u0275mod' property.`);return e}function qw(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||kr,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Jt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Gw(t.inputs,n),outputs:Gw(t.outputs),debugInfo:null}}function Ww(t){t.features?.forEach(n=>n(t))}function Th(t,n){if(!t)return null;const e=n?Ln:pF;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(fF)}const Vi=0,He=1,lt=2,Ji=3,dr=4,$n=5,ur=6,wc=7,Ii=8,Gn=9,ea=10,Et=11,md=12,Kw=13,xc=14,Gi=15,pd=16,Dc=17,ta=18,fd=19,Zw=20,La=21,Ih=22,Ss=23,Ot=25,Vg=1,Mr=7,Sc=9,en=10;var jg=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(jg||{});function qn(t){return Array.isArray(t)&&"object"==typeof t[Vg]}function Wn(t){return Array.isArray(t)&&!0===t[Vg]}function zg(t){return 0!=(4&t.flags)}function ks(t){return t.componentOffset>-1}function Oh(t){return 1==(1&t.flags)}function hr(t){return!!t.template}function Hg(t){return 0!=(512&t[lt])}const Jw="svg";let tx=!1;function bi(t){for(;Array.isArray(t);)t=t[Vi];return t}function _d(t,n){return bi(n[t])}function io(t,n){return bi(n[t.index])}function bd(t,n){return t.data[n]}function kc(t,n){return t[n]}function Eo(t,n){const e=n[t];return qn(e)?e:e[Vi]}function qg(t){return 128==(128&t[lt])}function Tr(t,n){return null==n?null:t[n]}function ix(t){t[Dc]=0}function SF(t){1024&t[lt]||(t[lt]|=1024,qg(t)&&vd(t))}function Wg(t){return!!(9216&t[lt]||t[Ss]?.dirty)}function Kg(t){Wg(t)?vd(t):64&t[lt]&&(function CF(){return tx}()?(t[lt]|=1024,vd(t)):t[ea].changeDetectionScheduler?.notify())}function vd(t){t[ea].changeDetectionScheduler?.notify();let n=Ms(t);for(;null!==n&&!(8192&n[lt])&&(n[lt]|=8192,qg(n));)n=Ms(n)}function Ah(t,n){if(256==(256&t[lt]))throw new ue(911,!1);null===t[La]&&(t[La]=[]),t[La].push(n)}function Ms(t){const n=t[Ji];return Wn(n)?n[Ji]:n}const Dt={lFrame:hx(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function rx(){return Dt.bindingsEnabled}function Mc(){return null!==Dt.skipHydrationRootTNode}function be(){return Dt.lFrame.lView}function Gt(){return Dt.lFrame.tView}function ie(t){return Dt.lFrame.contextLView=t,t[Ii]}function ne(t){return Dt.lFrame.contextLView=null,t}function pi(){let t=ax();for(;null!==t&&64===t.type;)t=t.parent;return t}function ax(){return Dt.lFrame.currentTNode}function Ir(t,n){const e=Dt.lFrame;e.currentTNode=t,e.isParent=n}function Yg(){return Dt.lFrame.isParent}function Qg(){Dt.lFrame.isParent=!1}function no(){const t=Dt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ia(){return Dt.lFrame.bindingIndex}function mr(){return Dt.lFrame.bindingIndex++}function na(t){const n=Dt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function FF(t,n){const e=Dt.lFrame;e.bindingIndex=e.bindingRootIndex=t,Xg(n)}function Xg(t){Dt.lFrame.currentDirectiveIndex=t}function Jg(t){const n=Dt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e_(){return Dt.lFrame.currentQueryIndex}function Ph(t){Dt.lFrame.currentQueryIndex=t}function BF(t){const n=t[He];return 2===n.type?n.declTNode:1===n.type?t[$n]:null}function dx(t,n,e){if(e&$t.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&$t.Host||(o=BF(r),null===o||(r=r[xc],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Dt.lFrame=ux();return i.currentTNode=n,i.lView=t,!0}function t_(t){const n=ux(),e=t[He];Dt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function ux(){const t=Dt.lFrame,n=null===t?null:t.child;return null===n?hx(t):n}function hx(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function mx(){const t=Dt.lFrame;return Dt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const px=mx;function i_(){const t=mx();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Kn(){return Dt.lFrame.selectedIndex}function Ts(t){Dt.lFrame.selectedIndex=t}function Ei(){const t=Dt.lFrame;return bd(t.tView,t.selectedIndex)}function ei(){Dt.lFrame.currentNamespace=Jw}function pr(){!function zF(){Dt.lFrame.currentNamespace=null}()}let gx=!0;function Rh(){return gx}function Ba(t){gx=t}function HF(){return Tc(pi(),be())}function Tc(t,n){return new Be(io(t,n))}let r_,Be=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=HF}return t})();function _x(t){return t instanceof Be?t.nativeElement:t}function Ic(t,n){t.forEach(e=>Array.isArray(e)?Ic(e,n):n(e))}function bx(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Nh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Oo(t,n,e){let i=Ec(t,n);return i>=0?t[1|i]=e:(i=~i,function vx(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function o_(t,n){const e=Ec(t,n);if(e>=0)return t[1|e]}function Ec(t,n){return function yx(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),a=t[r<n?o=r:i=r+1}return~(o<YF}),YF="ng",Sx=new se(""),ra=new se("",{providedIn:"platform",factory:()=>"unknown"}),ui=new se(""),s_=new se("",{providedIn:"root",factory:()=>Va().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),JF=mi({__forward_ref__:mi});function Qt(t){return t.__forward_ref__=Qt,t.toString=function(){return yn(this())},t}function wt(t){return Hh(t)?t():t}function Hh(t){return"function"==typeof t&&t.hasOwnProperty(JF)&&t.__forward_ref__===Qt}function h_(t){return t&&!!t.\u0275providers}function At(t){return"string"==typeof t?t:null==t?"":String(t)}function m_(t,n){throw new ue(-201,!1)}let p_;function Mx(){return p_}function yo(t){const n=p_;return p_=t,n}function Tx(t,n,e){const i=Vh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&$t.Optional?null:void 0!==n?n:void m_()}const xd={},f_="__NG_DI_FLAG__",Uh="ngTempTokenPath",a3=/\n/gm,Ix="__source";let Oc;function ja(t){const n=Oc;return Oc=t,n}function l3(t,n=$t.Default){if(void 0===Oc)throw new ue(-203,!1);return null===Oc?Tx(t,void 0,n):Oc.get(t,n&$t.Optional?null:void 0,n)}function X(t,n=$t.Default){return(Mx()||l3)(wt(t),n)}function De(t,n=$t.Default){return X(t,$h(n))}function $h(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function g_(t){const n=[];for(let e=0;enull;function D_(t,n,e=!1){return Ox(t,n,e)}const Fc="__parameters__";function Bc(t,n,e){return Xr(()=>{const i=function T_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const a=new o(...r);return s.annotation=a,s;function s(c,u,p){const g=c.hasOwnProperty(Fc)?c[Fc]:Object.defineProperty(c,Fc,{value:[]})[Fc];for(;g.length<=p;)g.push(null);return(g[p]=g[p]||[]).push(a),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const za=Dd(Bc("Optional"),8),Vc=Dd(Bc("SkipSelf"),4);function Is(t,n){return t.hasOwnProperty(Jr)?t[Jr]:null}const Es=new se(""),Lx=new se("",-1),I_=new se("");class Yh{get(n,e=xd){if(e===xd){const i=new Error(`NullInjectorError: No provider for ${yn(n)}!`);throw i.name="NullInjectorError",i}return e}}function D3(...t){return{\u0275providers:Bx(0,t),\u0275fromNgModule:!0}}function Bx(t,...n){const e=[],i=new Set;let o;const r=a=>{e.push(a)};return Ic(n,a=>{const s=a;Xh(s,r,[],i)&&(o||=[],o.push(s))}),void 0!==o&&Vx(o,r),e}function Vx(t,n){for(let e=0;e{n(r,i)})}}function Xh(t,n,e,i){if(!(t=wt(t)))return!1;let o=null,r=jh(t);const a=!r&&Ht(t);if(r||a){if(a&&!a.standalone)return!1;o=t}else{const c=t.ngModule;if(r=jh(c),!r)return!1;o=c}const s=i.has(o);if(a){if(s)return!1;if(i.add(o),a.dependencies){const c="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const u of c)Xh(u,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!s){let u;i.add(o);try{Ic(r.imports,p=>{Xh(p,n,e,i)&&(u||=[],u.push(p))})}finally{}void 0!==u&&Vx(u,n)}if(!s){const u=Is(o)||(()=>new o);n({provide:o,useFactory:u,deps:Jt},o),n({provide:I_,useValue:o,multi:!0},o),n({provide:Es,useValue:()=>X(o),multi:!0},o)}const c=r.providers;if(null!=c&&!s){const u=t;E_(c,p=>{n(p,u)})}}}return o!==t&&void 0!==t.providers}function E_(t,n){for(let e of t)h_(e)&&(e=e.\u0275providers),Array.isArray(e)?E_(e,n):n(e)}const S3=mi({provide:String,useValue:mi});function O_(t){return null!==t&&"object"==typeof t&&S3 in t}function Os(t){return"function"==typeof t}const A_=new se(""),Jh={},M3={};let P_;function em(){return void 0===P_&&(P_=new Yh),P_}class Ao{}class jc extends Ao{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,N_(n,a=>this.processProvider(a)),this.records.set(Lx,zc(void 0,this)),o.has("environment")&&this.records.set(Ao,zc(void 0,this));const r=this.records.get(A_);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(I_,Jt,$t.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=ja(this),i=yo(void 0);try{return n()}finally{ja(e),yo(i)}}get(n,e=xd,i=$t.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Fw))return n[Fw](this);i=$h(i);const r=ja(this),a=yo(void 0);try{if(!(i&$t.SkipSelf)){let c=this.records.get(n);if(void 0===c){const u=function A3(t){return"function"==typeof t||"object"==typeof t&&t instanceof se}(n)&&Vh(n);c=u&&this.injectableDefInScope(u)?zc(R_(n),Jh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&$t.Self?em():this.parent).get(n,e=i&$t.Optional&&e===xd?null:e)}catch(s){if("NullInjectorError"===s.name){if((s[Uh]=s[Uh]||[]).unshift(yn(n)),r)throw s;return function u3(t,n,e,i){const o=t[Uh];throw n[Ix]&&o.unshift(n[Ix]),t.message=function h3(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=yn(n);if(Array.isArray(n))o=n.map(yn).join(" -> ");else if("object"==typeof n){let r=[];for(let a in n)if(n.hasOwnProperty(a)){let s=n[a];r.push(a+":"+("string"==typeof s?JSON.stringify(s):yn(s)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(a3,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[Uh]=null,t}(s,n,"R3InjectorError",this.source)}throw s}finally{yo(a),ja(r)}}resolveInjectorInitializers(){const n=ja(this),e=yo(void 0);try{const o=this.get(Es,Jt,$t.Self);for(const r of o)r()}finally{ja(n),yo(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(yn(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ue(205,!1)}processProvider(n){let e=Os(n=wt(n))?n:wt(n&&n.provide);const i=function I3(t){return O_(t)?zc(void 0,t.useValue):zc(Hx(t),Jh)}(n);if(!Os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=zc(void 0,Jh,!0),o.factory=()=>g_(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===Jh&&(e.value=M3,e.value=e.factory()),"object"==typeof e.value&&e.value&&function O3(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=wt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function R_(t){const n=Vh(t),e=null!==n?n.factory:Is(t);if(null!==e)return e;if(t instanceof se)throw new ue(204,!1);if(t instanceof Function)return function T3(t){if(t.length>0)throw new ue(204,!1);const e=function KF(t){return t&&(t[zh]||t[Dx])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new ue(204,!1)}function Hx(t,n,e){let i;if(Os(t)){const o=wt(t);return Is(o)||R_(o)}if(O_(t))i=()=>wt(t.useValue);else if(function zx(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...g_(t.deps||[]));else if(function jx(t){return!(!t||!t.useExisting)}(t))i=()=>X(wt(t.useExisting));else{const o=wt(t&&(t.useClass||t.provide));if(!function E3(t){return!!t.deps}(t))return Is(o)||R_(o);i=()=>new o(...g_(t.deps))}return i}function zc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function N_(t,n){for(const e of t)Array.isArray(e)?N_(e,n):e&&h_(e)?N_(e.\u0275providers,n):n(e)}function Ha(t,n){t instanceof jc&&t.assertNotDestroyed();const i=ja(t),o=yo(void 0);try{return n()}finally{ja(i),yo(o)}}class H3{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function $x(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function fi(){return Gx}function Gx(t){return t.type.prototype.ngOnChanges&&(t.setInput=$3),U3}function U3(){const t=Wx(this),n=t?.current;if(n){const e=t.previous;if(e===kr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function $3(t,n,e,i,o){const r=this.declaredInputs[i],a=Wx(t)||function G3(t,n){return t[qx]=n}(t,{previous:kr,current:null}),s=a.current||(a.current={}),c=a.previous,u=c[r];s[r]=new H3(u&&u.currentValue,e,c===kr),$x(t,n,o,e)}fi.ngInherit=!0;const qx="__ngSimpleChanges__";function Wx(t){return t[qx]||null}const Er=function(t,n,e){};function im(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[Dc]+=65536),(s>14>16&&(3&t[lt])===n&&(t[lt]+=16384,Zx(s,r)):Zx(s,r)}const Uc=-1;class Id{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function z_(t){return t!==Uc}function Ed(t){return 32767&t}function Od(t,n){let e=function J3(t){return t>>16}(t),i=n;for(;e>0;)i=i[xc],e--;return i}let H_=!0;function rm(t){const n=H_;return H_=t,n}const Yx=255,Qx=5;let eL=0;const Or={};function am(t,n){const e=Xx(t,n);if(-1!==e)return e;const i=n[He];i.firstCreatePass&&(t.injectorIndex=n.length,U_(i.data,t),U_(n,null),U_(i.blueprint,null));const o=sm(t,n),r=t.injectorIndex;if(z_(o)){const a=Ed(o),s=Od(o,n),c=s[He].data;for(let u=0;u<8;u++)n[r+u]=s[a+u]|c[a+u]}return n[r+8]=o,r}function U_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function Xx(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function sm(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=a1(o),null===i)return Uc;if(e++,o=o[xc],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Uc}function $_(t,n,e){!function tL(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ud)&&(i=e[ud]),null==i&&(i=e[ud]=eL++);const o=i&Yx;n.data[t+(o>>Qx)]|=1<=0?n&Yx:rL:n}(e);if("function"==typeof r){if(!dx(n,t,i))return i&$t.Host?Jx(o,0,i):e1(n,e,i,o);try{let a;if(a=r(i),null!=a||i&$t.Optional)return a;m_()}finally{px()}}else if("number"==typeof r){let a=null,s=Xx(t,n),c=Uc,u=i&$t.Host?n[Gi][$n]:null;for((-1===s||i&$t.SkipSelf)&&(c=-1===s?sm(t,n):n[s+8],c!==Uc&&r1(i,!1)?(a=n[He],s=Ed(c),n=Od(c,n)):s=-1);-1!==s;){const p=n[He];if(o1(r,s,p.data)){const g=nL(s,n,e,a,i,u);if(g!==Or)return g}c=n[s+8],c!==Uc&&r1(i,n[He].data[s+8]===u)&&o1(r,s,n)?(a=p,s=Ed(c),n=Od(c,n)):s=-1}}return o}function nL(t,n,e,i,o,r){const a=n[He],s=a.data[t+8],p=cm(s,a,e,null==i?ks(s)&&H_:i!=a&&0!=(3&s.type),o&$t.Host&&r===s);return null!==p?As(n,a,p,s):Or}function cm(t,n,e,i,o){const r=t.providerIndexes,a=n.data,s=1048575&r,c=t.directiveStart,p=r>>20,b=o?s+p:t.directiveEnd;for(let w=i?s:s+p;w=c&&k.type===e)return w}if(o){const w=a[c];if(w&&hr(w)&&w.type===e)return c}return null}function As(t,n,e,i){let o=t[e];const r=n.data;if(function Z3(t){return t instanceof Id}(o)){const a=o;a.resolving&&function n3(t,n){throw n&&n.join(" > "),new ue(-200,t)}(function ri(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():At(t)}(r[e]));const s=rm(a.canSeeViewProviders);a.resolving=!0;const u=a.injectImpl?yo(a.injectImpl):null;dx(t,i,$t.Default);try{o=t[e]=a.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function W3(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const a=Gx(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==u&&yo(u),rm(s),a.resolving=!1,px()}}return o}function o1(t,n,e){return!!(e[n+(t>>Qx)]&1<{const n=t.prototype.constructor,e=n[Jr]||G_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Jr]||G_(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function G_(t){return Hh(t)?()=>{const n=G_(wt(t));return n&&n()}:Is(t)}function a1(t){const n=t[He],e=n.type;return 2===e?n.declTNode:1===e?t[$n]:null}function oo(t){return function iL(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{static#e=this.THROW_IF_NOT_FOUND=xd;static#t=this.NULL=new Yh;static create(e,i){if(Array.isArray(e))return u1({name:""},i,e,"");{const o=e.name??"";return u1({name:o},e.parent,e.providers,o)}}static#i=this.\u0275prov=ke({token:t,providedIn:"any",factory:()=>X(Lx)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function W_(t){return t.ngOriginalError}class Go{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&W_(n);for(;e&&W_(e);)e=W_(e);return e||null}}const p1=new se("",{providedIn:"root",factory:()=>De(Go).handleError.bind(void 0)}),g1=new se("",{providedIn:"root",factory:()=>!1});let um,hm;function qc(t){return function K_(){if(void 0===um&&(um=null,di.trustedTypes))try{um=di.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return um}()?.createHTML(t)||t}function Z_(){if(void 0===hm&&(hm=null,di.trustedTypes))try{hm=di.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hm}function _1(t){return Z_()?.createHTML(t)||t}function v1(t){return Z_()?.createScriptURL(t)||t}class Ps{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Aw})`}}class gL extends Ps{getTypeName(){return"HTML"}}class _L extends Ps{getTypeName(){return"Style"}}class bL extends Ps{getTypeName(){return"Script"}}class vL extends Ps{getTypeName(){return"URL"}}class yL extends Ps{getTypeName(){return"ResourceURL"}}function Po(t){return t instanceof Ps?t.changingThisBreaksApplicationSecurity:t}function Ar(t,n){const e=function CL(t){return t instanceof Ps&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${Aw})`)}return e===n}class ML{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(qc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=qc(n),e}}const EL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function mm(t){return(t=String(t)).match(EL)?t:"unsafe:"+t}function aa(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Ad(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const C1=aa("area,br,col,hr,img,wbr"),w1=aa("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x1=aa("rp,rt"),Y_=Ad(C1,Ad(w1,aa("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ad(x1,aa("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ad(x1,w1)),Q_=aa("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),D1=Ad(Q_,aa("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),aa("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),OL=aa("script,style,template");class AL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!Y_.hasOwnProperty(e))return this.sanitizedSomething=!0,!OL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();Y_.hasOwnProperty(e)&&!C1.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(S1(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const PL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,RL=/([^\#-~ |!])/g;function S1(t){return t.replace(/&/g,"&").replace(PL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(RL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pm;function k1(t,n){let e=null;try{pm=pm||function y1(t){const n=new TL(t);return function IL(){try{return!!(new window.DOMParser).parseFromString(qc(""),"text/html")}catch{return!1}}()?new ML(n):n}(t);let i=n?String(n):"";e=pm.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=pm.getInertBodyElement(i)}while(i!==r);return qc((new AL).sanitizeChildren(X_(e)||e))}finally{if(e){const i=X_(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function X_(t){return"content"in t&&function NL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Bn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Bn||{});function M1(t){const n=Pd();return n?_1(n.sanitize(Bn.HTML,t)||""):Ar(t,"HTML")?_1(Po(t)):k1(Va(),At(t))}function qo(t){const n=Pd();return n?n.sanitize(Bn.URL,t)||"":Ar(t,"URL")?Po(t):mm(At(t))}function T1(t){const n=Pd();if(n)return v1(n.sanitize(Bn.RESOURCE_URL,t)||"");if(Ar(t,"ResourceURL"))return v1(Po(t));throw new ue(904,!1)}function Pd(){const t=be();return t&&t[ea].sanitizer}const zL=/^>|^->||--!>|)/g,UL="\u200b$1\u200b";const J_=new Map;let KL=0;const tb="__ngContext__";function Zn(t,n){qn(n)?(t[tb]=n[fd],function YL(t){J_.set(t[fd],t)}(n)):t[tb]=n}function Ro(t){return t instanceof Function?t():t}var $a=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}($a||{});let rb;function ab(t,n){return rb(t,n)}function Kc(t,n,e,i,o){if(null!=i){let r,a=!1;Wn(i)?r=i:qn(i)&&(a=!0,i=i[Vi]);const s=bi(i);0===t&&null!==e?null==o?K1(n,e,s):Rs(n,e,s,o||null,!0):1===t&&null!==e?Rs(n,e,s,o||null,!0):2===t?function wm(t,n,e){const i=ym(t,n);i&&function v4(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,s,a):3===t&&n.destroyNode(s),null!=r&&function w4(t,n,e,i,o){const r=e[Mr];r!==bi(e)&&Kc(n,t,i,r,o);for(let s=en;sn.replace(HL,UL))}(n))}function bm(t,n,e){return t.createElement(n,e)}function G1(t,n){xm(t,n,n[Et],2,null,null)}function q1(t,n){const e=t[Sc],i=e.indexOf(n);e.splice(i,1)}function Nd(t,n){if(t.length<=en)return;const e=en+n,i=t[e];if(i){const o=i[pd];null!==o&&o!==t&&q1(o,i),n>0&&(t[e-1][dr]=i[dr]);const r=Nh(t,en+n);!function h4(t,n){G1(t,n),n[Vi]=null,n[$n]=null}(i[He],i);const a=r[ta];null!==a&&a.detachView(r[He]),i[Ji]=null,i[dr]=null,i[lt]&=-129}return i}function vm(t,n){if(!(256&n[lt])){const e=n[Et];e.destroyNode&&xm(t,n,e,3,null,null),function p4(t){let n=t[md];if(!n)return cb(t[He],t);for(;n;){let e=null;if(qn(n))e=n[md];else{const i=n[en];i&&(e=i)}if(!e){for(;n&&!n[dr]&&n!==t;)qn(n)&&cb(n[He],n),n=n[Ji];null===n&&(n=t),qn(n)&&cb(n[He],n),e=n&&n[dr]}n=e}}(n)}}function cb(t,n){if(!(256&n[lt])){n[lt]&=-129,n[lt]|=256,n[Ss]&&function ye(t){if(Ce(t),H(t))for(let n=0;n=0?i[a]():i[-a].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[wc]=null);const o=n[La];if(null!==o){n[La]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===cr.None||r===cr.Emulated)return null}return io(i,e)}}(t,n.parent,e)}function Rs(t,n,e,i,o){t.insertBefore(n,e,i,o)}function K1(t,n,e){t.appendChild(n,e)}function Z1(t,n,e,i,o){null!==i?Rs(t,n,e,i,o):K1(t,n,e)}function ym(t,n){return t.parentNode(n)}function Y1(t,n,e){return X1(t,n,e)}let db,X1=function Q1(t,n,e){return 40&t.type?io(t,e):null};function Cm(t,n,e,i){const o=lb(t,i,n),r=n[Et],s=Y1(i.parent||n[$n],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cOt&&rD(t,n,Ot,!1),Er(a?2:0,o),e(i,o)}finally{Ts(r),Er(a?3:1,o)}}function pb(t,n,e){if(zg(n)){const i=V(null);try{const r=n.directiveEnd;for(let a=n.directiveStart;anull;function dD(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const a=n[r];if(void 0===a)continue;i??={};let s,c=ge.None;Array.isArray(a)?(s=a[0],c=a[1]):s=a;let u=r;if(null!==o){if(!o.hasOwnProperty(r))continue;u=o[r]}0===t?uD(i,e,u,s,c):uD(i,e,u,s)}return i}function uD(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function wo(t,n,e,i,o,r,a,s){const c=io(n,e);let p,u=n.inputs;!s&&null!=u&&(p=u[i])?(wb(t,e,p,i,o),ks(n)&&function N4(t,n){const e=Eo(n,t);16&e[lt]||(e[lt]|=64)}(e,n.index)):3&n.type&&(i=function R4(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,r.setProperty(c,i,o))}function bb(t,n,e,i){if(rx()){const o=null===i?null:{"":-1},r=function z4(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=s&&a.push(s),a.push(e,i,r)}}(t,n,i,Ld(t,e,o.hostVars,Nt),o)}function Rr(t,n,e,i,o,r){const a=io(t,n);!function yb(t,n,e,i,o,r,a){if(null==r)t.removeAttribute(n,o,e);else{const s=null==a?At(r):a(r,i||"",o);t.setAttribute(n,o,s,e)}}(n[Et],a,r,t.value,e,i,o)}function W4(t,n,e,i,o,r){const a=r[n];if(null!==a)for(let s=0;s0&&(e[o-1][dr]=n),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{vd(t.lView)},consumerOnSignalRead(){this.lView[Ss]=this}};function wD(t){return DD(t[md])}function xD(t){return DD(t[dr])}function DD(t){for(;null!==t&&!Wn(t);)t=t[dr];return t}function Mm(t,n=!0,e=0){const i=t[ea],o=i.rendererFactory;o.begin?.();try{!function r5(t,n){Sb(t,n);let e=0;for(;Wg(t);){if(100===e)throw new ue(103,!1);e++,Sb(t,1)}}(t,e)}catch(a){throw n&&km(t,a),a}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function a5(t,n,e,i){const o=n[lt];if(256==(256&o))return;n[ea].inlineEffectRunner?.flush(),t_(n);let a=null,s=null;(function s5(t){return 2!==t.type})(t)&&(s=function X4(t){return t[Ss]??function J4(t){const n=CD.pop()??Object.create(t5);return n.lView=t,n}(t)}(n),a=function Te(t){return t&&(t.nextProducerIndex=0),V(t)}(s));try{ix(n),function cx(t){return Dt.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&sD(t,n,e,2,i);const c=3==(3&o);if(c){const g=t.preOrderCheckHooks;null!==g&&nm(n,g,null)}else{const g=t.preOrderHooks;null!==g&&om(n,g,0,null),V_(n,0)}if(function c5(t){for(let n=wD(t);null!==n;n=xD(n)){if(!(n[lt]&jg.HasTransplantedViews))continue;const e=n[Sc];for(let i=0;it.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}(s,a),function e5(t){t.lView[Ss]!==t&&(t.lView=null,CD.push(t))}(s)),i_()}}function kD(t,n){for(let e=wD(t);null!==e;e=xD(e))for(let i=en;i-1&&(Nd(n,i),Nh(e,i))}this._attachedToViewContainer=!1}vm(this._lView[He],this._lView)}onDestroy(n){Ah(this._lView,n)}markForCheck(){zd(this._cdRefInjectingView||this._lView)}detach(){this._lView[lt]&=-129}reattach(){Kg(this._lView),this._lView[lt]|=128}detectChanges(){this._lView[lt]|=1024,Mm(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ue(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,G1(this._lView[He],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new ue(902,!1);this._appRef=n,Kg(this._lView)}}let gi=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=h5}return t})();const d5=gi,u5=class extends d5{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=function Bd(t,n,e,i){const o=n.tView,s=Dm(t,o,e,4096&t[lt]?4096:16,null,n,null,null,null,i?.injector??null,i?.dehydratedView??null);s[pd]=t[n.index];const u=t[ta];return null!==u&&(s[ta]=u.createEmbeddedView(o)),xb(o,s,e),s}(this._declarationLView,this._declarationTContainer,n,{injector:e,dehydratedView:i});return new Hd(o)}};function h5(){return Tm(pi(),be())}function Tm(t,n){return 4&t.type?new u5(n,t,Tc(t,n)):null}class Ob{}class R5{}class ND{}class F5{resolveComponentFactory(n){throw function N5(t){const n=Error(`No component factory found for ${yn(t)}.`);return n.ngComponent=t,n}(n)}}let Ns=(()=>{class t{static#e=this.NULL=new F5}return t})();class Ab{}let ca=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function L5(){const t=be(),e=Eo(pi().index,t);return(qn(e)?e:t)[Et]}()}return t})(),B5=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>null})}return t})();const Pb={};function BD(t){return function LD(t){return"function"==typeof t&&void 0!==t[W]}(t)&&"function"==typeof t.set}function VD(t){const n=V(null);try{return t()}finally{V(n)}}function Pm(t){return!!Rb(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Rb(t){return null!==t&&("function"==typeof t||"object"==typeof t)}class jD{constructor(){}supports(n){return Pm(n)}create(n){return new $5(n)}}const U5=(t,n)=>n;class $5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||U5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,s),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,s,a,o)),Object.is(e.item,s)||this._addIdentityChange(e,s)):(e=this._mismatch(e,s,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new G5(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new zD),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new zD),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class G5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class q5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class zD{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new q5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function HD(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,a=o._next;return r&&(r._next=a),a&&(a._prev=r),o._next=null,o._prev=null,o}const i=new K5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class K5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function $D(){return new fr([new jD])}let fr=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:$D});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||$D()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new ue(901,!1)}}return t})();function GD(){return new Rm([new UD])}let Rm=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:GD});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||GD()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new ue(901,!1)}}return t})(),Lt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=Y5}return t})();function Y5(t){return function Q5(t,n,e){if(ks(t)&&!e){const i=Eo(t.index,n);return new Hd(i,i)}return 47&t.type?new Hd(n[Gi],n):null}(pi(),be(),16==(16&t))}let Nm=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=t8;static#t=this.__NG_ENV_ID__=e=>e}return t})();class e8 extends Nm{constructor(n){super(),this._lView=n}onDestroy(n){return Ah(this._lView,n),()=>function Zg(t,n){if(null===t[La])return;const e=t[La].indexOf(n);-1!==e&&t[La].splice(e,1)}(this._lView,n)}}function t8(){return new e8(be())}const qD=new Set;function Fs(t){qD.has(t)||(qD.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function WD(...t){}class We{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new ue(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function s8(){const t="function"==typeof di.requestAnimationFrame;let n=di[t?"requestAnimationFrame":"setTimeout"],e=di[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&e){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const o=e[Zone.__symbol__("OriginalDelegate")];o&&(e=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function d8(t){const n=()=>{!function l8(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(di,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Fb(t),t.isCheckStableRunning=!0,Nb(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Fb(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,a,s)=>{if(function u8(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(s))return e.invokeTask(o,r,a,s);try{return KD(t),e.invokeTask(o,r,a,s)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),ZD(t)}},onInvoke:(e,i,o,r,a,s,c)=>{try{return KD(t),e.invoke(o,r,a,s,c)}finally{t.shouldCoalesceRunChangeDetection&&n(),ZD(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,Fb(t),Nb(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!We.isInAngularZone())throw new ue(909,!1)}static assertNotInAngularZone(){if(We.isInAngularZone())throw new ue(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,a=r.scheduleEventTask("NgZoneEvent: "+o,n,c8,WD,WD);try{return r.runTask(a,e,i)}finally{r.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const c8={};function Nb(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Fb(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function KD(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ZD(t){t._nesting--,Nb(t)}class YD{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ne,this.onMicrotaskEmpty=new Ne,this.onStable=new Ne,this.onError=new Ne}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}var Ls=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Ls||{});const QD={destroy(){}};function JD(t,n){!n&&function F_(t){if(!Mx()&&!function c3(){return Oc}())throw new ue(-203,!1)}();const e=n?.injector??De(ji);if(!function Ua(t){return"browser"===(t??De(ji)).get(ra)}(e))return QD;Fs("NgAfterNextRender");const i=e.get(Wd),o=i.handler??=new tS,r=n?.phase??Ls.MixedReadWrite,a=()=>{o.unregister(c),s()},s=e.get(Nm).onDestroy(a),c=new eS(e,r,()=>{a(),t()});return o.register(c),{destroy:a}}class eS{constructor(n,e,i){this.phase=e,this.callbackFn=i,this.zone=n.get(We),this.errorHandler=n.get(Go,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class tS{constructor(){this.executingCallbacks=!1,this.buckets={[Ls.EarlyRead]:new Set,[Ls.Write]:new Set,[Ls.MixedReadWrite]:new Set,[Ls.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Wd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i();this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>new t})}return t})();function Lm(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let a=0;a0&&nD(t,e,r.join(" "))}}(b,ft,k,i),void 0!==e&&function D8(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=k8}return t})();function k8(){return cS(pi(),be())}const M8=vi,aS=class extends M8{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Tc(this._hostTNode,this._hostLView)}get injector(){return new xn(this._hostTNode,this._hostLView)}get parentInjector(){const n=sm(this._hostTNode,this._hostLView);if(z_(n)){const e=Od(n,this._hostLView),i=Ed(n);return new xn(e[He].data[i+8],e)}return new xn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=sS(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-en}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(s,o,Yc(this._hostTNode,null)),s}createComponent(n,e,i,o,r){const a=n&&!function Td(t){return"function"==typeof t}(n);let s;if(a)s=e;else{const k=e||{};s=k.index,i=k.injector,o=k.projectableNodes,r=k.environmentInjector||k.ngModuleRef}const c=a?n:new Yd(Ht(n)),u=i||this.parentInjector;if(!r&&null==c.ngModule){const T=(a?u:this.parentInjector).get(Ao,null);T&&(r=T)}Ht(c.componentType??{});const w=c.create(u,o,null,r);return this.insertImpl(w.hostView,s,Yc(this._hostTNode,null)),w}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function DF(t){return Wn(t[Ji])}(o)){const s=this.indexOf(n);if(-1!==s)this.detach(s);else{const c=o[Ji],u=new aS(c,c[$n],c[Ji]);u.detach(u.indexOf(n))}}const r=this._adjustIndex(e),a=this._lContainer;return Vd(a,o,r,i),n.attachToViewContainerRef(),bx(Vb(a),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=sS(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);i&&(Nh(Vb(this._lContainer),e),vm(i[He],i))}detach(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);return i&&null!=Nh(Vb(this._lContainer),e)?new Hd(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function sS(t){return t[8]}function Vb(t){return t[8]||(t[8]=[])}function cS(t,n){let e;const i=n[t.index];return Wn(i)?e=i:(e=pD(i,n,null,t),n[t.index]=e,Sm(n,e)),lS(e,n,t,i),new aS(e,t,n)}let lS=function uS(t,n,e,i){if(t[Mr])return;let o;o=8&e.type?bi(i):function T8(t,n){const e=t[Et],i=e.createComment(""),o=io(n,t);return Rs(e,ym(e,o),i,function y4(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[Mr]=o},jb=()=>!1;class zb{constructor(n){this.queryList=n,this.matches=null}clone(){return new zb(this.queryList)}setDirty(){this.queryList.setDirty()}}class Hb{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Ub{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(a[s/2]);else{const u=r[s+1],p=n[-c];for(let g=en;g=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=hd(o.hostAttrs,e=hd(e,o.hostAttrs))}}(i)}function W8(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function Vm(t){return t===kr?{}:t===Jt?[]:t}function Z8(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Y8(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Q8(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function PS(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class Bs{}class RS{}class Zb extends Bs{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new oS(this);const o=Un(n);this._bootstrapComponents=Ro(o.bootstrap),this._r3Injector=h1(n,e,[{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver},...i],yn(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Yb extends RS{constructor(n){super(),this.moduleType=n}create(n){return new Zb(this.moduleType,n,[])}}class NS extends Bs{constructor(n){super(),this.componentFactoryResolver=new oS(this),this.instance=null;const e=new jc([...n.providers,{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver}],n.parent||em(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Qb(t,n,e=null){return new NS({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Vs=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new pt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Nr(t,n,e){return t[n]=e}function Xd(t,n){return t[n]}function tn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function js(t,n,e,i){const o=tn(t,n,e);return tn(t,n+1,i)||o}function zm(t,n,e,i,o){const r=js(t,n,e,i);return tn(t,n+2,o)||r}function Wo(t,n,e,i,o,r){const a=js(t,n,e,i);return js(t,n+2,o,r)||a}function y(t,n,e,i,o,r,a,s){const c=be(),u=Gt(),p=t+Ot,g=u.firstCreatePass?function aB(t,n,e,i,o,r,a,s,c){const u=n.consts,p=Zc(n,t,4,a||null,Tr(u,s));bb(n,e,p,Tr(u,c)),im(n,p);const g=p.tView=_b(2,p,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,u,null);return null!==n.queries&&(n.queries.template(n,p),g.queries=n.queries.embeddedTView(p)),p}(p,u,c,n,e,i,o,r,a):u.data[p];Ir(g,!1);const b=FS(u,c,g,t);Rh()&&Cm(u,c,b,g),Zn(b,c);const w=pD(b,c,b,g);return c[p]=w,Sm(c,w),function dS(t,n,e){return jb(t,n,e)}(w,g,c),Oh(g)&&fb(u,c,g),null!=a&&gb(c,g,s),y}let FS=function LS(t,n,e,i){return Ba(!0),n[Et].createComment("")};function Xe(t,n,e,i){const o=be();return tn(o,mr(),n)&&(Gt(),Rr(Ei(),o,t,n,e,i)),Xe}function al(t,n,e,i){return tn(t,mr(),e)?n+At(e)+i:Nt}function Wm(t,n){return t<<17|n<<2}function Ka(t){return t>>17&32767}function sv(t){return 2|t}function Hs(t){return(131068&t)>>2}function cv(t,n){return-131069&t|n<<2}function lv(t){return 1|t}function pk(t,n,e,i){const o=t[e+1],r=null===n;let a=i?Ka(o):Hs(o),s=!1;for(;0!==a&&(!1===s||r);){const u=t[a+1];$B(t[a],n)&&(s=!0,t[a+1]=i?lv(u):sv(u)),a=i?Ka(u):Hs(u)}s&&(t[e+1]=i?sv(o):lv(o))}function $B(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Ec(t,n)>=0}const Dn={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function fk(t){return t.substring(Dn.key,Dn.keyEnd)}function gk(t,n){const e=Dn.textEnd;return e===n?-1:(n=Dn.keyEnd=function KB(t,n,e){for(;n32;)n++;return n}(t,Dn.key=n,e),pl(t,n,e))}function pl(t,n,e){for(;n=0;e=gk(n,e))Oo(t,fk(n),!0)}function gr(t,n,e,i){const o=be(),r=Gt(),a=na(2);r.firstUpdatePass&&wk(r,t,a,i),n!==Nt&&tn(o,a,n)&&Dk(r,r.data[Kn()],o,o[Et],t,o[a+1]=function a6(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=yn(Po(t)))),t}(n,e),i,a)}function Ck(t,n){return n>=t.expandoStartIndex}function wk(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Kn()],a=Ck(t,e);kk(r,i)&&null===n&&!a&&(n=!1),n=function JB(t,n,e,i){const o=Jg(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=iu(e=uv(null,t,n,e,i),n.attrs,i),r=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=uv(o,t,n,e,i),null===r){let c=function e6(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Hs(i))return t[Ka(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=uv(null,t,n,c[1],i),c=iu(c,n.attrs,i),function t6(t,n,e,i){t[Ka(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function i6(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(u=!0)):p=e,o)if(0!==c){const b=Ka(t[s+1]);t[i+1]=Wm(b,s),0!==b&&(t[b+1]=cv(t[b+1],i)),t[s+1]=function jB(t,n){return 131071&t|n<<17}(t[s+1],i)}else t[i+1]=Wm(s,0),0!==s&&(t[s+1]=cv(t[s+1],i)),s=i;else t[i+1]=Wm(c,0),0===s?s=i:t[c+1]=cv(t[c+1],i),c=i;u&&(t[i+1]=sv(t[i+1])),pk(t,p,i,!0),pk(t,p,i,!1),function UB(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Ec(r,n)>=0&&(e[i+1]=lv(e[i+1]))}(n,p,t,i,r),a=Wm(s,c),r?n.classBindings=a:n.styleBindings=a}(o,r,n,e,a,i)}}function uv(t,n,e,i,o){let r=null;const a=e.directiveEnd;let s=e.directiveStylingLast;for(-1===s?s=e.directiveStart:s++;s0;){const c=t[o],u=Array.isArray(c),p=u?c[1]:c,g=null===p;let b=e[o+1];b===Nt&&(b=g?Jt:void 0);let w=g?o_(b,i):p===i?b:void 0;if(u&&!Km(w)&&(w=o_(c,i)),Km(w)&&(s=w,a))return s;const k=t[o+1];o=a?Ka(k):Hs(k)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(s=o_(c,i))}return s}function Km(t){return void 0!==t}function kk(t,n){return 0!=(t.flags&(n?8:16))}function Mk(t,n,e){!function _r(t,n,e,i){const o=Gt(),r=na(2);o.firstUpdatePass&&wk(o,null,r,i);const a=be();if(e!==Nt&&tn(a,r,e)){const s=o.data[Kn()];if(kk(s,i)&&!Ck(o,r)){let c=i?s.classesWithoutHost:s.stylesWithoutHost;null!==c&&(e=Ng(c,e||"")),dv(o,s,a,e,i)}else!function r6(t,n,e,i,o,r,a,s){o===Nt&&(o=Jt);let c=0,u=0,p=0(Ba(!0),bm(i,o,function fx(){return Dt.lFrame.currentNamespace}()));function me(t,n,e){const i=be(),o=Gt(),r=t+Ot,a=o.firstCreatePass?function O6(t,n,e,i,o){const r=n.consts,a=Tr(r,i),s=Zc(n,t,8,"ng-container",a);return null!==a&&Lm(s,a,!0),bb(n,e,s,Tr(r,o)),null!==n.queries&&n.queries.elementStart(n,s),s}(r,o,i,n,e):o.data[r];Ir(a,!0);const s=Ak(o,i,a,t);return i[r]=s,Rh()&&Cm(o,i,s,a),Zn(s,i),Oh(a)&&(fb(o,i,a),pb(o,a,i)),null!=e&&gb(i,a),me}function pe(){let t=pi();const n=Gt();return Yg()?Qg():(t=t.parent,Ir(t,!1)),n.firstCreatePass&&(im(n,t),zg(t)&&n.queries.elementEnd(t)),pe}function ro(t,n,e){return me(t,n,e),pe(),ro}let Ak=(t,n,e,i)=>(Ba(!0),sb(n[Et],""));function _e(){return be()}function ao(t,n,e){const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!0),ao}function Zm(t,n,e){const i=be();if(tn(i,mr(),n)){const r=Gt(),a=Ei();wo(r,a,i,t,n,bD(Jg(r.data),a,i),e,!0)}return Zm}const gl="en-US";let Nk=gl;function A(t,n,e,i){const o=be(),r=Gt(),a=pi();return bv(r,o,o[Et],a,t,n,i),A}function ep(t,n){const e=pi(),i=be(),o=Gt();return bv(o,i,bD(Jg(o.data),e,i),e,t,n),ep}function bv(t,n,e,i,o,r,a){const s=Oh(i),u=t.firstCreatePass&&_D(t),p=n[Ii],g=gD(n);let b=!0;if(3&i.type||a){const T=io(i,n),z=a?a(T):T,re=g.length,ae=a?tt=>a(bi(tt[i.index])):i.index;let Ue=null;if(!a&&s&&(Ue=function EV(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?s[c]:null}"string"==typeof a&&(r+=2)}return null}(t,n,o,i.index)),null!==Ue)(Ue.__ngLastListenerFn__||Ue).__ngNextListenerFn__=r,Ue.__ngLastListenerFn__=r,b=!1;else{r=sM(i,n,p,r,!1);const tt=e.listen(z,o,r);g.push(r,tt),u&&u.push(o,ae,re,re+1)}}else r=sM(i,n,p,r,!1);const w=i.outputs;let k;if(b&&null!==w&&(k=w[o])){const T=k.length;if(T)for(let z=0;z-1?Eo(t.index,n):n);let c=aM(n,e,i,a),u=r.__ngNextListenerFn__;for(;u;)c=aM(n,e,u,a)&&c,u=u.__ngNextListenerFn__;return o&&!1===c&&a.preventDefault(),c}}function C(t=1){return function VF(t){return(Dt.lFrame.contextLView=function nx(t,n){for(;t>0;)n=n[xc],t--;return n}(t,Dt.lFrame.contextLView))[Ii]}(t)}function OV(t,n){let e=null;const i=function sF(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(Ba(!0),function _m(t,n){return t.createText(n)}(n[Et],i));function Pe(t){return xe("",t,""),Pe}function xe(t,n,e){const i=be(),o=al(i,t,n,e);return o!==Nt&&sa(i,Kn(),o),xe}function _l(t,n,e,i,o){const r=be(),a=function sl(t,n,e,i,o,r){const s=js(t,ia(),e,o);return na(2),s?n+At(e)+i+At(o)+r:Nt}(r,t,n,e,i,o);return a!==Nt&&sa(r,Kn(),a),_l}function Cv(t,n,e,i,o,r,a){const s=be(),c=function cl(t,n,e,i,o,r,a,s){const u=zm(t,ia(),e,o,a);return na(3),u?n+At(e)+i+At(o)+r+At(a)+s:Nt}(s,t,n,e,i,o,r,a);return c!==Nt&&sa(s,Kn(),c),Cv}function wv(t,n,e,i,o,r,a,s,c){const u=be(),p=function ll(t,n,e,i,o,r,a,s,c,u){const g=Wo(t,ia(),e,o,a,c);return na(4),g?n+At(e)+i+At(o)+r+At(a)+s+At(c)+u:Nt}(u,t,n,e,i,o,r,a,s,c);return p!==Nt&&sa(u,Kn(),p),wv}function dn(t,n,e){BD(n)&&(n=n());const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!1),dn}function kn(t,n){const e=BD(t);return e&&t.set(n),e}function un(t,n){const e=be(),i=Gt(),o=pi();return bv(i,e,e[Et],o,t,n),un}function xv(t,n,e,i,o){if(t=wt(t),Array.isArray(t))for(let r=0;r>20;if(Os(t)||!t.multi){const w=new Id(u,o,_),k=Sv(c,n,o?p:p+b,g);-1===k?($_(am(s,a),r,c),Dv(r,t,n.length),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(w),a.push(w)):(e[k]=w,a[k]=w)}else{const w=Sv(c,n,p+b,g),k=Sv(c,n,p,p+b),z=k>=0&&e[k];if(o&&!z||!o&&!(w>=0&&e[w])){$_(am(s,a),r,c);const re=function YV(t,n,e,i,o){const r=new Id(t,e,_);return r.multi=[],r.index=n,r.componentProviders=0,OM(r,o,i&&!e),r}(o?ZV:KV,e.length,o,i,u);!o&&z&&(e[k].providerFactory=re),Dv(r,t,n.length,0),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(re),a.push(re)}else Dv(r,t,w>-1?w:k,OM(e[o?k:w],u,!o&&i));!o&&i&&z&&e[k].componentProviders++}}}function Dv(t,n,e,i){const o=Os(n),r=function k3(t){return!!t.useClass}(n);if(o||r){const c=(r?wt(n.useClass):n).prototype.ngOnDestroy;if(c){const u=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const p=u.indexOf(e);-1===p?u.push(e,[i,c]):u[p+1].push(i,c)}else u.push(e,c)}}}function OM(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function Sv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function WV(t,n,e){const i=Gt();if(i.firstCreatePass){const o=hr(t);xv(e,i.data,i.blueprint,o,!0),xv(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let QV=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Bx(0,e.type),o=i.length>0?Qb([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ke({token:t,providedIn:"environment",factory:()=>new t(X(Ao))})}return t})();function AM(t){Fs("NgStandalone"),t.getStandaloneInjector=n=>n.get(QV).getOrCreateStandaloneInjector(t)}function No(t,n,e){const i=no()+t,o=be();return o[i]===Nt?Nr(o,i,e?n.call(e):n()):Xd(o,i)}function hi(t,n,e,i){return GM(be(),no(),t,n,e,i)}function zM(t,n,e,i,o){return function qM(t,n,e,i,o,r,a){const s=n+e;return js(t,s,o,r)?Nr(t,s+2,a?i.call(a,o,r):i(o,r)):cu(t,s+2)}(be(),no(),t,n,e,i,o)}function HM(t,n,e,i,o,r){return function WM(t,n,e,i,o,r,a,s){const c=n+e;return zm(t,c,o,r,a)?Nr(t,c+3,s?i.call(s,o,r,a):i(o,r,a)):cu(t,c+3)}(be(),no(),t,n,e,i,o,r)}function cu(t,n){const e=t[n];return e===Nt?void 0:e}function GM(t,n,e,i,o,r){const a=n+e;return tn(t,a,o)?Nr(t,a+1,r?i.call(r,o):i(o)):cu(t,a+1)}function lu(t,n){const e=Gt();let i;const o=t+Ot;e.firstCreatePass?(i=function uj(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Is(i.type)),s=yo(_);try{const c=rm(!1),u=r();return rm(c),function NV(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,be(),o,u),u}finally{yo(s)}}function du(t,n,e){const i=t+Ot,o=be(),r=kc(o,i);return function uu(t,n){return t[He].data[n].pure}(o,i)?GM(o,no(),n,r.transform,e,r):r.transform(e)}function br(t,n){return Tm(t,n)}let uT=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const gT=new se(""),op=new se("");let Nv,Pv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Nv||(function cz(t){Nv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(Rv),X(op))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Rv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Nv?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pu(t){return!!t&&"function"==typeof t.then}function _T(t){return!!t&&"function"==typeof t.subscribe}const Fv=new se("");let Lv=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=De(Fv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(pu(r))e.push(r);else if(_T(r)){const a=new Promise((s,c)=>{r.subscribe({complete:s,error:c})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Bv=new se("");function yT(t,n){return Array.isArray(n)?n.reduce(yT,t):{...t,...n}}let Za=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=De(p1),this.afterRenderEffectManager=De(Wd),this.componentTypes=[],this.components=[],this.isStable=De(Vs).hasPendingTasks.pipe(nt(e=>!e)),this._injector=De(Ao)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof ND;if(!this._injector.get(Lv).done)throw!o&&function Fa(t){const n=Ht(t)||Cn(t)||Ln(t);return null!==n&&n.standalone}(e),new ue(405,!1);let a;a=o?e:this._injector.get(Ns).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const s=function lz(t){return t.isBoundToModule}(a)?void 0:this._injector.get(Bs),u=a.create(ji.NULL,[],i||a.selector,s),p=u.location.nativeElement,g=u.injector.get(gT,null);return g?.registerApplication(p),u.onDestroy(()=>{this.detachView(u.hostView),rp(this.components,u),g?.unregisterApplication(p)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new ue(101,!1);try{this._runningTick=!0,this.detectChangesInAttachedViews()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}detectChangesInAttachedViews(){let e=0;do{if(100===e)throw new ue(103,!1);const i=0===e;for(let{_lView:o,notifyErrorHandler:r}of this._views)!i&&!CT(o)||this.detectChangesInView(o,r,i);this.afterRenderEffectManager.execute(),e++}while(this._views.some(({_lView:i})=>CT(i)))}detectChangesInView(e,i,o){let r;o?(r=0,e[lt]|=1024):r=64&e[lt]?0:1,Mm(e,i,r)}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;rp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Bv,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>rp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ue(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function rp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CT(t){return Wg(t)}class uz{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let wT=(()=>{class t{compileModuleSync(e){return new Yb(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Ro(Un(e).declarations).reduce((a,s)=>{const c=Ht(s);return c&&a.push(new Yd(c)),a},[]);return new uz(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pz=(()=>{class t{constructor(){this.zone=De(We),this.applicationRef=De(Za)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function fz(){const t=De(We),n=De(Go);return e=>t.runOutsideAngular(()=>n.handleError(e))}let _z=(()=>{class t{constructor(){this.subscription=new de,this.initialized=!1,this.zone=De(We),this.pendingTasks=De(Vs)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{We.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Br=new se("",{providedIn:"root",factory:()=>De(Br,$t.Optional|$t.SkipSelf)||function bz(){return typeof $localize<"u"&&$localize.locale||gl}()}),Vv=new se("");let kT=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function h8(t="zone.js",n){return"noop"===t?new YD:"zone.js"===t?new We(n):t}(i?.ngZone,function ST(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=function rB(t,n,e){return new Zb(t,n,e)}(e.moduleType,this.injector,function DT(t){return[{provide:We,useFactory:t},{provide:Es,multi:!0,useFactory:()=>{const n=De(pz,{optional:!0});return()=>n.initialize()}},{provide:Es,multi:!0,useFactory:()=>{const n=De(_z);return()=>{n.initialize()}}},{provide:p1,useFactory:fz}]}(()=>o)),a=r.injector.get(Go,null);return o.runOutsideAngular(()=>{const s=o.onError.subscribe({next:c=>{a.handleError(c)}});r.onDestroy(()=>{rp(this._modules,r),s.unsubscribe()})}),function vT(t,n,e){try{const i=e();return pu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const s=r.injector.get(Lv);return s.runInitializers(),s.donePromise.then(()=>(function Fk(t){"string"==typeof t&&(Nk=t.toLowerCase().replace(/_/g,"-"))}(r.injector.get(Br,gl)||gl),this._moduleDoBootstrap(r),r))})})}bootstrapModule(e,i=[]){const o=yT({},i);return function mz(t,n,e){const i=new Yb(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Za);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new ue(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ue(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Vv,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(X(ji))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Ya=null;const MT=new se("");function TT(t,n,e=[]){const i=`Platform: ${n}`,o=new se(i);return(r=[])=>{let a=jv();if(!a||a.injector.get(MT,!1)){const s=[...e,...r,{provide:o,useValue:!0}];t?t(s):function Cz(t){if(Ya&&!Ya.get(MT,!1))throw new ue(400,!1);(function bT(){!function bt(t){fe=t}(()=>{throw new ue(600,!1)})})(),Ya=t;const n=t.get(kT);(function ET(t){t.get(Sx,null)?.forEach(e=>e())})(t)}(function IT(t=[],n){return ji.create({name:n,providers:[{provide:A_,useValue:"platform"},{provide:Vv,useValue:new Set([()=>Ya=null])},...t]})}(s,i))}return function wz(t){const n=jv();if(!n)throw new ue(401,!1);return n}()}}function jv(){return Ya?.get(kT)??null}const Mz=TT(null,"core",[]);let Tz=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(X(Za))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();function Cl(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let t2=null;function Qa(){return t2}class o7{}const ut=new se("");let Wv=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(a7),providedIn:"platform"})}return t})();const r7=new se("");let a7=(()=>{class t extends Wv{constructor(){super(),this._doc=De(ut),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qa().getBaseHref(this._doc)}onPopState(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Kv(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function n2(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function la(t){return t&&"?"!==t[0]?"?"+t:t}let qs=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(r2),providedIn:"root"})}return t})();const o2=new se("");let r2=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??De(ut).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Kv(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+la(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),s7=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Kv(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Ws=(()=>{class t{constructor(e){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function d7(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(n2(a2(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+la(i))}normalize(e){return t.stripTrailingSlash(function l7(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,a2(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=la;static#t=this.joinWithSlash=Kv;static#i=this.stripTrailingSlash=n2;static#n=this.\u0275fac=function(i){return new(i||t)(X(qs))};static#o=this.\u0275prov=ke({token:t,factory:()=>function c7(){return new Ws(X(qs))}(),providedIn:"root"})}return t})();function a2(t){return t.replace(/\/index.html$/,"")}function f2(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}const oy=/\s+/,g2=[];let yr=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=g2,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(oy):g2}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(oy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(oy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngClass",""]],inputs:{klass:[ge.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class Z7{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let rn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Z7(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===r?void 0:r);else if(null!==r){const s=i.get(r);i.move(s,a),b2(s,o)}});for(let o=0,r=i.length;o{b2(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function b2(t,n){t.context.$implicit=n.item}let It=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Y7,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){v2("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){v2("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Y7{constructor(){this.$implicit=null,this.ngIf=null}}function v2(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${yn(n)}'.`)}class ry{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let xl=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),Sp=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new ry(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),y2=(()=>{class t{constructor(e,i,o){o._addDefault(new ry(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),w2=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),a=-1===o.indexOf("-")?void 0:$a.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,a):this._renderer.removeStyle(this._ngEl.nativeElement,o,a)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Rm),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),kp=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[fi]})}return t})();function Cr(t,n){return new ue(2100,!1)}class J7{createSubscription(n,e){return VD(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){VD(()=>n.unsubscribe())}}class e9{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const t9=new e9,i9=new J7;let x2=(()=>{class t{constructor(e){this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(pu(e))return t9;if(_T(e))return i9;throw Cr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt,16))};static#t=this.\u0275pipe=bo({name:"async",type:t,pure:!1,standalone:!0})}return t})(),D2=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Cr();return e.toUpperCase()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=bo({name:"uppercase",type:t,pure:!0,standalone:!0})}return t})(),ay=(()=>{class t{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=S2}transform(e,i=S2){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const o=this.differ.diff(e),r=i!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(a=>{this.keyValues.push(function p9(t,n){return{key:t,value:n}}(a.key,a.currentValue))})),(o||r)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rm,16))};static#t=this.\u0275pipe=bo({name:"keyvalue",type:t,pure:!1,standalone:!0})}return t})();function S2(t,n){const e=t.key,i=n.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const k2="browser";function M2(t){return t===k2}function T2(t){return"server"===t}let C9=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>M2(De(ra))?new w9(De(ut),window):new D9})}return t})();class w9{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function x9(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const a=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class D9{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class I2{}class X9 extends o7{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class dy extends X9{static makeCurrent(){!function n7(t){t2??=t}(new dy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function J9(){return yu=yu||document.querySelector("base"),yu?yu.getAttribute("href"):null}();return null==e?null:function eH(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){yu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return f2(document.cookie,n)}}let yu=null,iH=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const uy=new se("");let B2=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new ue(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(uy),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class V2{constructor(n){this._doc=n}}const hy="ng-app-id";let j2=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=T2(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${hy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(hy),r;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(hy,this.appId),e.appendChild(a),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,a=r.get(i)?.elements;a?a.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(wd),X(s_,8),X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const my={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},py=/%COMP%/g,aH=new se("",{providedIn:"root",factory:()=>!0});function H2(t,n){return n.map(e=>e.replace(py,t))}let fy=(()=>{class t{constructor(e,i,o,r,a,s,c,u=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=a,this.platformId=s,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=T2(s),this.defaultRenderer=new gy(e,a,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===cr.ShadowDom&&(i={...i,encapsulation:cr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof $2?o.applyToHost(e):o instanceof _y&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const a=this.doc,s=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,p=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(i.encapsulation){case cr.Emulated:r=new $2(c,u,i,this.appId,p,a,s,g);break;case cr.ShadowDom:return new dH(c,u,e,i,a,s,this.nonce,g);default:r=new _y(c,u,i,p,a,s,g)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(X(B2),X(j2),X(wd),X(aH),X(ut),X(ra),X(We),X(s_))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class gy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(my[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(U2(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(U2(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new ue(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=my[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=my[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&($a.DashCase|$a.Important)?n.style.setProperty(e,i,o&$a.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&$a.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Qa().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function U2(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class dH extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=H2(o.id,o.styles);for(const p of u){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class _y extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,s),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?H2(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class $2 extends _y{constructor(n,e,i,o,r,a,s,c){const u=o+"-"+i.id;super(n,e,i,r,a,s,c,u),this.contentAttr=function sH(t){return"_ngcontent-%COMP%".replace(py,t)}(u),this.hostAttr=function cH(t){return"_nghost-%COMP%".replace(py,t)}(u)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let uH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const G2=["alt","control","meta","shift"],hH={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},mH={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let pH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),a=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qa().onAndCancel(e,r.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let a="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),a="code."),G2.forEach(u=>{const p=i.indexOf(u);p>-1&&(i.splice(p,1),a+=u+".")}),a+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=a,c}static matchEventFullKeyCode(e,i){let o=hH[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),G2.forEach(a=>{a!==o&&(0,mH[a])(e)&&(r+=a+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const bH=TT(Mz,"browser",[{provide:ra,useValue:k2},{provide:Sx,useValue:function fH(){dy.makeCurrent()},multi:!0},{provide:ut,useFactory:function _H(){return function qF(t){r_=t}(document),document},deps:[]}]),vH=new se(""),K2=[{provide:op,useClass:class tH{addToWindow(n){di.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new ue(5103,!1);return r},di.getAllAngularTestabilities=()=>n.getAllTestabilities(),di.getAllAngularRootElements=()=>n.getAllRootElements(),di.frameworkStabilizers||(di.frameworkStabilizers=[]),di.frameworkStabilizers.push(i=>{const o=di.getAllAngularTestabilities();let r=o.length;const a=function(){r--,0==r&&i()};o.forEach(s=>{s.whenStable(a)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Qa().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:gT,useClass:Pv,deps:[We,Rv,op]},{provide:Pv,useClass:Pv,deps:[We,Rv,op]}],Z2=[{provide:A_,useValue:"root"},{provide:Go,useFactory:function gH(){return new Go},deps:[]},{provide:uy,useClass:uH,multi:!0,deps:[ut,We,ra]},{provide:uy,useClass:pH,multi:!0,deps:[ut]},fy,j2,B2,{provide:Ab,useExisting:fy},{provide:I2,useClass:iH,deps:[]},[]];let Y2=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:wd,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(vH,12))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[...Z2,...K2],imports:[Vn,Tz]})}return t})(),yH=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),by=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:function(i){let o=null;return o=i?new(i||t):X(DH),o},providedIn:"root"})}return t})(),DH=(()=>{class t extends by{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Bn.NONE:return i;case Bn.HTML:return Ar(i,"HTML")?Po(i):k1(this._doc,String(i)).toString();case Bn.STYLE:return Ar(i,"Style")?Po(i):i;case Bn.SCRIPT:if(Ar(i,"Script"))return Po(i);throw new ue(5200,!1);case Bn.URL:return Ar(i,"URL")?Po(i):mm(String(i));case Bn.RESOURCE_URL:if(Ar(i,"ResourceURL"))return Po(i);throw new ue(5201,!1);default:throw new ue(5202,!1)}}bypassSecurityTrustHtml(e){return function wL(t){return new gL(t)}(e)}bypassSecurityTrustStyle(e){return function xL(t){return new _L(t)}(e)}bypassSecurityTrustScript(e){return function DL(t){return new bL(t)}(e)}bypassSecurityTrustUrl(e){return function SL(t){return new vL(t)}(e)}bypassSecurityTrustResourceUrl(e){return function kL(t){return new yL(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var St=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(St||{});const ha="*";function Lo(t,n){return{type:St.Trigger,name:t,definitions:n,options:{}}}function Yi(t,n=null){return{type:St.Animate,styles:n,timings:t}}function vy(t,n=null){return{type:St.Group,steps:t,options:n}}function Zt(t){return{type:St.Style,styles:t,offset:null}}function mn(t,n,e){return{type:St.State,name:t,styles:n,options:e}}function Qi(t,n,e=null){return{type:St.Transition,expr:t,animation:n,options:e}}function yy(t=null){return{type:St.AnimateChild,options:t}}function Cy(t,n,e=null){return{type:St.Query,selector:t,animation:n,options:e}}class wu{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eI{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==r&&this._onFinish()}),a.onDestroy(()=>{++i==r&&this._onDestroy()}),a.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((a,s)=>Math.max(a,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function tI(t){return new ue(3e3,!1)}function Xa(t){switch(t.length){case 0:return new wu;case 1:return t[0];default:return new eI(t)}}function iI(t,n,e=new Map,i=new Map){const o=[],r=[];let a=-1,s=null;if(n.forEach(c=>{const u=c.get("offset"),p=u==a,g=p&&s||new Map;c.forEach((b,w)=>{let k=w,T=b;if("offset"!==w)switch(k=t.normalizePropertyName(k,o),T){case"!":T=e.get(w);break;case ha:T=i.get(w);break;default:T=t.normalizeStyleValue(w,k,T,o)}g.set(k,T)}),p||r.push(g),s=g,a=u}),o.length)throw function XH(t){return new ue(3502,!1)}();return r}function xy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Dy(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Dy(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Dy(e,"destroy",t)))}}function Dy(t,n,e){const r=Sy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(r._data=a),r}function Sy(t,n,e,i,o="",r=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!a}}function Bo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function nI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const dU=typeof document>"u"?null:document.documentElement;function ky(t){const n=t.parentNode||t.host||null;return n===dU?null:n}let Ks=null,oI=!1;function rI(t,n){for(;n;){if(n===t)return!0;n=ky(n)}return!1}function aI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let My=(()=>{class t{validateStyleProperty(e){return function hU(t){Ks||(Ks=function mU(){return typeof document<"u"?document.body:null}()||{},oI=!!Ks.style&&"WebkitAppearance"in Ks.style);let n=!0;return Ks.style&&!function uU(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Ks.style,!n&&oI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Ks.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return rI(e,i)}getParentElement(e){return ky(e)}query(e,i,o){return aI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,a,s=[],c){return new wu(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class Ty{static#e=this.NOOP=new My}class Iy{}const fU=1e3,Ey="ng-enter",Ip="ng-leave",Ep="ng-trigger",Op=".ng-trigger",cI="ng-animating",Oy=".ng-animating";function ma(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Ay(parseFloat(n[1]),n[2])}function Ay(t,n){return"s"===n?t*fU:t}function Ap(t,n,e){return t.hasOwnProperty("duration")?t:function _U(t,n,e){let o,r=0,a="";if("string"==typeof t){const s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return n.push(tI()),{duration:0,delay:0,easing:""};o=Ay(parseFloat(s[1]),s[2]);const c=s[3];null!=c&&(r=Ay(parseFloat(c),s[4]));const u=s[5];u&&(a=u)}else o=t;if(!e){let s=!1,c=n.length;o<0&&(n.push(function EH(){return new ue(3100,!1)}()),s=!0),r<0&&(n.push(function OH(){return new ue(3101,!1)}()),s=!0),s&&n.splice(c,0,tI())}return{duration:o,delay:r,easing:a}}(t,n,e)}function Vr(t,n,e){n.forEach((i,o)=>{const r=Ry(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Zs(t,n){n.forEach((e,i)=>{const o=Ry(i);t.style[o]=""})}function xu(t){return Array.isArray(t)?1==t.length?t[0]:function SH(t,n=null){return{type:St.Sequence,steps:t,options:n}}(t):t}const Py=new RegExp("{{\\s*(.+?)\\s*}}","g");function dI(t){let n=[];if("string"==typeof t){let e;for(;e=Py.exec(t);)n.push(e[1]);Py.lastIndex=0}return n}function Du(t,n,e){const i=`${t}`,o=i.replace(Py,(r,a)=>{let s=n[a];return null==s&&(e.push(function PH(t){return new ue(3003,!1)}()),s=""),s.toString()});return o==i?t:o}const yU=/-+([a-z0-9])/g;function Ry(t){return t.replace(yU,(...n)=>n[1].toUpperCase())}function Vo(t,n,e){switch(n.type){case St.Trigger:return t.visitTrigger(n,e);case St.State:return t.visitState(n,e);case St.Transition:return t.visitTransition(n,e);case St.Sequence:return t.visitSequence(n,e);case St.Group:return t.visitGroup(n,e);case St.Animate:return t.visitAnimate(n,e);case St.Keyframes:return t.visitKeyframes(n,e);case St.Style:return t.visitStyle(n,e);case St.Reference:return t.visitReference(n,e);case St.AnimateChild:return t.visitAnimateChild(n,e);case St.AnimateRef:return t.visitAnimateRef(n,e);case St.Query:return t.visitQuery(n,e);case St.Stagger:return t.visitStagger(n,e);default:throw function RH(t){return new ue(3004,!1)}()}}function Ny(t,n){return window.getComputedStyle(t)[n]}const xU=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class uI extends Iy{normalizePropertyName(n,e){return Ry(n)}normalizeStyleValue(n,e,i,o){let r="";const a=i.toString().trim();if(xU.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&o.push(function NH(t,n){return new ue(3005,!1)}())}return a+r}}const Pp="*";const Rp=new Set(["true","1"]),Np=new Set(["false","0"]);function hI(t,n){const e=Rp.has(t)||Np.has(t),i=Rp.has(n)||Np.has(n);return(o,r)=>{let a=t==Pp||t==o,s=n==Pp||n==r;return!a&&e&&"boolean"==typeof o&&(a=o?Rp.has(t):Np.has(t)),!s&&i&&"boolean"==typeof r&&(s=r?Rp.has(n):Np.has(n)),a&&s}}const MU=new RegExp("s*:selfs*,?","g");function Fy(t,n,e,i){return new TU(t).build(n,e,i)}class TU{constructor(n){this._driver=n}build(n,e,i){const o=new OU(e);return this._resetContextStyleTimingState(o),Vo(this,xu(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function FH(){return new ue(3006,!1)}()),n.definitions.forEach(s=>{if(this._resetContextStyleTimingState(e),s.type==St.State){const c=s,u=c.name;u.toString().split(/\s*,\s*/).forEach(p=>{c.name=p,r.push(this.visitState(c,e))}),c.name=u}else if(s.type==St.Transition){const c=this.visitTransition(s,e);i+=c.queryCount,o+=c.depCount,a.push(c)}else e.errors.push(function LH(){return new ue(3007,!1)}())}),{type:St.Trigger,name:n.name,states:r,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,a=o||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(c=>{dI(c).forEach(u=>{a.hasOwnProperty(u)||r.add(u)})})}),r.size&&e.errors.push(function BH(t,n){return new ue(3008,!1)}(0,r.values()))}return{type:St.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Vo(this,xu(n.animation),e),o=function DU(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function SU(t,n,e){if(":"==t[0]){const c=function kU(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function WH(t){return new ue(3015,!1)}()),n;const o=i[1],r=i[2],a=i[3];n.push(hI(o,a)),"<"==r[0]&&(o!=Pp||a!=Pp)&&n.push(hI(a,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:St.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ys(n.options)}}visitSequence(n,e){return{type:St.Sequence,steps:n.steps.map(i=>Vo(this,i,e)),options:Ys(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(a=>{e.currentTime=i;const s=Vo(this,a,e);return o=Math.max(o,e.currentTime),s});return e.currentTime=o,{type:St.Group,steps:r,options:Ys(n.options)}}visitAnimate(n,e){const i=function PU(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Ly(Ap(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Ly(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=Ap(e,n);return Ly(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Zt({});if(r.type==St.Keyframes)o=this.visitKeyframes(r,e);else{let a=n.styles,s=!1;if(!a){s=!0;const u={};i.easing&&(u.easing=i.easing),a=Zt(u)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=s,o=c}return e.currentAnimateTimings=null,{type:St.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let s of o)"string"==typeof s?s===ha?i.push(s):e.errors.push(new ue(3002,!1)):i.push(new Map(Object.entries(s)));let r=!1,a=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(a=s.get("easing"),s.delete("easing")),!r))for(let c of s.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:St.Style,styles:i,easing:a,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((s,c)=>{const u=e.collectedStyles.get(e.currentQuerySelector),p=u.get(c);let g=!0;p&&(r!=o&&r>=p.startTime&&o<=p.endTime&&(e.errors.push(function jH(t,n,e,i,o){return new ue(3010,!1)}()),g=!1),r=p.startTime),g&&u.set(c,{startTime:r,endTime:o}),e.options&&function vU(t,n,e){const i=n.params||{},o=dI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function AH(t){return new ue(3001,!1)}())})}(s,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:St.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function zH(){return new ue(3011,!1)}()),i;let r=0;const a=[];let s=!1,c=!1,u=0;const p=n.steps.map(re=>{const ae=this._makeStyleAst(re,e);let Ue=null!=ae.offset?ae.offset:function AU(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(ae.styles),tt=0;return null!=Ue&&(r++,tt=ae.offset=Ue),c=c||tt<0||tt>1,s=s||tt0&&r{const Ue=b>0?ae==w?1:b*ae:a[ae],tt=Ue*z;e.currentTime=k+T.delay+tt,T.duration=tt,this._validateStyleAst(re,e),re.offset=Ue,i.styles.push(re)}),i}visitReference(n,e){return{type:St.Reference,animation:Vo(this,xu(n.animation),e),options:Ys(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:St.AnimateChild,options:Ys(n.options)}}visitAnimateRef(n,e){return{type:St.AnimateRef,animation:this.visitReference(n.animation,e),options:Ys(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,a]=function IU(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(MU,"")),t=t.replace(/@\*/g,Op).replace(/@\w+/g,e=>Op+"-"+e.slice(1)).replace(/:animating/g,Oy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Bo(e.collectedStyles,e.currentQuerySelector,new Map);const s=Vo(this,xu(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:St.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:s,originalSelector:n.selector,options:Ys(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function GH(){return new ue(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:Ap(n.timings,e.errors,!0);return{type:St.Stagger,animation:Vo(this,xu(n.animation),e),timings:i,options:null}}}class OU{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Ys(t){return t?(t={...t}).params&&(t.params=function EU(t){return t?{...t}:null}(t.params)):t={},t}function Ly(t,n,e){return{duration:t,delay:n,easing:e}}function By(t,n,e,i,o,r,a=null,s=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:a,subTimeline:s}}class Fp{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const FU=new RegExp(":enter","g"),BU=new RegExp(":leave","g");function Vy(t,n,e,i,o,r=new Map,a=new Map,s,c,u=[]){return(new VU).buildKeyframes(t,n,e,i,o,r,a,s,c,u)}class VU{buildKeyframes(n,e,i,o,r,a,s,c,u,p=[]){u=u||new Fp;const g=new jy(n,e,u,o,r,p,[]);g.options=c;const b=c.delay?ma(c.delay):0;g.currentTimeline.delayNextStep(b),g.currentTimeline.setStyles([a],null,g.errors,c),Vo(this,i,g);const w=g.timelines.filter(k=>k.containsAnimation());if(w.length&&s.size){let k;for(let T=w.length-1;T>=0;T--){const z=w[T];if(z.element===e){k=z;break}}k&&!k.allowOnlyTimelineStyles()&&k.setStyles([s],null,g.errors,c)}return w.length?w.map(k=>k.buildKeyframes()):[By(e,[],[],[],0,b,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);r!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const a="number"==typeof r?r:ma(Du(r,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const a=null!=i.duration?ma(i.duration):null,s=null!=i.delay?ma(i.delay):null;return 0!==a&&n.forEach(c=>{const u=e.appendInstructionToTimeline(c,a,s);r=Math.max(r,u.duration+u.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Vo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==St.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Lp);const a=ma(r.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>Vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?ma(n.options.delay):0;n.steps.forEach(a=>{const s=e.createSubContext(n.options);r&&s.delayNextStep(r),Vo(this,a,s),o=Math.max(o,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return Ap(e.params?Du(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==St.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,n.styles.forEach(c=>{s.forwardTime((c.offset||0)*r),s.setStyles(c.styles,c.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?ma(o.delay):0;r&&(e.previousNode.type===St.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Lp);let a=i;const s=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=s.length;let c=null;s.forEach((u,p)=>{e.currentQueryIndex=p;const g=e.createSubContext(n.options,u);r&&g.delayNextStep(r),u===e.element&&(c=g.currentTimeline),Vo(this,n.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,a=Math.abs(r.duration),s=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=s-c;break;case"full":c=i.currentStaggerTime}const p=e.currentTimeline;c&&p.delayNextStep(c);const g=p.currentTime;Vo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-g+(o.startTime-i.currentTimeline.startTime)}}const Lp={};class jy{constructor(n,e,i,o,r,a,s,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=a,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Lp,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Bp(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ma(i.duration)),null!=i.delay&&(o.delay=ma(i.delay));const r=i.params;if(r){let a=o.params;a||(a=this.options.params={}),Object.keys(r).forEach(s=>{(!e||!a.hasOwnProperty(s))&&(a[s]=Du(r[s],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new jy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Lp,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new jU(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,a){let s=[];if(o&&s.push(this.element),n.length>0){n=(n=n.replace(FU,"."+this._enterClassName)).replace(BU,"."+this._leaveClassName);let u=this._driver.query(this.element,n,1!=i);0!==i&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),s.push(...u)}return!r&&0==s.length&&a.push(function qH(t){return new ue(3014,!1)}()),s}}class Bp{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Bp(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ha),this._currentKeyframe.set(e,ha);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},a=function zU(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,ha)}else for(let[r,a]of o)e.set(r,a)}),e}(n,this._globalTimelineStyles);for(let[s,c]of a){const u=Du(c,r,i);this._pendingStyles.set(s,u),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??ha),this._updateStyle(s,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((s,c)=>{const u=new Map([...this._backFill,...s]);u.forEach((p,g)=>{"!"===p?n.add(g):p===ha&&e.add(g)}),i||u.set("offset",c/this.duration),o.push(u)});const r=[...n.values()],a=[...e.values()];if(i){const s=o[0],c=new Map(s);s.set("offset",0),c.set("offset",1),o=[s,c]}return By(this.element,o,r,a,this.duration,this.startTime,this.easing,!1)}}class jU extends Bp{constructor(n,e,i,o,r,a,s=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=s,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],a=i+e,s=e/a,c=new Map(n[0]);c.set("offset",0),r.push(c);const u=new Map(n[0]);u.set("offset",fI(s)),r.push(u);const p=n.length-1;for(let g=1;g<=p;g++){let b=new Map(n[g]);const w=b.get("offset");b.set("offset",fI((e+w*i)/a)),r.push(b)}i=a,e=0,o="",n=r}return By(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function fI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function gI(t,n,e,i,o,r,a,s,c,u,p,g,b){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:a,timelines:s,queriedElements:c,preStyleProps:u,postStyleProps:p,totalTime:g,errors:b}}const zy={};class _I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function HU(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,a,s,c,u,p){const g=[],b=this.ast.options&&this.ast.options.params||zy,k=this.buildStyles(i,s&&s.params||zy,g),T=c&&c.params||zy,z=this.buildStyles(o,T,g),re=new Set,ae=new Map,Ue=new Map,tt="void"===o,ft={params:bI(T,b),delay:this.ast.options?.delay},zt=p?[]:Vy(n,e,this.ast.animation,r,a,k,z,ft,u,g);let Ni=0;return zt.forEach(On=>{Ni=Math.max(On.duration+On.delay,Ni)}),g.length?gI(e,this._triggerName,i,o,tt,k,z,[],[],ae,Ue,Ni,g):(zt.forEach(On=>{const Pa=On.element,cd=Bo(ae,Pa,new Set);On.preStyleProps.forEach(fc=>cd.add(fc));const UN=Bo(Ue,Pa,new Set);On.postStyleProps.forEach(fc=>UN.add(fc)),Pa!==e&&re.add(Pa)}),gI(e,this._triggerName,i,o,tt,k,z,zt,[...re.values()],ae,Ue,Ni))}}function bI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class UU{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=bI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((a,s)=>{a&&(a=Du(a,o,e));const c=this.normalizer.normalizePropertyName(s,e);a=this.normalizer.normalizeStyleValue(s,c,a,e),i.set(s,a)})}),i}}class GU{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new UU(o.style,o.options&&o.options.params||{},i))}),vI(this.states,"true","1"),vI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new _I(n,o,this.states))}),this.fallbackTransition=function qU(t,n,e){return new _I(t,{type:St.Transition,animation:{type:St.Sequence,steps:[],options:null},matchers:[(a,s)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function vI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const WU=new Fp;class KU{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Fy(this._driver,e,i,[]);if(i.length)throw function JH(t){return new ue(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=iI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let a;const s=new Map;if(r?(a=Vy(this._driver,e,r,Ey,Ip,new Map,new Map,i,WU,o),a.forEach(p=>{const g=Bo(s,p.element,new Map);p.postStyleProps.forEach(b=>g.set(b,null))})):(o.push(function eU(){return new ue(3300,!1)}()),a=[]),o.length)throw function tU(t){return new ue(3504,!1)}();s.forEach((p,g)=>{p.forEach((b,w)=>{p.set(w,this._driver.computeStyle(g,w,ha))})});const u=Xa(a.map(p=>{const g=s.get(p.element);return this._buildPlayer(p,new Map,g)}));return this._playersById.set(n,u),u.onDestroy(()=>this.destroy(n)),this.players.push(u),u}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function iU(t){return new ue(3301,!1)}();return e}listen(n,e,i,o){const r=Sy(e,"","","");return xy(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const yI="ng-animate-queued",Hy="ng-animate-disabled",JU=[],CI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},e$={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},wr="__ng_removed";class Uy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function o$(t){return t??null}(i?n.value:n),i){const{value:r,...a}=n;this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const Su="void",$y=new Uy(Su);class t${constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,Qo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function nU(t,n){return new ue(3302,!1)}();if(null==i||0==i.length)throw function oU(t){return new ue(3303,!1)}();if(!function r$(t){return"start"==t||"done"==t}(i))throw function rU(t,n){return new ue(3400,!1)}();const r=Bo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};r.push(a);const s=Bo(this._engine.statesByElement,n,new Map);return s.has(e)||(Qo(n,Ep),Qo(n,Ep+"-"+e),s.set(e,$y)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(a);c>=0&&r.splice(c,1),this._triggers.has(e)||s.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function aU(t){return new ue(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),a=new Gy(this.id,e,n);let s=this._engine.statesByElement.get(n);s||(Qo(n,Ep),Qo(n,Ep+"-"+e),this._engine.statesByElement.set(n,s=new Map));let c=s.get(e);const u=new Uy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&u.absorbOptions(c.options),s.set(e,u),c||(c=$y),u.value!==Su&&c.value===u.value){if(!function c$(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Zs(n,z),Vr(n,re)})}return}const b=Bo(this._engine.playersByElement,n,[]);b.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let w=r.matchTransition(c.value,u.value,n,u.params),k=!1;if(!w){if(!o)return;w=r.fallbackTransition,k=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:w,fromState:c,toState:u,player:a,isFallbackTransition:k}),k||(Qo(n,yI),a.onStart(()=>{Dl(n,yI)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);const z=this._engine.playersByElement.get(n);if(z){let re=z.indexOf(a);re>=0&&z.splice(re,1)}}),this.players.push(a),b.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,Op,!0);i.forEach(o=>{if(o[wr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),a=new Map;if(r){const s=[];if(r.forEach((c,u)=>{if(a.set(u,c.value),this._triggers.has(u)){const p=this.trigger(n,u,Su,o);p&&s.push(p)}}),s.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Xa(s).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const a=r.name;if(o.has(a))return;o.add(a);const c=this._triggers.get(a).fallbackTransition,u=i.get(a)||$y,p=new Uy(Su),g=new Gy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:c,fromState:u,toState:p,player:g,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[wr];(!r||r===CI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Qo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,a=this._elementListeners.get(r);a&&a.forEach(s=>{if(s.name==i.triggerName){const c=Sy(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,xy(i.player,s.phase,c,s.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==r||0==a?r-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class i${_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i,o){this.bodyNode=n,this.driver=e,this._normalizer=i,this.scheduler=o,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(r,a)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new t$(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,s=this.driver.getParentElement(e);for(;s;){const c=o.get(s);if(c){const u=i.indexOf(c);i.splice(u+1,0,n),a=!0;break}s=this.driver.getParentElement(s)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(Vp(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!Vp(e))return;const r=e[wr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),Qo(n,Hy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Dl(n,Hy))}removeNode(n,e,i){if(Vp(e)){this.scheduler?.notify();const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[wr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return Vp(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,Op,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Oy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[wr];if(e&&e.setForRemoval){if(n[wr]=CI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Hy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function sU(t){return new ue(3402,!1)}()}_flushAnimations(n,e){const i=new Fp,o=[],r=new Map,a=[],s=new Map,c=new Map,u=new Map,p=new Set;this.disabledNodes.forEach(at=>{p.add(at);const _t=this.driver.query(at,".ng-animate-queued",!0);for(let xt=0;xt<_t.length;xt++)p.add(_t[xt])});const g=this.bodyNode,b=Array.from(this.statesByElement.keys()),w=DI(b,this.collectedEnterElements),k=new Map;let T=0;w.forEach((at,_t)=>{const xt=Ey+T++;k.set(_t,xt),at.forEach(ii=>Qo(ii,xt))});const z=[],re=new Set,ae=new Set;for(let at=0;atre.add(ii)):ae.add(_t))}const Ue=new Map,tt=DI(b,Array.from(re));tt.forEach((at,_t)=>{const xt=Ip+T++;Ue.set(_t,xt),at.forEach(ii=>Qo(ii,xt))}),n.push(()=>{w.forEach((at,_t)=>{const xt=k.get(_t);at.forEach(ii=>Dl(ii,xt))}),tt.forEach((at,_t)=>{const xt=Ue.get(_t);at.forEach(ii=>Dl(ii,xt))}),z.forEach(at=>{this.processLeaveNode(at)})});const ft=[],zt=[];for(let at=this._namespaceList.length-1;at>=0;at--)this._namespaceList[at].drainQueuedTransitions(e).forEach(xt=>{const ii=xt.player,Nn=xt.element;if(ft.push(ii),this.collectedEnterElements.length){const to=Nn[wr];if(to&&to.setForMove){if(to.previousTriggersValues&&to.previousTriggersValues.has(xt.triggerName)){const gc=to.previousTriggersValues.get(xt.triggerName),rr=this.statesByElement.get(xt.element);if(rr&&rr.has(xt.triggerName)){const Og=rr.get(xt.triggerName);Og.value=gc,rr.set(xt.triggerName,Og)}}return void ii.destroy()}}const Yr=!g||!this.driver.containsElement(g,Nn),$o=Ue.get(Nn),Cs=k.get(Nn),Ki=this._buildInstruction(xt,i,Cs,$o,Yr);if(Ki.errors&&Ki.errors.length)return void zt.push(Ki);if(Yr)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);if(xt.isFallbackTransition)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);const qN=[];Ki.timelines.forEach(to=>{to.stretchStartingKeyframe=!0,this.disabledNodes.has(to.element)||qN.push(to)}),Ki.timelines=qN,i.append(Nn,Ki.timelines),a.push({instruction:Ki,player:ii,element:Nn}),Ki.queriedElements.forEach(to=>Bo(s,to,[]).push(ii)),Ki.preStyleProps.forEach((to,gc)=>{if(to.size){let rr=c.get(gc);rr||c.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))}}),Ki.postStyleProps.forEach((to,gc)=>{let rr=u.get(gc);rr||u.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))})});if(zt.length){const at=[];zt.forEach(_t=>{at.push(function cU(t,n){return new ue(3505,!1)}())}),ft.forEach(_t=>_t.destroy()),this.reportError(at)}const Ni=new Map,On=new Map;a.forEach(at=>{const _t=at.element;i.has(_t)&&(On.set(_t,_t),this._beforeAnimationBuild(at.player.namespaceId,at.instruction,Ni))}),o.forEach(at=>{const _t=at.element;this._getPreviousPlayers(_t,!1,at.namespaceId,at.triggerName,null).forEach(ii=>{Bo(Ni,_t,[]).push(ii),ii.destroy()})});const Pa=z.filter(at=>kI(at,c,u)),cd=new Map;xI(cd,this.driver,ae,u,ha).forEach(at=>{kI(at,c,u)&&Pa.push(at)});const fc=new Map;w.forEach((at,_t)=>{xI(fc,this.driver,new Set(at),c,"!")}),Pa.forEach(at=>{const _t=cd.get(at),xt=fc.get(at);cd.set(at,new Map([..._t?.entries()??[],...xt?.entries()??[]]))});const kw=[],$N=[],GN={};a.forEach(at=>{const{element:_t,player:xt,instruction:ii}=at;if(i.has(_t)){if(p.has(_t))return xt.onDestroy(()=>Vr(_t,ii.toStyles)),xt.disabled=!0,xt.overrideTotalTime(ii.totalTime),void o.push(xt);let Nn=GN;if(On.size>1){let $o=_t;const Cs=[];for(;$o=$o.parentNode;){const Ki=On.get($o);if(Ki){Nn=Ki;break}Cs.push($o)}Cs.forEach(Ki=>On.set(Ki,Nn))}const Yr=this._buildAnimation(xt.namespaceId,ii,Ni,r,fc,cd);if(xt.setRealPlayer(Yr),Nn===GN)kw.push(xt);else{const $o=this.playersByElement.get(Nn);$o&&$o.length&&(xt.parentPlayer=Xa($o)),o.push(xt)}}else Zs(_t,ii.fromStyles),xt.onDestroy(()=>Vr(_t,ii.toStyles)),$N.push(xt),p.has(_t)&&o.push(xt)}),$N.forEach(at=>{const _t=r.get(at.element);if(_t&&_t.length){const xt=Xa(_t);at.setRealPlayer(xt)}}),o.forEach(at=>{at.parentPlayer?at.syncPlayerEvents(at.parentPlayer):at.destroy()});for(let at=0;at!Yr.destroyed);Nn.length?a$(this,_t,Nn):this.processLeaveNode(_t)}return z.length=0,kw.forEach(at=>{this.players.push(at),at.onDone(()=>{at.destroy();const _t=this.players.indexOf(at);this.players.splice(_t,1)}),at.play()}),kw}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let a=[];if(e){const s=this.playersByQueriedElement.get(n);s&&(a=s)}else{const s=this.playersByElement.get(n);if(s){const c=!r||r==Su;s.forEach(u=>{u.queued||!c&&u.triggerName!=o||a.push(u)})}}return(i||o)&&(a=a.filter(s=>!(i&&i!=s.namespaceId||o&&o!=s.triggerName))),a}_beforeAnimationBuild(n,e,i){const r=e.element,a=e.isRemovalTransition?void 0:n,s=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const u=c.element,p=u!==r,g=Bo(i,u,[]);this._getPreviousPlayers(u,p,a,s,e.toState).forEach(w=>{const k=w.getRealPlayer();k.beforeDestroy&&k.beforeDestroy(),w.destroy(),g.push(w)})}Zs(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,a){const s=e.triggerName,c=e.element,u=[],p=new Set,g=new Set,b=e.timelines.map(k=>{const T=k.element;p.add(T);const z=T[wr];if(z&&z.removedBeforeQueried)return new wu(k.duration,k.delay);const re=T!==c,ae=function s$(t){const n=[];return SI(t,n),n}((i.get(T)||JU).map(Ni=>Ni.getRealPlayer())).filter(Ni=>!!Ni.element&&Ni.element===T),Ue=r.get(T),tt=a.get(T),ft=iI(this._normalizer,k.keyframes,Ue,tt),zt=this._buildPlayer(k,ft,ae);if(k.subTimeline&&o&&g.add(T),re){const Ni=new Gy(n,s,T);Ni.setRealPlayer(zt),u.push(Ni)}return zt});u.forEach(k=>{Bo(this.playersByQueriedElement,k.element,[]).push(k),k.onDone(()=>function n$(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,k.element,k))}),p.forEach(k=>Qo(k,cI));const w=Xa(b);return w.onDestroy(()=>{p.forEach(k=>Dl(k,cI)),Vr(c,e.toStyles)}),g.forEach(k=>{Bo(o,k,[]).push(w)}),w}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new wu(n.duration,n.delay)}}class Gy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new wu,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>xy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Bo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function Vp(t){return t&&1===t.nodeType}function wI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function xI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(wI(c)));const a=[];i.forEach((c,u)=>{const p=new Map;c.forEach(g=>{const b=n.computeStyle(u,g,o);p.set(g,b),(!b||0==b.length)&&(u[wr]=e$,a.push(u))}),t.set(u,p)});let s=0;return e.forEach(c=>wI(c,r[s++])),a}function DI(t,n){const e=new Map;if(t.forEach(s=>e.set(s,[])),0==n.length)return e;const o=new Set(n),r=new Map;function a(s){if(!s)return 1;let c=r.get(s);if(c)return c;const u=s.parentNode;return c=e.has(u)?u:o.has(u)?1:a(u),r.set(s,c),c}return n.forEach(s=>{const c=a(s);1!==c&&e.get(c).push(s)}),e}function Qo(t,n){t.classList?.add(n)}function Dl(t,n){t.classList?.remove(n)}function a$(t,n,e){Xa(e).onDone(()=>t.processLeaveNode(n))}function SI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class ku{constructor(n,e,i,o){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,a)=>{},this._transitionEngine=new i$(n.body,e,i,o),this._timelineEngine=new KU(n.body,e,i),this._transitionEngine.onRemovalComplete=(r,a)=>this.onRemovalComplete(r,a)}registerTrigger(n,e,i,o,r){const a=n+"-"+o;let s=this._triggerCache[a];if(!s){const c=[],p=Fy(this._driver,r,c,[]);if(c.length)throw function QH(t,n){return new ue(3404,!1)}();s=function $U(t,n,e){return new GU(t,n,e)}(o,p,this._normalizer),this._triggerCache[a]=s}this._transitionEngine.registerTrigger(e,o,s)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,a]=nI(i);this._timelineEngine.command(r,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[a,s]=nI(i);return this._timelineEngine.listen(a,e,s,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class Mu{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=Mu.initialStylesByElement.get(n);o||Mu.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Vr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Vr(this._element,this._initialStyles),this._endStyles&&(Vr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Mu.initialStylesByElement.delete(this._element),this._startStyles&&(Zs(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Zs(this._element,this._endStyles),this._endStyles=null),Vr(this._element,this._initialStyles),this._state=3)}}function qy(t){let n=null;return t.forEach((e,i)=>{(function d$(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class MI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Ny(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class TI{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return rI(n,e)}getParentElement(n){return ky(n)}query(n,e,i){return aI(n,e,i)}computeStyle(n,e,i){return Ny(n,e)}animate(n,e,i,o,r,a=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const u=new Map,p=a.filter(w=>w instanceof MI);(function CU(t,n){return 0===t||0===n})(i,o)&&p.forEach(w=>{w.currentSnapshot.forEach((k,T)=>u.set(T,k))});let g=function bU(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(w=>new Map(w));g=function wU(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,a)=>{i.has(a)||o.push(a),i.set(a,r)}),o.length)for(let r=1;ra.set(s,Ny(t,s)))}}return n}(n,g,u);const b=function l$(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=qy(n[0]),n.length>1&&(i=qy(n[n.length-1]))):n instanceof Map&&(e=qy(n)),e||i?new Mu(t,e,i):null}(n,g);return new MI(n,g,c,b)}}const II="@.disabled";class EI{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==II?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class u$ extends EI{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==II?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function h$(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),a="";return"@"!=r.charAt(0)&&([r,a]=function m$(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,a,s=>{this.factory.scheduleListenerCallback(s._data||-1,i,s)})}return this.delegate.listen(n,e,i)}}class p${constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const a=r?.parentNode(o);a&&r.removeChild(a,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const u=this._rendererCache;let p=u.get(o);return p||(p=new EI("",o,this.engine,()=>u.delete(o)),u.set(o,p)),p}const r=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);const s=u=>{Array.isArray(u)?u.forEach(s):this.engine.registerTrigger(r,a,n,u.name,u)};return e.data.animation.forEach(s),new u$(this,a,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[a,s]=r;a(s)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const OI=[{provide:Iy,useFactory:function g$(){return new uI}},{provide:ku,useClass:(()=>{class t extends ku{constructor(e,i,o){super(e,i,o,De(Ob,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(Ty),X(Iy))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})()},{provide:Ab,useFactory:function _$(t,n,e){return new p$(t,n,e)},deps:[fy,ku,We]}],Wy=[{provide:Ty,useFactory:()=>new TI},{provide:ui,useValue:"BrowserAnimations"},...OI],AI=[{provide:Ty,useClass:My},{provide:ui,useValue:"NoopAnimations"},...OI];let Ky,b$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?AI:Wy}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:Wy,imports:[Y2]})}return t})();try{Ky=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ky=!1}let Sl,ci=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?M2(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!Ky)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const PI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RI(){if(Sl)return Sl;if("object"!=typeof document||!document)return Sl=new Set(PI),Sl;let t=document.createElement("input");return Sl=new Set(PI.filter(n=>(t.setAttribute("type",n),t.type===n))),Sl}let Tu,zp,Qs,Zy;function Ja(t){return function v$(){if(null==Tu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Tu=!0}))}finally{Tu=Tu||!1}return Tu}()?t:!!t.capture}function NI(){if(null==Qs){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Qs=!1,Qs;if("scrollBehavior"in document.documentElement.style)Qs=!0;else{const t=Element.prototype.scrollTo;Qs=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Qs}function Iu(){if("object"!=typeof document||!document)return 0;if(null==zp){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),zp=0,0===t.scrollLeft&&(t.scrollLeft=1,zp=0===t.scrollLeft?1:2),t.remove()}return zp}function Hp(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function pa(t){return t.composedPath?t.composedPath()[0]:t.target}function Yy(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function FI(t){return t&&J(t.schedule)}function Qy(t){return t[t.length-1]}function LI(t){return J(Qy(t))?t.pop():void 0}function Eu(t){return FI(Qy(t))?t.pop():void 0}function es(t){return this instanceof es?(this.v=t,this):new es(t)}function zI(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function t0(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(a){return new Promise(function(s,c){!function o(r,a,s,c){Promise.resolve(c).then(function(u){r({value:u,done:s})},a)}(s,c,(a=t[r](a)).done,a.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const n0=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function HI(t){return J(t?.then)}function UI(t){return J(t[Pg])}function $I(t){return Symbol.asyncIterator&&J(t?.[Symbol.asyncIterator])}function GI(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const qI=function $$(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function WI(t){return J(t?.[qI])}function KI(t){return function jI(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(b){i[b]&&(o[b]=function(w){return new Promise(function(k,T){r.push([b,w,k,T])>1||s(b,w)})})}function s(b,w){try{!function c(b){b.value instanceof es?Promise.resolve(b.value.v).then(u,p):g(r[0][2],b)}(i[b](w))}catch(k){g(r[0][3],k)}}function u(b){s("next",b)}function p(b){s("throw",b)}function g(b,w){b(w),r.shift(),r.length&&s(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield es(e.read());if(o)return yield es(void 0);yield yield es(i)}}finally{e.releaseLock()}})}function ZI(t){return J(t?.getReader)}function Yn(t){if(t instanceof li)return t;if(null!=t){if(UI(t))return function G$(t){return new li(n=>{const e=t[Pg]();if(J(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(n0(t))return function q$(t){return new li(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,ht)})}(t);if($I(t))return YI(t);if(WI(t))return function K$(t){return new li(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(ZI(t))return function Z$(t){return YI(KI(t))}(t)}throw GI(t)}function YI(t){return new li(n=>{(function Y$(t,n){var e,i,o,r;return function BI(t,n,e,i){return new(e||(e=Promise))(function(r,a){function s(p){try{u(i.next(p))}catch(g){a(g)}}function c(p){try{u(i.throw(p))}catch(g){a(g)}}function u(p){p.done?r(p.value):function o(r){return r instanceof e?r:new e(function(a){a(r)})}(p.value).then(s,c)}u((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=zI(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function fa(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function QI(t,n=0){return $i((e,i)=>{e.subscribe(Fi(i,o=>fa(i,t,()=>i.next(o),n),()=>fa(i,t,()=>i.complete(),n),o=>fa(i,t,()=>i.error(o),n)))})}function XI(t,n=0){return $i((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function JI(t,n){if(!t)throw new Error("Iterable cannot be null");return new li(e=>{fa(e,n,()=>{const i=t[Symbol.asyncIterator]();fa(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Xi(t,n){return n?function iG(t,n){if(null!=t){if(UI(t))return function Q$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if(n0(t))return function J$(t,n){return new li(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(HI(t))return function X$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if($I(t))return JI(t,n);if(WI(t))return function eG(t,n){return new li(e=>{let i;return fa(e,n,()=>{i=t[qI](),fa(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(a){return void e.error(a)}r?e.complete():e.next(o)},0,!0)}),()=>J(i?.return)&&i.return()})}(t,n);if(ZI(t))return function tG(t,n){return JI(KI(t),n)}(t,n)}throw GI(t)}(t,n):Yn(t)}function Ke(...t){return Xi(t,Eu(t))}function An(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function qt(t,n,e){const i=J(t)||n||e?{next:t,error:n,complete:e}:t;return i?$i((o,r)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let s=!0;o.subscribe(Fi(r,c=>{var u;null===(u=i.next)||void 0===u||u.call(i,c),r.next(c)},()=>{var c;s=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var u;s=!1,null===(u=i.error)||void 0===u||u.call(i,c),r.error(c)},()=>{var c,u;s&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(u=i.finalize)||void 0===u||u.call(i)}))}):Ra}class gG extends de{constructor(n,e){super()}schedule(n,e=0){return this}}const qp={setInterval(t,n,...e){const{delegate:i}=qp;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=qp;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class a0 extends gG{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){var i;if(this.closed)return this;this.state=n;const o=this.id,r=this.scheduler;return null!=o&&(this.id=this.recycleAsyncId(r,o,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(r,this.id,e),this}requestAsyncId(n,e,i=0){return qp.setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&qp.clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(r){i=!0,o=r||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),o}unsubscribe(){if(!this.closed){const{id:n,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Z(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const s0={now:()=>(s0.delegate||Date).now(),delegate:void 0};class Au{constructor(n,e=Au.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Au.now=s0.now;class c0 extends Au{constructor(n,e=Au.now){super(n,e),this.actions=[],this._active=!1}flush(n){const{actions:e}=this;if(this._active)return void e.push(n);let i;this._active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this._active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Pu=new c0(a0),_G=Pu;function Wp(t,n=Pu){return $i((e,i)=>{let o=null,r=null,a=null;const s=()=>{if(o){o.unsubscribe(),o=null;const u=r;r=null,i.next(u)}};function c(){const u=a+t,p=n.now();if(p{r=u,a=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{s(),i.complete()},void 0,()=>{r=o=null}))})}function kt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>t.call(n,r,o++)&&i.next(r)))})}const jo=new li(t=>t.complete());function Pt(t){return t<=0?()=>jo:$i((n,e)=>{let i=0;n.subscribe(Fi(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function l0(t){return kt((n,e)=>t<=e)}function Ru(t,n=Ra){return t=t??vG,$i((e,i)=>{let o,r=!0;e.subscribe(Fi(i,a=>{const s=n(a);(r||!t(o,s))&&(r=!1,o=s,i.next(a))}))})}function vG(t,n){return t===n}function ot(t){return $i((n,e)=>{Yn(t).subscribe(Fi(e,()=>e.complete(),oi)),!e.closed&&n.subscribe(e)})}function $e(t){return null!=t&&"false"!=`${t}`}function yi(t,n=0){return eE(t)?Number(t):n}function eE(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function Kp(t){return Array.isArray(t)?t:[t]}function pn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _a(t){return t instanceof Be?t.nativeElement:t}let tE=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),CG=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=_a(e);return new li(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new qe,o=this._mutationObserverFactory.create(r=>i.next(r));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(tE))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),iE=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=yi(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new Ne,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(Wp(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(CG),_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[ge.None,"cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),Zp=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[tE]})}return t})();const{isArray:wG}=Array,{getPrototypeOf:xG,prototype:DG,keys:SG}=Object;function nE(t){if(1===t.length){const n=t[0];if(wG(n))return{args:n,keys:null};if(function kG(t){return t&&"object"==typeof t&&xG(t)===DG}(n)){const e=SG(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:MG}=Array;function d0(t){return nt(n=>function TG(t,n){return MG(n)?t(...n):t(n)}(t,n))}function oE(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function Xs(...t){const n=Eu(t),e=LI(t),{args:i,keys:o}=nE(t);if(0===i.length)return Xi([],n);const r=new li(function IG(t,n,e=Ra){return i=>{rE(n,()=>{const{length:o}=t,r=new Array(o);let a=o,s=o;for(let c=0;c{const u=Xi(t[c],n);let p=!1;u.subscribe(Fi(i,g=>{r[c]=g,p||(p=!0,s--),s||i.next(e(r.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,n,o?a=>oE(o,a):Ra));return e?r.pipe(d0(e)):r}function rE(t,n,e){t?fa(e,t,n):n()}function Pn(t,n,e=1/0){return J(n)?Pn((i,o)=>nt((r,a)=>n(i,r,o,a))(Yn(t(i,o))),e):("number"==typeof n&&(e=n),$i((i,o)=>function EG(t,n,e,i,o,r,a,s){const c=[];let u=0,p=0,g=!1;const b=()=>{g&&!c.length&&!u&&n.complete()},w=T=>u{r&&n.next(T),u++;let z=!1;Yn(e(T,p++)).subscribe(Fi(n,re=>{o?.(re),r?w(re):n.next(re)},()=>{z=!0},void 0,()=>{if(z)try{for(u--;c.length&&uk(re)):k(re)}b()}catch(re){n.error(re)}}))};return t.subscribe(Fi(n,w,()=>{g=!0,b()})),()=>{s?.()}}(i,o,t,e)))}function Ml(t=1/0){return Pn(Ra,t)}function Nu(...t){return function OG(){return Ml(1)}()(Xi(t,Eu(t)))}function an(...t){const n=Eu(t);return $i((e,i)=>{(n?Nu(t,e,n):Nu(t,e)).subscribe(i)})}const aE=new Set;let Js,AG=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):RG}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function PG(t,n){if(!aE.has(t))try{Js||(Js=document.createElement("style"),n&&(Js.nonce=n),Js.setAttribute("type","text/css"),document.head.appendChild(Js)),Js.sheet&&(Js.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(s_,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function RG(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let u0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new qe}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return sE(Kp(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=Xs(sE(Kp(e)).map(a=>this._registerQuery(a).observable));return r=Nu(r.pipe(Pt(1)),r.pipe(l0(1),Wp(0))),r.pipe(nt(a=>{const s={matches:!1,breakpoints:{}};return a.forEach(({matches:c,query:u})=>{s.matches=s.matches||c,s.breakpoints[u]=c}),s}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new li(a=>{const s=c=>this._zone.run(()=>a.next(c));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(an(i),nt(({matches:a})=>({query:e,matches:a})),ot(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(X(AG),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function Yp(t,n,e){const i=Qp(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))}function Tl(t,n,e){const o=Qp(t,n).filter(r=>r!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function Qp(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const lE="cdk-describedby-message",Xp="cdk-describedby-host";let h0=0,FG=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+h0++,this._document=e,this._id=De(wd)+"-"+h0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=m0(i,o);"string"!=typeof i?(dE(i,this._id),this._messageRegistry.set(r,{messageElement:i,referenceCount:0})):this._messageRegistry.has(r)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,r)||this._addMessageReference(e,r)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const r=m0(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const a=this._messageRegistry.get(r);a&&0===a.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${Xp}="${this._id}"]`);for(let i=0;i0!=o.indexOf(lE));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);Yp(e,"aria-describedby",o.messageElement.id),e.setAttribute(Xp,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,Tl(e,"aria-describedby",o.messageElement.id),e.removeAttribute(Xp)}_isElementDescribedByMessage(e,i){const o=Qp(e,"aria-describedby"),r=this._messageRegistry.get(i),a=r&&r.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),r=e.getAttribute("aria-label");return!(!o||r&&r.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function m0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function dE(t,n){t.id||(t.id=`${lE}-${n}-${h0++}`)}class uE{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new qe,this._typeaheadSubscription=de.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new qe,this.change=new qe,n instanceof oa&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(qt(e=>this._pressedLetters.push(e)),Wp(n),kt(()=>this._pressedLetters.length>0),nt(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof oa?this._items.toArray():this._items}}class hE extends uE{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Jp extends uE{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let Fu=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function BG(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function LG(t){try{return t.frameElement}catch{return null}}(function qG(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===pE(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=pE(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function $G(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function GG(t){return!function jG(t){return function HG(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function VG(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function zG(t){return function UG(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||mE(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function mE(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function pE(t){if(!mE(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class fE{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Pt(1)).subscribe(n)}}let ef=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new fE(e,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Fu),X(We),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function p0(t){return 0===t.buttons||0===t.detail}function f0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const WG=new se("cdk-input-modality-detector-options"),KG={ignoreKeys:[18,17,224,91,16]},Il=Ja({passive:!0,capture:!0});let ZG=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new pt(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(s=>s===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(p0(a)?"keyboard":"mouse"),this._mostRecentTarget=pa(a))},this._onTouchstart=a=>{f0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pa(a))},this._options={...KG,...r},this.modalityDetected=this._modality.pipe(l0(1)),this.modalityChanged=this.modalityDetected.pipe(Ru()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Il),o.addEventListener("mousedown",this._onMousedown,Il),o.addEventListener("touchstart",this._onTouchstart,Il)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Il),document.removeEventListener("mousedown",this._onMousedown,Il),document.removeEventListener("touchstart",this._onTouchstart,Il))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(ut),X(WG,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const YG=new se("liveAnnouncerElement",{providedIn:"root",factory:function QG(){return null}}),XG=new se("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let JG=0,g0=(()=>{class t{constructor(e,i,o,r){this._ngZone=i,this._defaultOptions=r,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[r,a]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",r),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let r=0;r .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,r,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new qe,this._rootNodeFocusAndBlurListener=s=>{for(let u=pa(s);u;u=u.parentElement)"focus"===s.type?this._onFocus(s,u):this._onBlur(s,u)},this._document=r,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=_a(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ke();const r=function C$(t){if(function y$(){if(null==Zy){const t=typeof document<"u"?document.head:null;Zy=!(!t||!t.createShadowRoot&&!t.attachShadow)}return Zy}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const s={checkChildren:i,subject:new qe,rootNode:r};return this._elementInfo.set(o,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(e){const i=_a(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=_a(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([s,c])=>this._originChanged(s,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=pa(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,tf)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(ot(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,tf),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new Ne}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(zo))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();const _E="cdk-high-contrast-black-on-white",bE="cdk-high-contrast-white-on-black",_0="cdk-high-contrast-active";let vE=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=De(u0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(_0,_E,bE),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(_0,_E):2===i&&e.add(_0,bE)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Zp]})}return t})();const iq=new se("cdk-dir-doc",{providedIn:"root",factory:function nq(){return De(ut)}}),oq=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let fn=(()=>{class t{constructor(e){this.value="ltr",this.change=new Ne,e&&(this.value=function rq(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?oq.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(X(iq,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lu=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const aq=["*",[["mat-option"],["ng-container"]]],sq=["*","mat-option, ng-container"],cq=["text"];function lq(t,n){if(1&t&&D(0,"mat-pseudo-checkbox",6),2&t){const e=C();f("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dq(t,n){1&t&&D(0,"mat-pseudo-checkbox",7),2&t&&f("disabled",C().disabled)}function uq(t,n){if(1&t&&(d(0,"span",8),h(1),l()),2&t){const e=C();m(),xe("(",e.group.label,")")}}const hq=[[["mat-icon"]],"*"],mq=["mat-icon","*"],fq=new se("mat-sanity-checks",{providedIn:"root",factory:function pq(){return!0}});let Mt=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!Yy()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE),X(fq,8),X(ut))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Lu,Lu]})}return t})();function jr(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=$e(n)}constructor(...n){super(...n),this._disabled=!1}}}function is(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function ns(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=$e(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function os(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?yi(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function v0(t){return class extends t{updateErrorState(){const n=this.errorState,r=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);r!==n&&(this.errorState=r,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}function gq(t){return class extends t{constructor(...n){super(...n),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new li(e=>{this._isInitialized?this._notifySubscriber(e):this._pendingSubscribers.push(e)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(n){n.next(),n.complete()}}}let nf=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class bq{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wE=Ja({passive:!0,capture:!0});class vq{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=pa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}addHandler(n,e,i,o){const r=this._events.get(e);if(r){const a=r.get(i);a?a.add(o):r.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wE)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const r=o.get(e);r&&(r.delete(i),0===r.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,wE)))}}const xE={enterDuration:225,exitDuration:150},DE=Ja({passive:!0,capture:!0}),SE=["mousedown","touchstart"],kE=["mouseup","mouseleave","touchend","touchcancel"];class Vu{static#e=this._eventManager=new vq;constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=_a(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...xE,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function Cq(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),s=n-o.left,c=e-o.top,u=r.enterDuration,p=document.createElement("div");p.classList.add("mat-ripple-element"),p.style.left=s-a+"px",p.style.top=c-a+"px",p.style.height=2*a+"px",p.style.width=2*a+"px",null!=i.color&&(p.style.backgroundColor=i.color),p.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(p);const g=window.getComputedStyle(p),w=g.transitionDuration,k="none"===g.transitionProperty||"0s"===w||"0s, 0s"===w||0===o.width&&0===o.height,T=new bq(this,p,i,k);p.style.transform="scale3d(1, 1, 1)",T.state=0,i.persistent||(this._mostRecentTransientRipple=T);let z=null;return!k&&(u||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const re=()=>this._finishRippleTransition(T),ae=()=>this._destroyRipple(T);p.addEventListener("transitionend",re),p.addEventListener("transitioncancel",ae),z={onTransitionEnd:re,onTransitionCancel:ae}}),this._activeRipples.set(T,z),(k||!u)&&this._finishRippleTransition(T),T}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...xE,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=_a(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,SE.forEach(i=>{Vu._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{kE.forEach(e=>{this._triggerElement.addEventListener(e,this,DE)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=p0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(SE.forEach(e=>Vu._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&kE.forEach(e=>n.removeEventListener(e,this,DE)))}}const El=new se("mat-ripple-global-options");let rs=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,r,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new Vu(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(ci),_(El,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-ripple-unbounded",o.unbounded)},inputs:{color:[ge.None,"matRippleColor","color"],unbounded:[ge.None,"matRippleUnbounded","unbounded"],centered:[ge.None,"matRippleCentered","centered"],radius:[ge.None,"matRippleRadius","radius"],animation:[ge.None,"matRippleAnimation","animation"],disabled:[ge.None,"matRippleDisabled","disabled"],trigger:[ge.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),as=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})(),wq=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static#e=this.\u0275fac=function(i){return new(i||t)(_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&et("mat-pseudo-checkbox-indeterminate","indeterminate"===o.state)("mat-pseudo-checkbox-checked","checked"===o.state)("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal","minimal"===o.appearance)("mat-pseudo-checkbox-full","full"===o.appearance)("_mat-animation-noopable","NoopAnimations"===o._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,o){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),ME=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt]})}return t})();const rf=new se("MAT_OPTION_PARENT_COMPONENT"),xq=jr(class{});let Dq=0,Sq=(()=>{class t extends xq{constructor(e){super(),this._labelId="mat-optgroup-label-"+Dq++,this._inert=e?.inertGroups??!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(rf,8))};static#t=this.\u0275dir=Q({type:t,inputs:{label:"label"},features:[ve]})}return t})();const af=new se("MatOptgroup");let TE=(()=>{class t extends Sq{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-mdc-optgroup"],hostVars:3,hostBindings:function(i,o){2&i&&Xe("role",o._inert?null:"group")("aria-disabled",o._inert?null:o.disabled.toString())("aria-labelledby",o._inert?null:o._labelId)},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[Ye([{provide:af,useExisting:t}]),ve],ngContentSelectors:sq,decls:5,vars:4,consts:[["role","presentation",1,"mat-mdc-optgroup-label",3,"id"],[1,"mdc-list-item__primary-text"]],template:function(i,o){1&i&&(Ut(aq),d(0,"span",0)(1,"span",1),h(2),Ze(3),l()(),Ze(4,1)),2&i&&(et("mdc-list-item--disabled",o.disabled),f("id",o._labelId),m(2),xe("",o.label," "))},styles:[".mat-mdc-optgroup{color:var(--mat-optgroup-label-text-color);font-family:var(--mat-optgroup-label-text-font);line-height:var(--mat-optgroup-label-text-line-height);font-size:var(--mat-optgroup-label-text-size);letter-spacing:var(--mat-optgroup-label-text-tracking);font-weight:var(--mat-optgroup-label-text-weight)}.mat-mdc-optgroup-label{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;min-height:48px}.mat-mdc-optgroup-label:focus{outline:none}[dir=rtl] .mat-mdc-optgroup-label,.mat-mdc-optgroup-label[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-optgroup-label.mdc-list-item--disabled{opacity:.38}.mat-mdc-optgroup-label .mdc-list-item__primary-text{font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;white-space:normal}"],encapsulation:2,changeDetection:0})}return t})(),kq=0;class IE{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Mq=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=$e(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,r){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+kq++,this.onSelectionChange=new Ne,this._stateChanges=new qe}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!An(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new IE(this,e))}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(cq,7),2&i){let r;Oe(r=Ae())&&(o._text=r.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}})}return t})(),Tn=(()=>{class t extends Mq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(rf,8),_(af,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&A("click",function(){return o._selectViaInteraction()})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),et("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},exportAs:["matOption"],features:[ve],ngContentSelectors:mq,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox","aria-hidden","true",3,"disabled","state",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","aria-hidden","true","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(i,o){1&i&&(Ut(hq),y(0,lq,1,2,"mat-pseudo-checkbox",0),Ze(1),d(2,"span",1,2),Ze(4,1),l(),y(5,dq,1,1,"mat-pseudo-checkbox",3)(6,uq,2,1,"span",4),D(7,"div",5)),2&i&&(f("ngIf",o.multiple),m(5),f("ngIf",!o.multiple&&o.selected&&!o.hideSingleSelectionIndicator),m(),f("ngIf",o.group&&o.group._inert),m(),f("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[rs,It,wq],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function EE(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}let sf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[as,Vn,Mt,ME]})}return t})();const AE={capture:!0},PE=["focus","click","mouseenter","touchstart"],y0="mat-ripple-loader-uninitialized",C0="mat-ripple-loader-class-name",RE="mat-ripple-loader-centered",cf="mat-ripple-loader-disabled";let NE=(()=>{class t{constructor(){this._document=De(ut,{optional:!0}),this._animationMode=De(ui,{optional:!0}),this._globalRippleOptions=De(El,{optional:!0}),this._platform=De(ci),this._ngZone=De(We),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const o=e.target.closest(`[${y0}]`);o&&this._createRipple(o)},this._ngZone.runOutsideAngular(()=>{for(const e of PE)this._document?.addEventListener(e,this._onInteraction,AE)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of PE)this._document?.removeEventListener(i,this._onInteraction,AE)}configureRipple(e,i){e.setAttribute(y0,""),(i.className||!e.hasAttribute(C0))&&e.setAttribute(C0,i.className||""),i.centered&&e.setAttribute(RE,""),i.disabled&&e.setAttribute(cf,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const o=this._hosts.get(e);o?o.disabled=i:i?e.setAttribute(cf,""):e.removeAttribute(cf)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const o=this._document.createElement("span");o.classList.add("mat-ripple",e.getAttribute(C0)),e.append(o);const r=new rs(new Be(o),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return r._isInitialized=!0,r.trigger=e,r.centered=e.hasAttribute(RE),r.disabled=e.hasAttribute(cf),this.attachRipple(e,r),r}attachRipple(e,i){e.removeAttribute(y0),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Tq=["*",[["mat-toolbar-row"]]],Iq=["*","mat-toolbar-row"],Eq=is(class{constructor(t){this._elementRef=t}});let Oq=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]})}return t})(),Aq=(()=>{class t extends Eq{constructor(e,i,o){super(e),this._platform=i,this._document=o}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(ut))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-toolbar"]],contentQueries:function(i,o,r){if(1&i&>(r,Oq,5),2&i){let a;Oe(a=Ae())&&(o._toolbarRows=a)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-toolbar-multiple-rows",o._toolbarRows.length>0)("mat-toolbar-single-row",0===o._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[ve],ngContentSelectors:Iq,decls:2,vars:0,template:function(i,o){1&i&&(Ut(Tq),Ze(0),Ze(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}return t})(),FE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();const LE=["mat-button",""],BE=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],VE=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],jE=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",Rq=["mat-icon-button",""],Nq=["*"],Fq=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Lq=is(jr(ns(class{constructor(t){this._elementRef=t}})));let w0=(()=>{class t extends Lq{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e),this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._updateRippleDisabled()}constructor(e,i,o,r){super(e),this._platform=i,this._ngZone=o,this._animationMode=r,this._focusMonitor=De(zo),this._rippleLoader=De(NE),this._isFab=!1,this._disableRipple=!1,this._disabled=!1,this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-button-ripple"});const a=e.nativeElement.classList;for(const s of Fq)this._hasHostAttributes(s.selector)&&s.mdcClasses.forEach(c=>{a.add(c)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Vq=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Yt=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),zE=(()=>{class t extends Vq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null)("tabindex",o.disabled?-1:o.tabIndex)("aria-disabled",o.disabled.toString()),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',jE],encapsulation:2,changeDetection:0})}return t})(),ba=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:Rq,ngContentSelectors:Nq,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(),D(0,"span",0),Ze(1),D(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',jE],encapsulation:2,changeDetection:0})}return t})(),lf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,as,Mt]})}return t})();function ju(t,n){const e=J(t)?t:()=>t,i=o=>o.error(e());return new li(n?o=>n.schedule(i,0,o):i)}function x0(...t){const n=LI(t),{args:e,keys:i}=nE(t),o=new li(r=>{const{length:a}=e;if(!a)return void r.complete();const s=new Array(a);let c=a,u=a;for(let p=0;p{g||(g=!0,u--),s[p]=b},()=>c--,void 0,()=>{(!c||!g)&&(u||r.next(i?oE(i,s):s),r.complete())}))}});return n?o.pipe(d0(n)):o}function Li(t){return $i((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Fi(e,void 0,void 0,a=>{r=Yn(t(a,Li(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function ec(t){return $i((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function HE(t={}){const{connector:n=(()=>new qe),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let a,s,c,u=0,p=!1,g=!1;const b=()=>{s?.unsubscribe(),s=void 0},w=()=>{b(),a=c=void 0,p=g=!1},k=()=>{const T=a;w(),T?.unsubscribe()};return $i((T,z)=>{u++,!g&&!p&&b();const re=c=c??n();z.add(()=>{u--,0===u&&!g&&!p&&(s=D0(k,o))}),re.subscribe(z),!a&&u>0&&(a=new Ds({next:ae=>re.next(ae),error:ae=>{g=!0,b(),s=D0(w,e,ae),re.error(ae)},complete:()=>{p=!0,b(),s=D0(w,i),re.complete()}}),Yn(T).subscribe(a))})(r)}}function D0(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ds({next:()=>{i.unsubscribe(),t()}});return Yn(n(...e)).subscribe(i)}function Ol(t,n){return J(n)?Pn(t,n,1):Pn(t,1)}function gn(t,n){return $i((e,i)=>{let o=null,r=0,a=!1;const s=()=>a&&!o&&i.complete();e.subscribe(Fi(i,c=>{o?.unsubscribe();let u=0;const p=r++;Yn(t(c,p)).subscribe(o=Fi(i,g=>i.next(n?n(c,g,p,u++):g),()=>{o=null,s()}))},()=>{a=!0,s()}))})}class df{}class uf{}class Jo{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(a):this.headers.set(r,[a])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Jo?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Jo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Jo?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let a=this.headers.get(e);if(!a)return;a=a.filter(s=>-1===r.indexOf(s)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class zq{encodeKey(n){return UE(n)}encodeValue(n){return UE(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const Uq=/%(\d[a-f0-9])/gi,$q={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function UE(t){return encodeURIComponent(t).replace(Uq,(n,e)=>$q[e]??n)}function hf(t){return`${t}`}class ss{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new zq,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Hq(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[a,s]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(a)||[];c.push(s),e.set(a,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(hf):[hf(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ss({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(hf(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(hf(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class Gq{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function $E(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function GE(t){return typeof Blob<"u"&&t instanceof Blob}function qE(t){return typeof FormData<"u"&&t instanceof FormData}class zu{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function qq(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Jo,this.context??=new Gq,this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":sg.set(b,n.setHeaders[b]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,b)=>g.set(b,n.setParams[b]),u)),new zu(e,i,r,{params:u,headers:c,context:p,reportProgress:s,responseType:o,withCredentials:a})}}var cs=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(cs||{});class S0{constructor(n,e=Hu.Ok,i="OK"){this.headers=n.headers||new Jo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class mf extends S0{constructor(n={}){super(n),this.type=cs.ResponseHeader}clone(n={}){return new mf({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class tc extends S0{constructor(n={}){super(n),this.type=cs.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new tc({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Al extends S0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var Hu=function(t){return t[t.Continue=100]="Continue",t[t.SwitchingProtocols=101]="SwitchingProtocols",t[t.Processing=102]="Processing",t[t.EarlyHints=103]="EarlyHints",t[t.Ok=200]="Ok",t[t.Created=201]="Created",t[t.Accepted=202]="Accepted",t[t.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",t[t.NoContent=204]="NoContent",t[t.ResetContent=205]="ResetContent",t[t.PartialContent=206]="PartialContent",t[t.MultiStatus=207]="MultiStatus",t[t.AlreadyReported=208]="AlreadyReported",t[t.ImUsed=226]="ImUsed",t[t.MultipleChoices=300]="MultipleChoices",t[t.MovedPermanently=301]="MovedPermanently",t[t.Found=302]="Found",t[t.SeeOther=303]="SeeOther",t[t.NotModified=304]="NotModified",t[t.UseProxy=305]="UseProxy",t[t.Unused=306]="Unused",t[t.TemporaryRedirect=307]="TemporaryRedirect",t[t.PermanentRedirect=308]="PermanentRedirect",t[t.BadRequest=400]="BadRequest",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Gone=410]="Gone",t[t.LengthRequired=411]="LengthRequired",t[t.PreconditionFailed=412]="PreconditionFailed",t[t.PayloadTooLarge=413]="PayloadTooLarge",t[t.UriTooLong=414]="UriTooLong",t[t.UnsupportedMediaType=415]="UnsupportedMediaType",t[t.RangeNotSatisfiable=416]="RangeNotSatisfiable",t[t.ExpectationFailed=417]="ExpectationFailed",t[t.ImATeapot=418]="ImATeapot",t[t.MisdirectedRequest=421]="MisdirectedRequest",t[t.UnprocessableEntity=422]="UnprocessableEntity",t[t.Locked=423]="Locked",t[t.FailedDependency=424]="FailedDependency",t[t.TooEarly=425]="TooEarly",t[t.UpgradeRequired=426]="UpgradeRequired",t[t.PreconditionRequired=428]="PreconditionRequired",t[t.TooManyRequests=429]="TooManyRequests",t[t.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",t[t.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",t[t.InternalServerError=500]="InternalServerError",t[t.NotImplemented=501]="NotImplemented",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t[t.HttpVersionNotSupported=505]="HttpVersionNotSupported",t[t.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",t[t.InsufficientStorage=507]="InsufficientStorage",t[t.LoopDetected=508]="LoopDetected",t[t.NotExtended=510]="NotExtended",t[t.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",t}(Hu||{});function k0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let pf=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof zu)r=e;else{let c,u;c=o.headers instanceof Jo?o.headers:new Jo(o.headers),o.params&&(u=o.params instanceof ss?o.params:new ss({fromObject:o.params})),r=new zu(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const a=Ke(r).pipe(Ol(c=>this.handler.handle(c)));if(e instanceof zu||"events"===o.observe)return a;const s=a.pipe(kt(c=>c instanceof tc));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return s.pipe(nt(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return s.pipe(nt(c=>c.body))}case"response":return s;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ss).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,k0(o,i))}post(e,i,o={}){return this.request("POST",e,k0(o,i))}put(e,i,o={}){return this.request("PUT",e,k0(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(df))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function KE(t,n){return n(t)}function Xq(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const ZE=new se(""),Uu=new se(""),YE=new se(""),QE=new se("");function eW(){let t=null;return(n,e)=>{null===t&&(t=(De(ZE,{optional:!0})??[]).reduceRight(Xq,KE));const i=De(Vs),o=i.add();return t(n,e).pipe(ec(()=>i.remove(o)))}}let XE=(()=>{class t extends df{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=De(Vs);const o=De(QE,{optional:!0});this.backend=o??e}handle(e){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Uu),...this.injector.get(YE,[])]));this.chain=o.reduceRight((r,a)=>function Jq(t,n,e){return(i,o)=>Ha(e,()=>n(i,r=>t(r,o)))}(r,a,this.injector),KE)}const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(ec(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||t)(X(uf),X(Ao))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const rW=/^\)\]\}',?\n/;let eO=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ue(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?Xi(i.\u0275loadImpl()):Ke(null)).pipe(gn(()=>new li(r=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((T,z)=>a.setRequestHeader(T,z.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const T=e.detectContentTypeHeader();null!==T&&a.setRequestHeader("Content-Type",T)}if(e.responseType){const T=e.responseType.toLowerCase();a.responseType="json"!==T?T:"text"}const s=e.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const T=a.statusText||"OK",z=new Jo(a.getAllResponseHeaders()),re=function aW(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return c=new mf({headers:z,status:a.status,statusText:T,url:re}),c},p=()=>{let{headers:T,status:z,statusText:re,url:ae}=u(),Ue=null;z!==Hu.NoContent&&(Ue=typeof a.response>"u"?a.responseText:a.response),0===z&&(z=Ue?Hu.Ok:0);let tt=z>=200&&z<300;if("json"===e.responseType&&"string"==typeof Ue){const ft=Ue;Ue=Ue.replace(rW,"");try{Ue=""!==Ue?JSON.parse(Ue):null}catch(zt){Ue=ft,tt&&(tt=!1,Ue={error:zt,text:Ue})}}tt?(r.next(new tc({body:Ue,headers:T,status:z,statusText:re,url:ae||void 0})),r.complete()):r.error(new Al({error:Ue,headers:T,status:z,statusText:re,url:ae||void 0}))},g=T=>{const{url:z}=u(),re=new Al({error:T,status:a.status||0,statusText:a.statusText||"Unknown Error",url:z||void 0});r.error(re)};let b=!1;const w=T=>{b||(r.next(u()),b=!0);let z={type:cs.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),"text"===e.responseType&&a.responseText&&(z.partialText=a.responseText),r.next(z)},k=T=>{let z={type:cs.UploadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),r.next(z)};return a.addEventListener("load",p),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),e.reportProgress&&(a.addEventListener("progress",w),null!==s&&a.upload&&a.upload.addEventListener("progress",k)),a.send(s),r.next({type:cs.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",p),a.removeEventListener("timeout",g),e.reportProgress&&(a.removeEventListener("progress",w),null!==s&&a.upload&&a.upload.removeEventListener("progress",k)),a.readyState!==a.DONE&&a.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||t)(X(I2))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const I0=new se(""),tO=new se("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),iO=new se("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class nO{}let lW=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=f2(e,this.cookieName),this.lastCookieString=e),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ra),X(tO))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function dW(t,n){const e=t.url.toLowerCase();if(!De(I0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=De(nO).getToken(),o=De(iO);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var ls=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(ls||{});function uW(...t){const n=[pf,eO,XE,{provide:df,useExisting:XE},{provide:uf,useExisting:eO},{provide:Uu,useValue:dW,multi:!0},{provide:I0,useValue:!0},{provide:nO,useClass:lW}];for(const e of t)n.push(...e.\u0275providers);return function Qh(t){return{\u0275providers:t}}(n)}const oO=new se("");function hW(){return function ic(t,n){return{\u0275kind:t,\u0275providers:n}}(ls.LegacyInterceptors,[{provide:oO,useFactory:eW},{provide:Uu,useExisting:oO,multi:!0}])}let mW=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[uW(hW())]})}return t})();const vW=["*"];let gf;function $u(t){return function yW(){if(void 0===gf&&(gf=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gf=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gf}()?.createHTML(t)||t}function uO(t){return Error(`Unable to find icon with the name "${t}"`)}function hO(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function mO(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class nc{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let _f=(()=>{class t{constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,r){return this._addSvgIconConfig(e,i,new nc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const a=this._sanitizer.sanitize(Bn.HTML,o);if(!a)throw mO(o);const s=$u(a);return this._addSvgIconConfig(e,i,new nc("",s,r))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new nc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(Bn.HTML,i);if(!r)throw mO(i);const a=$u(r);return this._addSvgIconSetConfig(e,new nc("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(Bn.RESOURCE_URL,e);if(!i)throw hO(e);const o=this._cachedIconsByUrl.get(i);return o?Ke(bf(o)):this._loadSvgIconFromConfig(new nc(e,null)).pipe(qt(r=>this._cachedIconsByUrl.set(i,r)),nt(r=>bf(r)))}getNamedSvgIcon(e,i=""){const o=pO(i,e);let r=this._svgIconConfigs.get(o);if(r)return this._getSvgFromConfig(r);if(r=this._getIconConfigFromResolvers(i,e),r)return this._svgIconConfigs.set(o,r),this._getSvgFromConfig(r);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):ju(uO(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ke(bf(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(nt(i=>bf(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ke(o):x0(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Li(s=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(Bn.RESOURCE_URL,a.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(u)),Ke(null)})))).pipe(nt(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw uO(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const r=i[o];if(r.svgText&&r.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(r),s=this._extractSvgIconFromSet(a,e,r.options);if(s)return s}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(qt(i=>e.svgText=i),nt(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ke(null):this._fetchIcon(e).pipe(qt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const a=r.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const s=this._svgElementFromString($u(""));return s.appendChild(a),this._setSvgAttributes(s,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString($u("")),o=e.attributes;for(let r=0;r$u(u)),ec(()=>this._inProgressUrlFetches.delete(a)),HE());return this._inProgressUrlFetches.set(a,c),c}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(pO(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),fO=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],TW=fO.map(t=>`[${t}]`).join(", "),IW=/^url\(['"]?#(.*?)['"]?\)$/;let Mi=(()=>{class t extends DW{get inline(){return this._inline}set inline(e){this._inline=$e(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,r,a,s){super(e),this._iconRegistry=i,this._location=r,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=de.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,r)=>{o.forEach(a=>{r.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(TW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const s=i[r],c=s.getAttribute(a),u=c?c.match(IW):null;if(u){let p=o.get(s);p||(p=[],o.set(s,p)),p.push({name:a,value:u[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Pt(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(_f),oo("aria-hidden"),_(kW),_(Go),_(SW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("data-mat-icon-type",o._usingFontIcon()?"font":"svg")("data-mat-icon-name",o._svgName||o.fontIcon)("data-mat-icon-namespace",o._svgNamespace||o.fontSet)("fontIcon",o._usingFontIcon()?o.fontIcon:null),et("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[ve],ngContentSelectors:vW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),gO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();const EW=["*"],PW=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],RW=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],NW=new se("MAT_CARD_CONFIG");let Gu=(()=>{class t{constructor(e){this.appearance=e?.appearance||"raised"}static#e=this.\u0275fac=function(i){return new(i||t)(_(NW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-card-outlined","outlined"===o.appearance)("mdc-card--outlined","outlined"===o.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:EW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation);--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})(),E0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return t})(),O0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return t})(),_O=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:RW,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,o){1&i&&(Ut(PW),Ze(0),d(1,"div",0),Ze(2,1),l(),Ze(3,2))},encapsulation:2,changeDetection:0})}return t})(),bO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,Mt]})}return t})();const VW=new se("MAT_PROGRESS_BAR_DEFAULT_OPTIONS"),zW=is(class{constructor(t){this._elementRef=t}},"primary");let vO=(()=>{class t extends zW{constructor(e,i,o,r,a){super(e),this._ngZone=i,this._changeDetectorRef=o,this._animationMode=r,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new Ne,this._mode="determinate",this._transitionendHandler=s=>{0===this.animationEnd.observers.length||!s.target||!s.target.classList.contains("mdc-linear-progress__primary-bar")||("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))},this._isNoopAnimation="NoopAnimations"===r,a&&(a.color&&(this.color=this.defaultColor=a.color),this.mode=a.mode||this.mode)}get value(){return this._value}set value(e){this._value=yO(yi(e)),this._changeDetectorRef.markForCheck()}get bufferValue(){return this._bufferValue||0}set bufferValue(e){this._bufferValue=yO(yi(e)),this._changeDetectorRef.markForCheck()}get mode(){return this._mode}set mode(e){this._mode=e,this._changeDetectorRef.markForCheck()}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._transitionendHandler)})}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._transitionendHandler)}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${"buffer"===this.mode?this.bufferValue:100}%`}_isIndeterminate(){return"indeterminate"===this.mode||"query"===this.mode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(Lt),_(ui,8),_(VW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("aria-valuenow",o._isIndeterminate()?null:o.value)("mode",o.mode),et("_mat-animation-noopable",o._isNoopAnimation)("mdc-linear-progress--animation-ready",!o._isNoopAnimation)("mdc-linear-progress--indeterminate",o._isIndeterminate()))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[ve],decls:7,vars:4,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"div",1)(2,"div",2),l(),d(3,"div",3),D(4,"span",4),l(),d(5,"div",5),D(6,"span",4),l()),2&i&&(m(),Sn("flex-basis",o._getBufferBarFlexBasis()),m(2),Sn("transform",o._getPrimaryBarTransform()))},styles:["@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}"],encapsulation:2,changeDetection:0})}return t})();function yO(t,n=0,e=100){return Math.max(n,Math.min(e,t))}let CO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt]})}return t})();function Ri(...t){const n=Eu(t),e=function w$(t,n){return"number"==typeof Qy(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Yn(i[0]):Ml(e)(Xi(i,n)):jo}let wO=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=$e(e)}get inset(){return this._inset}set inset(e){this._inset=$e(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("aria-orientation",o.vertical?"vertical":"horizontal"),et("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,o){},styles:[".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),A0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();function P0(){return $i((t,n)=>{let e=null;t._refCount++;const i=Fi(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class R0 extends li{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Ow(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new de;const e=this.getSubject();n.add(this.source.subscribe(Fi(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=de.EMPTY)}return n}refCount(){return P0()(this)}}function Pl(t){return!!t&&(t instanceof li||J(t.lift)&&J(t.subscribe))}class vf{}function yf(t){return t&&"function"==typeof t.connect&&!(t instanceof R0)}class xO{applyChanges(n,e,i,o,r){n.forEachOperation((a,s,c)=>{let u,p;if(null==a.previousIndex){const g=i(a,s,c);u=e.createEmbeddedView(g.templateRef,g.context,g.index),p=1}else null==c?(e.remove(s),p=3):(u=e.get(s),e.move(u,c),p=2);r&&r({context:u?.context,operation:p,record:a})})}detach(){}}class qu{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new qe,e&&e.length&&(n?e.forEach(r=>this._markSelected(r)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(r)).forEach(r=>this._unmarkSelected(r));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}let N0=(()=>{class t{constructor(){this._listeners=[]}notify(e,i){for(let o of this._listeners)o(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Wu=new se("_ViewRepeater");let SO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be))};static#t=this.\u0275dir=Q({type:t})}return t})(),oc=(()=>{class t extends SO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const uo=new se(""),UW={provide:uo,useExisting:Qt(()=>Ci),multi:!0},GW=new se("");let Ci=(()=>{class t extends SO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function $W(){const t=Qa()?Qa().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be),_(GW,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o._handleInput(a.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(a){return o._compositionEnd(a.target.value)})},features:[Ye([UW]),ve]})}return t})();function ds(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function MO(t){return null!=t&&"number"==typeof t.length}const jn=new se(""),us=new se(""),qW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ee{static min(n){return function TO(t){return n=>{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return EO(n)}static requiredTrue(n){return function OO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function AO(t){return ds(t.value)||qW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return PO(n)}static maxLength(n){return RO(n)}static pattern(n){return NO(n)}static nullValidator(n){return null}static compose(n){return zO(n)}static composeAsync(n){return HO(n)}}function EO(t){return ds(t.value)?{required:!0}:null}function PO(t){return n=>ds(n.value)||!MO(n.value)?null:n.value.lengthMO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function NO(t){if(!t)return Cf;let n,e;return"string"==typeof t?(e="","^"!==t.charAt(0)&&(e+="^"),e+=t,"$"!==t.charAt(t.length-1)&&(e+="$"),n=new RegExp(e)):(e=t.toString(),n=t),i=>{if(ds(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}function Cf(t){return null}function FO(t){return null!=t}function LO(t){return pu(t)?Xi(t):t}function BO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function VO(t,n){return n.map(e=>e(t))}function jO(t){return t.map(n=>function WW(t){return!t.validate}(n)?n:e=>n.validate(e))}function zO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return BO(VO(e,n))}}function F0(t){return null!=t?zO(jO(t)):null}function HO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return x0(VO(e,n).map(LO)).pipe(nt(BO))}}function L0(t){return null!=t?HO(jO(t)):null}function UO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function $O(t){return t._rawValidators}function GO(t){return t._rawAsyncValidators}function B0(t){return t?Array.isArray(t)?t:[t]:[]}function wf(t,n){return Array.isArray(t)?t.includes(n):t===n}function qO(t,n){const e=B0(n);return B0(t).forEach(o=>{wf(e,o)||e.push(o)}),e}function WO(t,n){return B0(n).filter(e=>!wf(t,e))}class KO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=F0(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=L0(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class ho extends KO{get formDirective(){return null}get path(){return null}}class xr extends KO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class ZO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let _i=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr,2))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[ve]})}return t})(),Bi=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[ve]})}return t})();const Ku="VALID",Df="INVALID",Rl="PENDING",Zu="DISABLED";function z0(t){return(Sf(t)?t.validators:t)||null}function H0(t,n){return(Sf(n)?n.asyncValidators:t)||null}function Sf(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function QO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new ue(1e3,"");if(!i[e])throw new ue(1001,"")}function XO(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new ue(1002,"")})}class kf{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ku}get invalid(){return this.status===Df}get pending(){return this.status==Rl}get disabled(){return this.status===Zu}get enabled(){return this.status!==Zu}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(qO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(qO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(WO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(WO(n,this._rawAsyncValidators))}hasValidator(n){return wf(this._rawValidators,n)}hasAsyncValidator(n){return wf(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Rl,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zu,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Ku,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ku||this.status===Rl)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zu:Ku}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Rl,this._hasOwnPendingAsyncValidator=!0;const e=LO(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?Zu:this.errors?Df:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Rl)?Rl:this._anyControlsHaveStatus(Df)?Df:Ku}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Sf(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function QW(t){return Array.isArray(t)?F0(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function XW(t){return Array.isArray(t)?L0(t):t||null}(this._rawAsyncValidators)}}class ti extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){XO(this,0,n),Object.keys(n).forEach(i=>{QO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class JO extends ti{}const rc=new se("CallSetDisabledState",{providedIn:"root",factory:()=>Yu}),Yu="always";function Mf(t,n){return[...n.path,t]}function Qu(t,n,e=Yu){U0(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function eK(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&eA(t,n)})}(t,n),function iK(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function tK(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&eA(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function JW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Tf(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Ef(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function If(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function U0(t,n){const e=$O(t);null!==n.validator?t.setValidators(UO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=GO(t);null!==n.asyncValidator?t.setAsyncValidators(UO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();If(n._rawValidators,o),If(n._rawAsyncValidators,o)}function Ef(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=$O(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=GO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return If(n._rawValidators,i),If(n._rawAsyncValidators,i),e}function eA(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function tA(t,n){U0(t,n)}function G0(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function iA(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function q0(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Ci?e=r:function rK(t){return Object.getPrototypeOf(t.constructor)===oc}(r)?i=r:o=r}),o||i||e||null}const sK={provide:ho,useExisting:Qt(()=>hs)},Xu=Promise.resolve();let hs=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new ti({},F0(e),L0(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Xu.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Qu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path),o=new ti({});tA(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Xu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,iA(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{options:[ge.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([sK]),ve]})}return t})();function nA(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function oA(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const U=class extends kf{constructor(n=null,e,i){super(z0(e),H0(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Sf(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=oA(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){nA(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){nA(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){oA(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let rA=(()=>{class t extends ho{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const dK={provide:xr,useExisting:Qt(()=>Nl)},sA=Promise.resolve();let Nl=(()=>{class t extends xr{constructor(e,i,o,r,a,s){super(),this._changeDetectorRef=a,this.callSetDisabledState=s,this.control=new U,this._registered=!1,this.name="",this.update=new Ne,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),G0(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Qu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){sA.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Cl(i);sA.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Mf(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,9),_(jn,10),_(us,10),_(uo,10),_(Lt,8),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"],options:[ge.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ye([dK]),ve,fi]})}return t})(),_n=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const uK={provide:uo,useExisting:Qt(()=>W0),multi:!0};let W0=(()=>{class t extends oc{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o.onChange(a.target.value)})("blur",function(){return o.onTouched()})},features:[Ye([uK]),ve]})}return t})();const K0=new se(""),fK={provide:xr,useExisting:Qt(()=>Fl)};let Fl=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=a,this.update=new Ne,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=q0(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&Tf(i,this,!1),Qu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}G0(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Tf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(uo,10),_(K0,8),_(rc,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControl",""]],inputs:{form:[ge.None,"formControl","form"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[Ye([fK]),ve,fi]})}return t})();const gK={provide:ho,useExisting:Qt(()=>wi)};let wi=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ne,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ef(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Qu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tf(e.control||null,e,!1),function aK(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,iA(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tf(i||null,e),(t=>t instanceof U)(o)&&(Qu(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);tA(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function nK(t,n){return Ef(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){U0(this.form,this),this._oldForm&&Ef(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{form:[ge.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([gK]),ve,fi]})}return t})();const _K={provide:ho,useExisting:Qt(()=>Ju)};let Ju=(()=>{class t extends rA{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""]],inputs:{name:[ge.None,"formGroupName","name"]},features:[Ye([_K]),ve]})}return t})();const bK={provide:ho,useExisting:Qt(()=>eh)};let eh=(()=>{class t extends ho{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formArrayName",""]],inputs:{name:[ge.None,"formArrayName","name"]},features:[Ye([bK]),ve]})}return t})();function dA(t){return!(t instanceof Ju||t instanceof wi||t instanceof eh)}const vK={provide:xr,useExisting:Qt(()=>zi)};let zi=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new Ne,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){this._added||this._setUpControl(),G0(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10),_(uo,10),_(K0,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""]],inputs:{name:[ge.None,"formControlName","name"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[Ye([vK]),ve,fi]})}return t})();function mA(t){return"number"==typeof t?t:parseInt(t,10)}let ac=(()=>{class t{constructor(){this._validator=Cf}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Cf,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();const TK={provide:jn,useExisting:Qt(()=>Do),multi:!0};let Do=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Cl,this.createValidator=e=>EO}enabled(e){return e}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ye([TK]),ve]})}return t})();const OK={provide:jn,useExisting:Qt(()=>X0),multi:!0};let X0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>PO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("minlength",o._enabled?o.minlength:null)},inputs:{minlength:"minlength"},features:[Ye([OK]),ve]})}return t})();const AK={provide:jn,useExisting:Qt(()=>J0),multi:!0};let J0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>RO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ye([AK]),ve]})}return t})();const PK={provide:jn,useExisting:Qt(()=>eC),multi:!0};let eC=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=e=>e,this.createValidator=e=>NO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ye([PK]),ve]})}return t})(),bA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();class vA extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){XO(this,0,n),n.forEach((i,o)=>{QO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function yA(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let Dr=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return yA(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ti(o,r)}record(e,i=null){const o=this._reduceControls(e);return new JO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(yA(i)?r=i:(r.validators=i,r.asyncValidators=o),new U(e,{...r,nonNullable:!0})):new U(e,i,o)}array(e,i,o){const r=e.map(a=>this._createControl(a));return new vA(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof U||e instanceof kf?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),RK=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[bA]})}return t})(),CA=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:K0,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[bA]})}return t})(),kA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Zp,Vn,Mt,as,ME,A0]})}return t})();class dZ extends qe{constructor(n=1/0,e=1/0,i=s0){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:a}=this;e||(i.push(n),!o&&i.push(r.now()+a)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let a=0;athis._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new li(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(kt(e=>e.some(i=>i.target===n)),function uZ(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,HE({connector:()=>new dZ(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}({bufferSize:1,refCount:!0}),ot(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let mZ=(()=>{class t{constructor(){this._observers=new Map,this._ngZone=De(We)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new hZ(o)),this._observers.get(o).observe(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pZ=["notch"],fZ=["matFormFieldNotchedOutline",""],gZ=["*"],_Z=["textField"],bZ=["iconPrefixContainer"],vZ=["textPrefixContainer"];function yZ(t,n){1&t&&D(0,"span",19)}function CZ(t,n){if(1&t&&(d(0,"label",17),Ze(1,1),y(2,yZ,1,0,"span",18),l()),2&t){const e=C(2);f("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Xe("for",e._control.id),m(2),f("ngIf",!e.hideRequiredMarker&&e._control.required)}}function wZ(t,n){1&t&&y(0,CZ,3,5,"label",16),2&t&&f("ngIf",C()._hasFloatingLabel())}function xZ(t,n){1&t&&D(0,"div",20)}function DZ(t,n){}function SZ(t,n){1&t&&y(0,DZ,0,0,"ng-template",22),2&t&&(C(2),f("ngTemplateOutlet",Ft(1)))}function kZ(t,n){if(1&t&&(d(0,"div",21),y(1,SZ,1,1,"ng-template",9),l()),2&t){const e=C();f("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),m(),f("ngIf",!e._forceDisplayInfixLabel())}}function MZ(t,n){1&t&&(d(0,"div",23,24),Ze(2,2),l())}function TZ(t,n){1&t&&(d(0,"div",25,26),Ze(2,3),l())}function IZ(t,n){}function EZ(t,n){1&t&&y(0,IZ,0,0,"ng-template",22),2&t&&(C(),f("ngTemplateOutlet",Ft(1)))}function OZ(t,n){1&t&&(d(0,"div",27),Ze(1,4),l())}function AZ(t,n){1&t&&(d(0,"div",28),Ze(1,5),l())}function PZ(t,n){1&t&&D(0,"div",29)}function RZ(t,n){1&t&&(d(0,"div",30),Ze(1,6),l()),2&t&&f("@transitionMessages",C()._subscriptAnimationState)}function NZ(t,n){if(1&t&&(d(0,"mat-hint",34),h(1),l()),2&t){const e=C(2);f("id",e._hintLabelId),m(),Pe(e.hintLabel)}}function FZ(t,n){if(1&t&&(d(0,"div",31),y(1,NZ,2,2,"mat-hint",32),Ze(2,7),D(3,"div",33),Ze(4,8),l()),2&t){const e=C();f("@transitionMessages",e._subscriptAnimationState),m(),f("ngIf",e.hintLabel)}}const LZ=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],BZ=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let xi=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-label"]]})}return t})(),VZ=0;const MA=new se("MatError");let iC=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+VZ++,e||i.nativeElement.setAttribute("aria-live","polite")}static#e=this.\u0275fac=function(i){return new(i||t)(oo("aria-live"),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},features:[Ye([{provide:MA,useExisting:t}])]})}return t})(),jZ=0,sc=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+jZ++}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("align",null),et("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const zZ=new se("MatPrefix"),TA=new se("MatSuffix");let nC=(()=>{class t{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[ge.None,"matTextSuffix","_isTextSelector"]},features:[Ye([{provide:TA,useExisting:t}])]})}return t})();const IA=new se("FloatingLabelParent");let EA=(()=>{class t{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=De(mZ),this._ngZone=De(We),this._parent=De(IA),this._resizeSubscription=new de}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function HZ(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const OA="mdc-line-ripple--active",Of="mdc-line-ripple--deactivating";let AA=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const r=this._elementRef.nativeElement.classList,a=r.contains(Of);"opacity"===o.propertyName&&a&&r.remove(OA,Of)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Of),e.add(OA)}deactivate(){this._elementRef.nativeElement.classList.add(Of)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PA=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&vt(pZ,5),2&i){let r;Oe(r=Ae())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-notched-outline--notched",o.open)},inputs:{open:[ge.None,"matFormFieldNotchedOutlineOpen","open"]},attrs:fZ,ngContentSelectors:gZ,decls:5,vars:0,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],["notch",""],[1,"mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Ut(),D(0,"div",0),d(1,"div",1,2),Ze(3),l(),D(4,"div",3))},encapsulation:2,changeDetection:0})}return t})();const UZ={transitionMessages:Lo("transitionMessages",[mn("enter",Zt({opacity:1,transform:"translateY(0%)"})),Qi("void => enter",[Zt({opacity:0,transform:"translateY(-5px)"}),Yi("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let Af=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t})}return t})();const th=new se("MatFormField"),$Z=new se("MAT_FORM_FIELD_DEFAULT_OPTIONS");let RA=0,Di=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=$e(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=r,this._platform=a,this._defaults=s,this._animationMode=c,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+RA++,this._hintLabelId="mat-mdc-hint-"+RA++,this._subscriptAnimationState="",this._destroyed=new qe,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,s&&(s.appearance&&(this.appearance=s.appearance),this._hideRequiredMarker=!!s?.hideRequiredMarker,s.color&&(this.color=s.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(ot(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Ri(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ot(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(ot(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(r=>"start"===r.align):null,o=this._hintChildren?this._hintChildren.find(r=>"end"===r.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,r=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${r+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),_(fn),_(ci),_($Z,8),_(ui,8),_(ut))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,xi,5),gt(r,xi,7),gt(r,Af,5),gt(r,zZ,5),gt(r,TA,5),gt(r,MA,5),gt(r,sc,5)),2&i){let a;Oe(a=Ae())&&(o._labelChildNonStatic=a.first),Oe(a=Ae())&&(o._labelChildStatic=a.first),Oe(a=Ae())&&(o._formFieldControl=a.first),Oe(a=Ae())&&(o._prefixChildren=a),Oe(a=Ae())&&(o._suffixChildren=a),Oe(a=Ae())&&(o._errorChildren=a),Oe(a=Ae())&&(o._hintChildren=a)}},viewQuery:function(i,o){if(1&i&&(vt(_Z,5),vt(bZ,5),vt(vZ,5),vt(EA,5),vt(PA,5),vt(AA,5)),2&i){let r;Oe(r=Ae())&&(o._textField=r.first),Oe(r=Ae())&&(o._iconPrefixContainer=r.first),Oe(r=Ae())&&(o._textPrefixContainer=r.first),Oe(r=Ae())&&(o._floatingLabel=r.first),Oe(r=Ae())&&(o._notchedOutline=r.first),Oe(r=Ae())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,o){2&i&&et("mat-mdc-form-field-label-always-float",o._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",o._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",o._hasIconSuffix)("mat-form-field-invalid",o._control.errorState)("mat-form-field-disabled",o._control.disabled)("mat-form-field-autofilled",o._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===o._animationMode)("mat-form-field-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("mat-focused",o._control.focused)("mat-primary","accent"!==o.color&&"warn"!==o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("ng-untouched",o._shouldForward("untouched"))("ng-touched",o._shouldForward("touched"))("ng-pristine",o._shouldForward("pristine"))("ng-dirty",o._shouldForward("dirty"))("ng-valid",o._shouldForward("valid"))("ng-invalid",o._shouldForward("invalid"))("ng-pending",o._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Ye([{provide:th,useExisting:t},{provide:IA,useExisting:t}])],ngContentSelectors:BZ,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(i,o){1&i&&(Ut(LZ),y(0,wZ,1,1,"ng-template",null,0,br),d(2,"div",1,2),A("click",function(a){return o._control.onContainerClick(a)}),y(4,xZ,1,0,"div",3),d(5,"div",4),y(6,kZ,2,2,"div",5)(7,MZ,3,0,"div",6)(8,TZ,3,0,"div",7),d(9,"div",8),y(10,EZ,1,1,"ng-template",9),Ze(11),l(),y(12,OZ,2,0,"div",10)(13,AZ,2,0,"div",11),l(),y(14,PZ,1,0,"div",12),l(),d(15,"div",13),y(16,RZ,2,1,"div",14)(17,FZ,5,2,"div",15),l()),2&i&&(m(2),et("mdc-text-field--filled",!o._hasOutline())("mdc-text-field--outlined",o._hasOutline())("mdc-text-field--no-label",!o._hasFloatingLabel())("mdc-text-field--disabled",o._control.disabled)("mdc-text-field--invalid",o._control.errorState),m(2),f("ngIf",!o._hasOutline()&&!o._control.disabled),m(2),f("ngIf",o._hasOutline()),m(),f("ngIf",o._hasIconPrefix),m(),f("ngIf",o._hasTextPrefix),m(2),f("ngIf",!o._hasOutline()||o._forceDisplayInfixLabel()),m(2),f("ngIf",o._hasTextSuffix),m(),f("ngIf",o._hasIconSuffix),m(),f("ngIf",!o._hasOutline()),m(),et("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing),f("ngSwitch",o._getDisplayedMessages()),m(),f("ngSwitchCase","error"),m(),f("ngSwitchCase","hint"))},dependencies:[It,kp,xl,Sp,sc,EA,PA,AA],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[UZ.transitionMessages]},changeDetection:0})}return t})(),ih=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,Zp,Mt]})}return t})();const WZ=["addListener","removeListener"],KZ=["addEventListener","removeEventListener"],ZZ=["on","off"];function er(t,n,e,i){if(J(e)&&(i=e,e=void 0),i)return er(t,n,e).pipe(d0(i));const[o,r]=function XZ(t){return J(t.addEventListener)&&J(t.removeEventListener)}(t)?KZ.map(a=>s=>t[a](n,s,e)):function YZ(t){return J(t.addListener)&&J(t.removeListener)}(t)?WZ.map(LA(t,n)):function QZ(t){return J(t.on)&&J(t.off)}(t)?ZZ.map(LA(t,n)):[];if(!o&&n0(t))return Pn(a=>er(a,n,e))(Yn(t));if(!o)throw new TypeError("Invalid event target");return new li(a=>{const s=(...c)=>a.next(1r(s)})}function LA(t,n){return e=>i=>t[e](n,i)}function Pf(t=0,n,e=_G){let i=-1;return null!=n&&(FI(n)?e=n:i=n),new li(o=>{let r=function eY(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let a=0;return e.schedule(function(){o.closed||(o.next(a++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function oC(t,n=Pu){return function JZ(t){return $i((n,e)=>{let i=!1,o=null,r=null,a=!1;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const u=o;o=null,e.next(u)}a&&e.complete()},c=()=>{r=null,a&&e.complete()};n.subscribe(Fi(e,u=>{i=!0,o=u,r||Yn(t(u)).subscribe(r=Fi(e,s,c))},()=>{a=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Pf(t,n))}const BA=Ja({passive:!0});let tY=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return jo;const i=_a(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new qe,a="cdk-text-field-autofilled",s=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,BA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:r,unlisten:()=>{i.removeEventListener("animationstart",s,BA)}}),r}stopMonitoring(e){const i=_a(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),VA=(()=>{class t{get minRows(){return this._minRows}set minRows(e){this._minRows=yi(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=yi(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){e=$e(e),this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,o,r){this._elementRef=e,this._platform=i,this._ngZone=o,this._destroyed=new qe,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=a=>{this._hasFocus="focus"===a.type},this._document=r,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{er(this._getWindow(),"resize").pipe(oC(16),ot(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",o=this._platform.FIREFOX,r=o&&this._hasFocus,a=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";r&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);const s=e.scrollHeight-4;return e.classList.remove(a),r&&(e.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,o=i.value;if(!e&&this._minRows===this._previousMinRows&&o===this._previousValue)return;const r=this._measureScrollHeight(),a=Math.max(r,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=o,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:o}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ut,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,o){1&i&&A("input",function(){return o._noopInputHandler()})},inputs:{minRows:[ge.None,"cdkAutosizeMinRows","minRows"],maxRows:[ge.None,"cdkAutosizeMaxRows","maxRows"],enabled:[ge.None,"cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),iY=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const nY=new se("MAT_INPUT_VALUE_ACCESSOR"),oY=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let rY=0;const aY=v0(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new qe}});let qi=(()=>{class t extends aY{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RI().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g){super(s,r,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=u,this._formField=g,this._uid="mat-input-"+rY++,this.focused=!1,this.stateChanges=new qe,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(k=>RI().has(k)),this._iOSKeyupListener=k=>{const T=k.target;!T.value&&0===T.selectionStart&&0===T.selectionEnd&&(T.setSelectionRange(1,1),T.setSelectionRange(0,0))};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=c||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&p.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!g,this._isNativeSelect&&(this.controlType=b.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){oY.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(xr,10),_(hs,8),_(wi,8),_(nf),_(nY,10),_(tY),_(We),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,o){1&i&&A("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id)("disabled",o.disabled)("required",o.required),Xe("name",o.name||null)("readonly",o.readonly&&!o._isNativeSelect||null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),et("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mdc-text-field__input",o._isInFormField)("mat-mdc-native-select-inline",o._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Ye([{provide:Af,useExisting:t}]),ve,fi]})}return t})(),jA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,ih,ih,iY,Mt]})}return t})();const nh={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=nh;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new de(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=nh;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=nh;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class cY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class sY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=nh.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(nh.cancelAnimationFrame(e),n._scheduled=void 0)}});let rC,dY=1;const Rf={};function zA(t){return t in Rf&&(delete Rf[t],!0)}const uY={setImmediate(t){const n=dY++;return Rf[n]=!0,rC||(rC=Promise.resolve()),rC.then(()=>zA(n)&&t()),n},clearImmediate(t){zA(t)}},{setImmediate:hY,clearImmediate:mY}=uY,Nf={setImmediate(...t){const{delegate:n}=Nf;return(n?.setImmediate||hY)(...t)},clearImmediate(t){const{delegate:n}=Nf;return(n?.clearImmediate||mY)(t)},delegate:void 0},aC=new class fY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class pY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=Nf.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(Nf.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});let oh=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new qe,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new li(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(oC(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ke()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(kt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=_a(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>er(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(ci),X(ut,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rh=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new qe,this._elementScrolled=new li(a=>this.ngZone.runOutsideAngular(()=>er(this.elementRef.nativeElement,"scroll").pipe(ot(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=Iu()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==Iu()?e.left=e.right:1==Iu()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;NI()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==Iu()?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:a&&1==Iu()?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(oh),_(We),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),va=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new qe,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(oC(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(ut,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ms=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),sC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Lu,ms,Lu,ms]})}return t})();class cC{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ll extends cC{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class ya extends cC{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class vY extends cC{constructor(n){super(),this.element=n instanceof Be?n.nativeElement:n}}class Ff{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ll?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof ya?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof vY?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class yY extends Ff{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const s=a.element,c=this._document.createComment("dom-portal");s.parentNode.insertBefore(c,s),this.outletElement.appendChild(s),this._attachedPortal=a,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(s,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||ji.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let CY=(()=>{class t extends ya{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[ve]})}return t})(),Ca=(()=>{class t extends Ff{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ne,this.attachDomPortal=r=>{const a=r.element,s=this._document.createComment("dom-portal");r.setAttachedHost(this),a.parentNode.insertBefore(s,a),this._getRootNode().appendChild(a),this._attachedPortal=r,super.setDisposeFn(()=>{s.parentNode&&s.parentNode.replaceChild(a,s)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[ge.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ve]})}return t})(),cc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const HA=NI();class wY{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=pn(-this._previousScrollPosition.left),n.style.top=pn(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),HA&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),HA&&(i.scrollBehavior=r,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class xY{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(kt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class UA{enable(){}disable(){}attach(){}}function lC(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function $A(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class DY{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();lC(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let SY=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new UA,this.close=a=>new xY(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new wY(this._viewportRuler,this._document),this.reposition=a=>new DY(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(X(oh),X(va),X(We),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Bl{constructor(n){if(this.scrollStrategy=new UA,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class kY{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let GA=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MY=(()=>{class t extends GA{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let a=r.length-1;a>-1;a--)if(r[a]._keydownEvents.observers.length>0){const s=r[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(o)):s.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TY=(()=>{class t extends GA{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=pa(r)},this._clickListener=r=>{const a=pa(r),s="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let u=c.length-1;u>-1;u--){const p=c[u];if(p._outsidePointerEvents.observers.length<1||!p.hasAttached())continue;if(p.overlayElement.contains(a)||p.overlayElement.contains(s))break;const g=p._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>g.next(r)):g.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ci),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lf=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||Yy()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(g),this._backdropTransitionendHandler=g=>{this._disposeBackdrop(g.target)},this._keydownEvents=new qe,this._outsidePointerEvents=new qe,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=pn(this._config.width),n.height=pn(this._config.height),n.minWidth=pn(this._config.minWidth),n.minHeight=pn(this._config.minHeight),n.maxWidth=pn(this._config.maxWidth),n.maxHeight=pn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Kp(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(ot(Ri(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const qA="cdk-overlay-connected-position-bounding-box",IY=/([A-Za-z%]+)$/;class EY{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new qe,this._resizeSubscription=de.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(qA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let a;for(let s of this._preferredPositions){let c=this._getOriginPoint(n,o,s),u=this._getOverlayPoint(c,e,s),p=this._getOverlayFit(u,e,i,s);if(p.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(s,c);this._canFitWithFlexibleDimensions(p,u,i)?r.push({position:s,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,s)}):(!a||a.overlayFit.visibleAreac&&(c=p,s=u)}return this._isPushed=!1,void this._applyPosition(s.position,s.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&lc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(qA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,s=this._isRtl()?n.left:n.right;o="start"==i.originX?a:s}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=KA(e);let{x:a,y:s}=n,c=this._getOffset(o,"x"),u=this._getOffset(o,"y");c&&(a+=c),u&&(s+=u);let b=0-s,w=s+r.height-i.height,k=this._subtractOverflows(r.width,0-a,a+r.width-i.width),T=this._subtractOverflows(r.height,b,w),z=k*T;return{visibleArea:z,isCompletelyWithinViewport:r.width*r.height===z,fitsInViewportVertically:T===r.height,fitsInViewportHorizontally:k==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,a=WA(this._overlayRef.getConfig().minHeight),s=WA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=s&&s<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=KA(e),r=this._viewportRect,a=Math.max(n.x+o.width-r.width,0),s=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),u=Math.max(r.left-i.left-n.x,0);let p=0,g=0;return p=o.width<=r.width?u||-a:n.xk&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-k/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)b=i.width-n.x+this._viewportMargin,p=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)g=n.x,p=i.right-n.x;else{const w=Math.min(i.right-n.x+i.left,n.x),k=this._lastBoundingBoxSize.width;p=2*w,g=n.x-w,p>k&&!this._isInitialRender&&!this._growAfterOpen&&(g=n.x-k/2)}return{top:a,left:g,bottom:s,right:b,width:p,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=pn(i.height),o.top=pn(i.top),o.bottom=pn(i.bottom),o.width=pn(i.width),o.left=pn(i.left),o.right=pn(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=pn(r)),a&&(o.maxWidth=pn(a))}this._lastBoundingBoxSize=i,lc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){lc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){lc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const p=this._viewportRuler.getViewportScrollPosition();lc(i,this._getExactOverlayY(e,n,p)),lc(i,this._getExactOverlayX(e,n,p))}else i.position="static";let s="",c=this._getOffset(e,"x"),u=this._getOffset(e,"y");c&&(s+=`translateX(${c}px) `),u&&(s+=`translateY(${u}px)`),i.transform=s.trim(),a.maxHeight&&(o?i.maxHeight=pn(a.maxHeight):r&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=pn(a.maxWidth):r&&(i.maxWidth="")),lc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=pn(r.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=pn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:$A(n,i),isOriginOutsideView:lC(n,i),isOverlayClipped:$A(e,i),isOverlayOutsideView:lC(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Kp(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Be)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function lc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function WA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(IY);return e&&"px"!==e?null:parseFloat(n)}return t||null}function KA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const ZA="cdk-global-overlay-wrapper";class OY{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(ZA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:a,maxHeight:s}=i,c=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),u=!("100%"!==r&&"100vh"!==r||s&&"100%"!==s&&"100vh"!==s),p=this._xPosition,g=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",k="",T="";c?T="flex-start":"center"===p?(T="center",b?k=g:w=g):b?"left"===p||"end"===p?(T="flex-end",w=g):("right"===p||"start"===p)&&(T="flex-start",k=g):"left"===p||"start"===p?(T="flex-start",w=g):("right"===p||"end"===p)&&(T="flex-end",k=g),n.position=this._cssPosition,n.marginLeft=c?"0":w,n.marginTop=u?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":k,e.justifyContent=T,e.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(ZA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let AY=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new OY}flexibleConnectedTo(e){return new EY(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(X(va),X(ut),X(ci),X(Lf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),PY=0,Qn=(()=>{class t{constructor(e,i,o,r,a,s,c,u,p,g,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=a,this._injector=s,this._ngZone=c,this._document=u,this._directionality=p,this._location=g,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),a=new Bl(e);return a.direction=a.direction||this._directionality.value,new ah(r,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+PY++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Za)),new yY(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(SY),X(Lf),X(Ns),X(AY),X(MY),X(ji),X(We),X(ut),X(fn),X(Ws),X(TY),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const RY=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],YA=new se("cdk-connected-overlay-scroll-strategy");let dC=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),QA=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=$e(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=$e(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=$e(e)}get push(){return this._push}set push(e){this._push=$e(e)}constructor(e,i,o,r,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=de.EMPTY,this._attachSubscription=de.EMPTY,this._detachSubscription=de.EMPTY,this._positionSubscription=de.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Ne,this.positionChange=new Ne,this.attach=new Ne,this.detach=new Ne,this.overlayKeydown=new Ne,this.overlayOutsideClick=new Ne,this._templatePortal=new ya(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=RY);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Bl({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof dC?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function bY(t,n=!1){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{const a=t(r,o++);(a||n)&&i.next(r),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(gi),_(vi),_(YA),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[ge.None,"cdkConnectedOverlayOrigin","origin"],positions:[ge.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[ge.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[ge.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[ge.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[ge.None,"cdkConnectedOverlayWidth","width"],height:[ge.None,"cdkConnectedOverlayHeight","height"],minWidth:[ge.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[ge.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[ge.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[ge.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[ge.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[ge.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[ge.None,"cdkConnectedOverlayOpen","open"],disableClose:[ge.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[ge.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[ge.None,"cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:[ge.None,"cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:[ge.None,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:[ge.None,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:[ge.None,"cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[fi]})}return t})();const FY={provide:YA,deps:[Qn],useFactory:function NY(t){return()=>t.scrollStrategies.reposition()}};let dc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Qn,FY],imports:[Lu,cc,sC,sC]})}return t})();function Vl(t){return new li(n=>{Yn(t()).subscribe(n)})}const LY=["trigger"],BY=["panel"];function VY(t,n){if(1&t&&(d(0,"span",10),h(1),l()),2&t){const e=C();m(),Pe(e.placeholder)}}function jY(t,n){if(1&t&&(d(0,"span",14),h(1),l()),2&t){const e=C(2);m(),Pe(e.triggerValue)}}function zY(t,n){1&t&&Ze(0,0,["*ngSwitchCase","true"])}function HY(t,n){1&t&&(d(0,"span",11),y(1,jY,2,1,"span",12)(2,zY,1,0,"ng-content",13),l()),2&t&&(f("ngSwitch",!!C().customTrigger),m(2),f("ngSwitchCase",!0))}function UY(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"div",15,16),A("@transformPanel.done",function(o){return ie(e),ne(C()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))}),Ze(2,1),l()}if(2&t){const e=C();Mk("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),f("ngClass",e.panelClass)("@transformPanel","showing"),Xe("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $Y=[[["mat-select-trigger"]],"*"],GY=["mat-select-trigger","*"],qY={transformPanelWrap:Lo("transformPanelWrap",[Qi("* => void",Cy("@transformPanel",[yy()],{optional:!0}))]),transformPanel:Lo("transformPanel",[mn("void",Zt({opacity:0,transform:"scale(1, 0.8)"})),Qi("void => showing",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1, 1)"}))),Qi("* => void",Yi("100ms linear",Zt({opacity:0})))])};let XA=0;const JA=new se("mat-select-scroll-strategy"),KY=new se("MAT_SELECT_CONFIG"),ZY={provide:JA,deps:[Qn],useFactory:function WY(t){return()=>t.scrollStrategies.reposition()}},YY=new se("MatSelectTrigger");class QY{constructor(n,e){this.source=n,this.value=e}}const XY=ns(os(jr(v0(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new qe}}))));let JY=(()=>{class t extends XY{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=$e(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=$e(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=yi(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,r,a,s,c,u,p,g,b,w,k,T){super(a,r,c,u,g),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._parentFormField=p,this._liveAnnouncer=k,this._defaultOptions=T,this._panelOpen=!1,this._compareWith=(z,re)=>z===re,this._uid="mat-select-"+XA++,this._triggerAriaLabelledBy=null,this._destroy=new qe,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+XA++,this._panelDoneAnimatingStream=new qe,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=Vl(()=>{const z=this.options;return z?z.changes.pipe(an(z),gn(()=>Ri(...z.map(re=>re.onSelectionChange)))):this._ngZone.onStable.pipe(Pt(1),gn(()=>this.optionSelectionChanges))}),this.openedChange=new Ne,this._openedStream=this.openedChange.pipe(kt(z=>z),nt(()=>{})),this._closedStream=this.openedChange.pipe(kt(z=>!z),nt(()=>{})),this.selectionChange=new Ne,this.valueChange=new Ne,this._trackedModal=null,this.ngControl&&(this.ngControl.valueAccessor=this),null!=T?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=T.typeaheadDebounceInterval),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new qu(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ru(),ot(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(ot(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(an(null),ot(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,r=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&r&&!An(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const s=this.selected;a.onKeydown(e);const c=this.selected;c&&s!==c&&this._liveAnnouncer.announce(c.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,a=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||An(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const s=this.options.some(c=>!c.disabled&&!c.selected);this.options.forEach(c=>{c.disabled||(s?c.select():c.deselect())})}else{const s=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new hE(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Ri(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(ot(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Ri(...this.options.map(i=>i._stateChanges)).pipe(ot(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}static#e=this.\u0275fac=function(i){return new(i||t)(_(va),_(Lt),_(We),_(nf),_(Be),_(fn,8),_(hs,8),_(wi,8),_(th,8),_(xr,10),oo("tabindex"),_(JA),_(g0),_(KY,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(LY,5),vt(BY,5),vt(QA,5)),2&i){let r;Oe(r=Ae())&&(o.trigger=r.first),Oe(r=Ae())&&(o.panel=r.first),Oe(r=Ae())&&(o._overlayDir=r.first)}},inputs:{userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[ve,fi]})}return t})(),Xn=(()=>{class t extends JY{constructor(){super(...arguments),this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(ot(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}open(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=EE(e,this.options,this.optionGroups),a=i._getHostElement();o.scrollTop=0===e&&1===r?0:OE(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new QY(this,e)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof dC?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,YY,5),gt(r,Tn,5),gt(r,af,5)),2&i){let a;Oe(a=Ae())&&(o.customTrigger=a.first),Oe(a=Ae())&&(o.options=a),Oe(a=Ae())&&(o.optionGroups=a)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Xe("id",o.id)("tabindex",o.tabIndex)("aria-controls",o.panelOpen?o.id+"-panel":null)("aria-expanded",o.panelOpen)("aria-label",o.ariaLabel||null)("aria-required",o.required.toString())("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState)("aria-activedescendant",o._getAriaActiveDescendant()),et("mat-mdc-select-disabled",o.disabled)("mat-mdc-select-invalid",o.errorState)("mat-mdc-select-required",o.required)("mat-mdc-select-empty",o.empty)("mat-mdc-select-multiple",o.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",panelWidth:"panelWidth",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[Ye([{provide:Af,useExisting:t},{provide:rf,useExisting:t}]),ve],ngContentSelectors:GY,decls:11,vars:10,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(i,o){if(1&i&&(Ut($Y),d(0,"div",0,1),A("click",function(){return o.toggle()}),d(3,"div",2),y(4,VY,2,1,"span",3)(5,HY,3,2,"span",4),l(),d(6,"div",5)(7,"div",6),ei(),d(8,"svg",7),D(9,"path",8),l()()()(),y(10,UY,3,9,"ng-template",9),A("backdropClick",function(){return o.close()})("attach",function(){return o._onAttached()})("detach",function(){return o.close()})),2&i){const r=Ft(1);m(3),f("ngSwitch",o.empty),Xe("id",o._valueId),m(),f("ngSwitchCase",!0),m(),f("ngSwitchCase",!1),m(5),f("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayOpen",o.panelOpen)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)}},dependencies:[yr,xl,Sp,y2,QA,dC],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[qY.transformPanel]},changeDetection:0})}return t})(),uC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ZY],imports:[Vn,dc,sf,Mt,ms,ih,sf,Mt]})}return t})();function Bf(t){return nt(()=>t)}function eP(t,n){return n?e=>Nu(n.pipe(Pt(1),function eQ(){return $i((t,n)=>{t.subscribe(Fi(n,oi))})}()),e.pipe(eP(t))):Pn((e,i)=>Yn(t(e,i)).pipe(Pt(1),Bf(e)))}function hC(t,n=Pu){const e=Pf(t,n);return eP(()=>e)}const tQ=["mat-menu-item",""];function iQ(t,n){1&t&&(ei(),d(0,"svg",3),D(1,"polygon",4),l())}const nQ=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oQ=["mat-icon, [matMenuItemIcon]","*"];function rQ(t,n){if(1&t){const e=_e();d(0,"div",0),A("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))})("click",function(){return ie(e),ne(C().closed.emit("click"))})("@transformMenu.start",function(o){return ie(e),ne(C()._onAnimationStart(o))})("@transformMenu.done",function(o){return ie(e),ne(C()._onAnimationDone(o))}),d(1,"div",1),Ze(2),l()()}if(2&t){const e=C();f("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Xe("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const aQ=["*"],mC=new se("MAT_MENU_PANEL"),sQ=ns(jr(class{}));let wa=(()=>{class t extends sQ{constructor(e,i,o,r,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=r,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new qe,this._focused=new qe,this._highlighted=!1,this._triggersSubmenu=!1,r?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1)"}))),Qi("* => void",Yi("100ms 25ms linear",Zt({opacity:0})))]),fadeInItems:Lo("fadeInItems",[mn("showing",Zt({opacity:1})),Qi("void => *",[Zt({opacity:0}),Yi("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lQ=0;const tP=new se("mat-menu-default-options",{providedIn:"root",factory:function dQ(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let sh=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=$e(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,r){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=r,this._directDescendantItems=new oa,this._classList={},this._panelAnimationState="void",this._animationDone=new qe,this.closed=new Ne,this.close=this.closed,this.panelId="mat-menu-panel-"+lQ++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Jp(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(e=>Ri(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),r=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[r]&&!o[r].disabled?i.setActiveItem(r):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(i=>Ri(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:An(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,r=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!r||r===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(an(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275dir=Q({type:t,contentQueries:function(i,o,r){if(1&i&&(gt(r,cQ,5),gt(r,wa,5),gt(r,wa,4)),2&i){let a;Oe(a=Ae())&&(o.lazyContent=a.first),Oe(a=Ae())&&(o._allItems=a),Oe(a=Ae())&&(o.items=a)}},viewQuery:function(i,o){if(1&i&&vt(gi,5),2&i){let r;Oe(r=Ae())&&(o.templateRef=r.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:[ge.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}})}return t})(),jl=(()=>{class t extends sh{constructor(e,i,o,r){super(e,i,o,r),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration",""],hostVars:3,hostBindings:function(i,o){2&i&&Xe("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Ye([{provide:mC,useExisting:t}]),ve],ngContentSelectors:aQ,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Ut(),y(0,rQ,3,6,"ng-template"))},dependencies:[yr],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Vf.transformMenu,Vf.fadeInItems]},changeDetection:0})}return t})();const iP=new se("mat-menu-scroll-strategy"),hQ={provide:iP,deps:[Qn],useFactory:function uQ(t){return()=>t.scrollStrategies.reposition()}},nP=Ja({passive:!0});let mQ=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,r,a,s,c,u,p){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=s,this._dir=c,this._focusMonitor=u,this._ngZone=p,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=de.EMPTY,this._hoverSubscription=de.EMPTY,this._menuCloseSubscription=de.EMPTY,this._changeDetectorRef=De(Lt),this._handleTouchStart=g=>{f0(g)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ne,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ne,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=a instanceof sh?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,nP)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,nP),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),r=o.positionStrategy;this._setPosition(e,r),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof sh&&(e._startAnimation(),e._directDescendantItems.changes.pipe(ot(e.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof sh?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(kt(o=>"void"===o.toState),Pt(1),ot(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Bl({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const r="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(r,a)):e.setPositionClasses(r,a)})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[a,s]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[c,u]=[a,s],[p,g]=[o,r],b=0;if(this.triggersSubmenu()){if(g=o="before"===e.xPosition?"start":"end",r=p="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(c="top"===a?"bottom":"top",u="top"===s?"bottom":"top");i.withPositions([{originX:o,originY:c,overlayX:p,overlayY:a,offsetY:b},{originX:r,originY:c,overlayX:g,overlayY:a,offsetY:b},{originX:o,originY:u,overlayX:p,overlayY:s,offsetY:-b},{originX:r,originY:u,overlayX:g,overlayY:s,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Ri(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ke(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(kt(a=>a!==this._menuItemInstance),kt(()=>this._menuOpen)):Ke(),i)}_handleMousedown(e){p0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(kt(e=>e===this._menuItemInstance&&!e.disabled),hC(0,aC)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof sh&&this.menu._isAnimating?this.menu._animationDone.pipe(Pt(1),hC(0,aC),ot(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ya(e.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(vi),_(iP),_(mC,8),_(wa,10),_(fn,8),_(zo),_(We))};static#t=this.\u0275dir=Q({type:t,hostVars:3,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("mousedown",function(a){return o._handleMousedown(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[ge.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[ge.None,"matMenuTriggerFor","menu"],menuData:[ge.None,"matMenuTriggerData","menuData"],restoreFocus:[ge.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}})}return t})(),zl=(()=>{class t extends mQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[ve]})}return t})(),oP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[hQ],imports:[Vn,as,Mt,dc,ms,Mt]})}return t})();const pQ=[[["caption"]],[["colgroup"],["col"]]],fQ=["caption","colgroup, col"];function pC(t){return class extends t{get sticky(){return this._sticky}set sticky(n){const e=this._sticky;this._sticky=$e(n),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const n=this._hasStickyChanged;return this._hasStickyChanged=!1,n}resetStickyChanged(){this._hasStickyChanged=!1}constructor(...n){super(...n),this._sticky=!1,this._hasStickyChanged=!1}}}const Hl=new se("CDK_TABLE");let Ul=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),$l=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),jf=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})();class vQ{}const yQ=pC(vQ);let xa=(()=>{class t extends yQ{get name(){return this._name}set name(e){this._setNameInput(e)}get stickyEnd(){return this._stickyEnd}set stickyEnd(e){const i=this._stickyEnd;this._stickyEnd=$e(e),this._hasStickyChanged=i!==this._stickyEnd}constructor(e){super(),this._table=e,this._stickyEnd=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(e){e&&(this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Ul,5),gt(r,$l,5),gt(r,jf,5)),2&i){let a;Oe(a=Ae())&&(o.cell=a.first),Oe(a=Ae())&&(o.headerCell=a.first),Oe(a=Ae())&&(o.footerCell=a.first)}},inputs:{sticky:"sticky",name:[ge.None,"cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[Ye([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})();class fC{constructor(n,e){e.nativeElement.classList.add(...n._columnCssClassName)}}let gC=(()=>{class t extends fC{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[ve]})}return t})(),_C=(()=>{class t extends fC{constructor(e,i){if(super(e,i),1===e._table?._elementRef.nativeElement.nodeType){const o=e._table._elementRef.nativeElement.getAttribute("role");i.nativeElement.setAttribute("role","grid"===o||"treegrid"===o?"gridcell":"cell")}}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[ve]})}return t})();class aP{constructor(){this.tasks=[],this.endTasks=[]}}const bC=new se("_COALESCED_STYLE_SCHEDULER");let sP=(()=>{class t{constructor(e){this._ngZone=e,this._currentSchedule=null,this._destroyed=new qe}schedule(e){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(e)}scheduleEnd(e){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(e)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new aP,this._getScheduleObservable().pipe(ot(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const e=this._currentSchedule;this._currentSchedule=new aP;for(const i of e.tasks)i();for(const i of e.endTasks)i()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?Xi(Promise.resolve(void 0)):this._ngZone.onStable.pipe(Pt(1))}static#e=this.\u0275fac=function(i){return new(i||t)(X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),vC=(()=>{class t{constructor(e,i){this.template=e,this._differs=i}ngOnChanges(e){if(!this._columnsDiffer){const i=e.columns&&e.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(e){return this instanceof ch?e.headerCell.template:this instanceof lh?e.footerCell.template:e.cell.template}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();class CQ extends vC{}const wQ=pC(CQ);let ch=(()=>{class t extends wQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[ge.None,"cdkHeaderRowDef","columns"],sticky:[ge.None,"cdkHeaderRowDefSticky","sticky"]},features:[ve,fi]})}return t})();class xQ extends vC{}const DQ=pC(xQ);let lh=(()=>{class t extends DQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[ge.None,"cdkFooterRowDef","columns"],sticky:[ge.None,"cdkFooterRowDefSticky","sticky"]},features:[ve,fi]})}return t})(),zf=(()=>{class t extends vC{constructor(e,i,o){super(e,i),this._table=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[ge.None,"cdkRowDefColumns","columns"],when:[ge.None,"cdkRowDefWhen","when"]},features:[ve]})}return t})(),Da=(()=>{class t{static#e=this.mostRecentCellOutlet=null;constructor(e){this._viewContainer=e,t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static#t=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#i=this.\u0275dir=Q({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),yC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),wC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),Hf=(()=>{class t{constructor(e){this.templateRef=e,this._contentClassName="cdk-no-data-row"}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})();const cP=["top","bottom","left","right"];class SQ{constructor(n,e,i,o,r=!0,a=!0,s){this._isNativeHtmlTable=n,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=r,this._needsPositionStickyOnElement=a,this._positionListener=s,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(n,e){const i=[];for(const o of n)if(o.nodeType===o.ELEMENT_NODE){i.push(o);for(let r=0;r{for(const o of i)this._removeStickyStyle(o,e)})}updateStickyColumns(n,e,i,o=!0){if(!n.length||!this._isBrowser||!e.some(b=>b)&&!i.some(b=>b))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const r=n[0],a=r.children.length,s=this._getCellWidths(r,o),c=this._getStickyStartColumnPositions(s,e),u=this._getStickyEndColumnPositions(s,i),p=e.lastIndexOf(!0),g=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const b="rtl"===this.direction,w=b?"right":"left",k=b?"left":"right";for(const T of n)for(let z=0;ze[z]?T:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===g?[]:s.slice(g).map((T,z)=>i[z+g]?T:null).reverse()}))})}stickRows(n,e,i){if(!this._isBrowser)return;const o="bottom"===i?n.slice().reverse():n,r="bottom"===i?e.slice().reverse():e,a=[],s=[],c=[];for(let p=0,g=0;p{for(let p=0;p{e.some(o=>!o)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(n,e){for(const o of e)n.style[o]="",n.classList.remove(this._borderCellCss[o]);cP.some(o=>-1===e.indexOf(o)&&n.style[o])?n.style.zIndex=this._getCalculatedZIndex(n):(n.style.zIndex="",this._needsPositionStickyOnElement&&(n.style.position=""),n.classList.remove(this._stickCellCss))}_addStickyStyle(n,e,i,o){n.classList.add(this._stickCellCss),o&&n.classList.add(this._borderCellCss[e]),n.style[e]=`${i}px`,n.style.zIndex=this._getCalculatedZIndex(n),this._needsPositionStickyOnElement&&(n.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(n){const e={top:100,bottom:10,left:1,right:1};let i=0;for(const o of cP)n.style[o]&&(i+=e[o]);return i?`${i}`:""}_getCellWidths(n,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],o=n.children;for(let r=0;r0;r--)e[r]&&(i[r]=o,o+=n[r]);return i}}const xC=new se("CDK_SPL");let Uf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","rowOutlet",""]]})}return t})(),$f=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),Gf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),qf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})(),Wf=(()=>{class t{get trackBy(){return this._trackByFn}set trackBy(e){this._trackByFn=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(e){this._multiTemplateDataRows=$e(e),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(e){this._fixedLayout=$e(e),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._differs=e,this._changeDetectorRef=i,this._elementRef=o,this._dir=a,this._platform=c,this._viewRepeater=u,this._coalescedStyleScheduler=p,this._viewportRuler=g,this._stickyPositioningListener=b,this._ngZone=w,this._onDestroy=new qe,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new Ne,this.viewChange=new pt({start:0,end:Number.MAX_VALUE}),r||this._elementRef.nativeElement.setAttribute("role","table"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((e,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(ot(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(e=>{e.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),yf(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const e=this._dataDiffer.diff(this._renderRows);if(!e)return this._updateNoDataRow(),void this.contentChanged.next();const i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(e,i,(o,r,a)=>this._getEmbeddedViewArgs(o.item,a),o=>o.item.data,o=>{1===o.operation&&o.context&&this._renderCellTemplateForItem(o.record.item.rowDef,o.context)}),this._updateRowIndexContext(),e.forEachIdentityChange(o=>{i.get(o.currentIndex).context.$implicit=o.item.data}),this._updateNoDataRow(),this._ngZone&&We.isInAngularZone()?this._ngZone.onStable.pipe(Pt(1),ot(this._onDestroy)).subscribe(()=>{this.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(e){this._customColumnDefs.add(e)}removeColumnDef(e){this._customColumnDefs.delete(e)}addRowDef(e){this._customRowDefs.add(e)}removeRowDef(e){this._customRowDefs.delete(e)}addHeaderRowDef(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}removeHeaderRowDef(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}addFooterRowDef(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}removeFooterRowDef(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}setNoDataRow(e){this._customNoDataRow=e}updateStickyHeaderRowStyles(){const e=this._getRenderedRows(this._headerRowOutlet),o=this._elementRef.nativeElement.querySelector("thead");o&&(o.style.display=e.length?"":"none");const r=this._headerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,r,"top"),this._headerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyFooterRowStyles(){const e=this._getRenderedRows(this._footerRowOutlet),o=this._elementRef.nativeElement.querySelector("tfoot");o&&(o.style.display=e.length?"":"none");const r=this._footerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,r,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,r),this._footerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyColumnStyles(){const e=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),o=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...e,...i,...o],["left","right"]),this._stickyColumnStylesNeedReset=!1),e.forEach((r,a)=>{this._addStickyColumnStyles([r],this._headerRowDefs[a])}),this._rowDefs.forEach(r=>{const a=[];for(let s=0;s{this._addStickyColumnStyles([r],this._footerRowDefs[a])}),Array.from(this._columnDefsByName.values()).forEach(r=>r.resetStickyChanged())}_getAllRenderRows(){const e=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let o=0;o{const s=o&&o.has(a)?o.get(a):[];if(s.length){const c=s.shift();return c.dataIndex=i,c}return{data:e,rowDef:a,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Kf(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=Kf(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Kf(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Kf(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const e=this._rowDefs.filter(i=>!i.when);this._defaultRowDef=e[0]}_renderUpdatedColumns(){const e=(a,s)=>a||!!s.getColumnsDiff(),i=this._rowDefs.reduce(e,!1);i&&this._forceRenderDataRows();const o=this._headerRowDefs.reduce(e,!1);o&&this._forceRenderHeaderRows();const r=this._footerRowDefs.reduce(e,!1);return r&&this._forceRenderFooterRows(),i||o||r}_switchDataSource(e){this._data=[],yf(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=e}_observeRenderChanges(){if(!this.dataSource)return;let e;yf(this.dataSource)?e=this.dataSource.connect(this):Pl(this.dataSource)?e=this.dataSource:Array.isArray(this.dataSource)&&(e=Ke(this.dataSource)),this._renderChangeSubscription=e.pipe(ot(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((e,i)=>this._renderRow(this._headerRowOutlet,e,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((e,i)=>this._renderRow(this._footerRowOutlet,e,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(e,i){const o=Array.from(i.columns||[]).map(s=>this._columnDefsByName.get(s)),r=o.map(s=>s.sticky),a=o.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(e,r,a,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(e){const i=[];for(let o=0;o!r.when||r.when(i,e));else{let r=this._rowDefs.find(a=>a.when&&a.when(i,e))||this._defaultRowDef;r&&o.push(r)}return o}_getEmbeddedViewArgs(e,i){return{templateRef:e.rowDef.template,context:{$implicit:e.data},index:i}}_renderRow(e,i,o,r={}){const a=e.viewContainer.createEmbeddedView(i.template,r,o);return this._renderCellTemplateForItem(i,r),a}_renderCellTemplateForItem(e,i){for(let o of this._getCellTemplates(e))Da.mostRecentCellOutlet&&Da.mostRecentCellOutlet._viewContainer.createEmbeddedView(o,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const e=this._rowOutlet.viewContainer;for(let i=0,o=e.length;i{const o=this._columnDefsByName.get(i);return e.extractCellTemplate(o)}):[]}_applyNativeTableSections(){const e=this._document.createDocumentFragment(),i=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const o of i){const r=this._document.createElement(o.tag);r.setAttribute("role","rowgroup");for(const a of o.outlets)r.appendChild(a.elementRef.nativeElement);e.appendChild(r)}this._elementRef.nativeElement.appendChild(e)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const e=(i,o)=>i||o.hasStickyChanged();this._headerRowDefs.reduce(e,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(e,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(e,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new SQ(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:Ke()).pipe(ot(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(e){return e.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){const e=this._customNoDataRow||this._noDataRow;if(!e)return;const i=0===this._rowOutlet.viewContainer.length;if(i===this._isShowingNoDataRow)return;const o=this._noDataRowOutlet.viewContainer;if(i){const r=o.createEmbeddedView(e.templateRef),a=r.rootNodes[0];1===r.rootNodes.length&&a?.nodeType===this._document.ELEMENT_NODE&&(a.setAttribute("role","row"),a.classList.add(e._contentClassName))}else o.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(fr),_(Lt),_(Be),oo("role"),_(fn,8),_(ut),_(ci),_(Wu),_(bC),_(va),_(xC,12),_(We,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Hf,5),gt(r,xa,5),gt(r,zf,5),gt(r,ch,5),gt(r,lh,5)),2&i){let a;Oe(a=Ae())&&(o._noDataRow=a.first),Oe(a=Ae())&&(o._contentColumnDefs=a),Oe(a=Ae())&&(o._contentRowDefs=a),Oe(a=Ae())&&(o._contentHeaderRowDefs=a),Oe(a=Ae())&&(o._contentFooterRowDefs=a)}},viewQuery:function(i,o){if(1&i&&(vt(Uf,7),vt($f,7),vt(Gf,7),vt(qf,7)),2&i){let r;Oe(r=Ae())&&(o._rowOutlet=r.first),Oe(r=Ae())&&(o._headerRowOutlet=r.first),Oe(r=Ae())&&(o._footerRowOutlet=r.first),Oe(r=Ae())&&(o._noDataRowOutlet=r.first)}},hostAttrs:["ngSkipHydration","",1,"cdk-table"],hostVars:2,hostBindings:function(i,o){2&i&&et("cdk-table-fixed-layout",o.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[Ye([{provide:Hl,useExisting:t},{provide:Wu,useClass:xO},{provide:bC,useClass:sP},{provide:xC,useValue:null}])],ngContentSelectors:fQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(pQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function Kf(t,n){return t.concat(Array.from(n))}let MQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[sC]})}return t})();const TQ=[[["caption"]],[["colgroup"],["col"]]],IQ=["caption","colgroup, col"];let ps=(()=>{class t extends Wf{constructor(){super(...arguments),this.stickyCssClass="mat-mdc-table-sticky",this.needsPositionStickyOnElement=!1}ngOnInit(){super.ngOnInit(),this._isNativeHtmlTable&&this._elementRef.nativeElement.querySelector("tbody").classList.add("mdc-data-table__content")}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-table-fixed-layout",o.fixedLayout)},exportAs:["matTable"],features:[Ye([{provide:Wf,useExisting:t},{provide:Hl,useExisting:t},{provide:bC,useClass:sP},{provide:Wu,useClass:xO},{provide:xC,useValue:null}]),ve],ngContentSelectors:IQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(TQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),Sa=(()=>{class t extends Ul{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matCellDef",""]],features:[Ye([{provide:Ul,useExisting:t}]),ve]})}return t})(),ka=(()=>{class t extends $l{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderCellDef",""]],features:[Ye([{provide:$l,useExisting:t}]),ve]})}return t})(),Ma=(()=>{class t extends xa{get name(){return this._name}set name(e){this._setNameInput(e)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:[ge.None,"matColumnDef","name"]},features:[Ye([{provide:xa,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})(),Ta=(()=>{class t extends gC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[ve]})}return t})(),Ia=(()=>{class t extends _C{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[ve]})}return t})(),fs=(()=>{class t extends ch{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[ge.None,"matHeaderRowDef","columns"],sticky:[ge.None,"matHeaderRowDefSticky","sticky"]},features:[Ye([{provide:ch,useExisting:t}]),ve]})}return t})(),gs=(()=>{class t extends zf{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[ge.None,"matRowDefColumns","columns"],when:[ge.None,"matRowDefWhen","when"]},features:[Ye([{provide:zf,useExisting:t}]),ve]})}return t})(),_s=(()=>{class t extends yC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[Ye([{provide:yC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),bs=(()=>{class t extends wC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[Ye([{provide:wC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),dP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,MQ,Mt]})}return t})();class BQ extends vf{get data(){return this._data.value}set data(n){n=Array.isArray(n)?n:[],this._data.next(n),this._renderChangesSubscription||this._filterData(n)}get filter(){return this._filter.value}set filter(n){this._filter.next(n),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(n){this._sort=n,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(n){this._paginator=n,this._updateChangeSubscription()}constructor(n=[]){super(),this._renderData=new pt([]),this._filter=new pt(""),this._internalPageChanges=new qe,this._renderChangesSubscription=null,this.sortingDataAccessor=(e,i)=>{const o=e[i];if(eE(o)){const r=Number(o);return r<9007199254740991?r:o}return o},this.sortData=(e,i)=>{const o=i.active,r=i.direction;return o&&""!=r?e.sort((a,s)=>{let c=this.sortingDataAccessor(a,o),u=this.sortingDataAccessor(s,o);const p=typeof c,g=typeof u;p!==g&&("number"===p&&(c+=""),"number"===g&&(u+=""));let b=0;return null!=c&&null!=u?c>u?b=1:c{const o=Object.keys(e).reduce((a,s)=>a+e[s]+"\u25ec","").toLowerCase(),r=i.trim().toLowerCase();return-1!=o.indexOf(r)},this._data=new pt(n),this._updateChangeSubscription()}_updateChangeSubscription(){const n=this._sort?Ri(this._sort.sortChange,this._sort.initialized):Ke(null),e=this._paginator?Ri(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ke(null),o=Xs([this._data,this._filter]).pipe(nt(([s])=>this._filterData(s))),r=Xs([o,n]).pipe(nt(([s])=>this._orderData(s))),a=Xs([r,e]).pipe(nt(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=a.subscribe(s=>this._renderData.next(s))}_filterData(n){return this.filteredData=null==this.filter||""===this.filter?n:n.filter(e=>this.filterPredicate(e,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(n){return this.sort?this.sortData(n.slice(),this.sort):n}_pageData(n){if(!this.paginator)return n;const e=this.paginator.pageIndex*this.paginator.pageSize;return n.slice(e,e+this.paginator.pageSize)}_updatePaginator(n){Promise.resolve().then(()=>{const e=this.paginator;if(e&&(e.length=n,e.pageIndex>0)){const i=Math.ceil(e.length/e.pageSize)-1||0,o=Math.min(e.pageIndex,i);o!==e.pageIndex&&(e.pageIndex=o,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}}class uP extends BQ{}const hP=new se("CdkAccordion");let VQ=0,jQ=(()=>{class t{get expanded(){return this._expanded}set expanded(e){e=$e(e),this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e)}constructor(e,i,o){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=o,this._openCloseAllSubscription=de.EMPTY,this.closed=new Ne,this.opened=new Ne,this.destroyed=new Ne,this.expandedChange=new Ne,this.id="cdk-accordion-child-"+VQ++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=o.listen((r,a)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===a&&this.id!==r&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(hP,12),_(Lt),_(N0))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[Ye([{provide:hP,useValue:void 0}])]})}return t})(),zQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const HQ=["body"];function UQ(t,n){}const $Q=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],GQ=["mat-expansion-panel-header","*","mat-action-row"];function qQ(t,n){1&t&&D(0,"span",2),2&t&&f("@indicatorRotate",C()._getExpandedState())}const WQ=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],KQ=["mat-panel-title","mat-panel-description","*"],mP=new se("MAT_ACCORDION"),pP="225ms cubic-bezier(0.4,0.0,0.2,1)",fP={indicatorRotate:Lo("indicatorRotate",[mn("collapsed, void",Zt({transform:"rotate(0deg)"})),mn("expanded",Zt({transform:"rotate(180deg)"})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))]),bodyExpansion:Lo("bodyExpansion",[mn("collapsed, void",Zt({height:"0px",visibility:"hidden"})),mn("expanded",Zt({height:"*",visibility:""})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))])},gP=new se("MAT_EXPANSION_PANEL");let ZQ=(()=>{class t{constructor(e,i){this._template=e,this._expansionPanel=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(gP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),YQ=0;const _P=new se("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let DC=(()=>{class t extends jQ{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=$e(e)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,o,r,a,s,c){super(e,i,o),this._viewContainerRef=r,this._animationMode=s,this._hideToggle=!1,this.afterExpand=new Ne,this.afterCollapse=new Ne,this._inputChanges=new qe,this._headerId="mat-expansion-panel-header-"+YQ++,this._bodyAnimationDone=new qe,this.accordion=e,this._document=a,this._bodyAnimationDone.pipe(Ru((u,p)=>u.fromState===p.fromState&&u.toState===p.toState)).subscribe(u=>{"void"!==u.fromState&&("expanded"===u.toState?this.afterExpand.emit():"collapsed"===u.toState&&this.afterCollapse.emit())}),c&&(this.hideToggle=c.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(an(null),kt(()=>this.expanded&&!this._portal),Pt(1)).subscribe(()=>{this._portal=new ya(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(mP,12),_(Lt),_(N0),_(vi),_(ut),_(ui,8),_(_P,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,o,r){if(1&i&>(r,ZQ,5),2&i){let a;Oe(a=Ae())&&(o._lazyContent=a.first)}},viewQuery:function(i,o){if(1&i&&vt(HQ,5),2&i){let r;Oe(r=Ae())&&(o._body=r.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,o){2&i&&et("mat-expanded",o.expanded)("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[Ye([{provide:mP,useValue:void 0},{provide:gP,useExisting:t}]),ve,fi],ngContentSelectors:GQ,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,o){1&i&&(Ut($Q),Ze(0),d(1,"div",0,1),A("@bodyExpansion.done",function(a){return o._bodyAnimationDone.next(a)}),d(3,"div",2),Ze(4,1),y(5,UQ,0,0,"ng-template",3),l(),Ze(6,2),l()),2&i&&(m(),f("@bodyExpansion",o._getExpandedState())("id",o.id),Xe("aria-labelledby",o._headerId),m(4),f("cdkPortalOutlet",o._portal))},dependencies:[Ca],styles:['.mat-expansion-panel{--mat-expansion-container-shape:4px;box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[fP.bodyExpansion]},changeDetection:0})}return t})();class QQ{}const XQ=os(QQ);let bP=(()=>{class t extends XQ{constructor(e,i,o,r,a,s,c){super(),this.panel=e,this._element=i,this._focusMonitor=o,this._changeDetectorRef=r,this._animationMode=s,this._parentChangeSubscription=de.EMPTY;const u=e.accordion?e.accordion._stateChanges.pipe(kt(p=>!(!p.hideToggle&&!p.togglePosition))):jo;this.tabIndex=parseInt(c||"")||0,this._parentChangeSubscription=Ri(e.opened,e.closed,u,e._inputChanges.pipe(kt(p=>!!(p.hideToggle||p.disabled||p.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(kt(()=>e._containsFocus())).subscribe(()=>o.focusVia(i,"program")),a&&(this.expandedHeight=a.expandedHeight,this.collapsedHeight=a.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:An(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static#e=this.\u0275fac=function(i){return new(i||t)(_(DC,1),_(Be),_(zo),_(Lt),_(_P,8),_(ui,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,o){1&i&&A("click",function(){return o._toggle()})("keydown",function(a){return o._keydown(a)}),2&i&&(Xe("id",o.panel._headerId)("tabindex",o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),Sn("height",o._getHeaderHeight()),et("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after","after"===o._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===o._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===o._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[ve],ngContentSelectors:KQ,decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(i,o){1&i&&(Ut(WQ),d(0,"span",0),Ze(1),Ze(2,1),Ze(3,2),l(),y(4,qQ,1,1,"span",1)),2&i&&(et("mat-content-hide-toggle",!o._showToggle()),m(4),f("ngIf",o._showToggle()))},dependencies:[It],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[fP.indicatorRotate]},changeDetection:0})}return t})(),JQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})(),vP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,zQ,cc]})}return t})();function eX(t,n){1&t&&(d(0,"span",7),Ze(1,1),l())}function tX(t,n){1&t&&(d(0,"span",8),Ze(1,2),l())}const yP=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],CP=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function oX(t,n){1&t&&(me(0),D(1,"span",8),pe())}function rX(t,n){1&t&&(d(0,"span",9),Ze(1),l())}function aX(t,n){1&t&&(me(0),Ze(1,1),pe())}function sX(t,n){1&t&&Ze(0,2,["*ngIf","contentEditInput; else defaultMatChipEditInput"])}function cX(t,n){1&t&&D(0,"span",12)}function lX(t,n){if(1&t&&(me(0),y(1,sX,1,0,"ng-content",10)(2,cX,1,0,"ng-template",null,11,br),pe()),2&t){const e=Ft(3),i=C();m(),f("ngIf",i.contentEditInput)("ngIfElse",e)}}function dX(t,n){1&t&&(d(0,"span",13),Ze(1,3),l())}const uX=[[["mat-chip-avatar"],["","matChipAvatar",""]],"*",[["","matChipEditInput",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],hX=["mat-chip-avatar, [matChipAvatar]","*","[matChipEditInput]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"],SC=["*"],Zf=new se("mat-chips-default-options"),kC=new se("MatChipAvatar"),MC=new se("MatChipTrailingIcon"),TC=new se("MatChipRemove"),Yf=new se("MatChip");class mX{}const pX=os(mX,-1);let Gl=(()=>{class t extends pX{get disabled(){return this._disabled||this._parentChip.disabled}set disabled(e){this._disabled=$e(e)}_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(e,i){super(),this._elementRef=e,this._parentChip=i,this.isInteractive=!0,this._isPrimary=!0,this._disabled=!1,this._allowFocusWhenDisabled=!1,"BUTTON"===e.nativeElement.nodeName&&e.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(e){!this.disabled&&this.isInteractive&&this._isPrimary&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Yf))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(Xe("tabindex",o._getTabindex())("disabled",o._getDisabledAttribute())("aria-disabled",o.disabled),et("mdc-evolution-chip__action--primary",o._isPrimary)("mdc-evolution-chip__action--presentational",!o.isInteractive)("mdc-evolution-chip__action--trailing",!o._isPrimary))},inputs:{disabled:"disabled",tabIndex:"tabIndex",isInteractive:"isInteractive",_allowFocusWhenDisabled:"_allowFocusWhenDisabled"},features:[ve]})}return t})(),DP=(()=>{class t extends Gl{constructor(){super(...arguments),this._isPrimary=!1}_handleClick(e){this.disabled||(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-mdc-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(i,o){2&i&&Xe("aria-hidden",null)},features:[Ye([{provide:TC,useExisting:t}]),ve]})}return t})(),_X=0;const bX=os(is(ns(jr(class{constructor(t){this._elementRef=t}})),"primary"),-1);let uc=(()=>{class t extends bX{_hasFocus(){return this._hasFocusInternal}get value(){return void 0!==this._value?this._value:this._textElement.textContent.trim()}set value(e){this._value=e}get removable(){return this._removable}set removable(e){this._removable=$e(e)}get highlighted(){return this._highlighted}set highlighted(e){this._highlighted=$e(e)}get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetectorRef=e,this._ngZone=o,this._focusMonitor=r,this._globalRippleOptions=c,this._onFocus=new qe,this._onBlur=new qe,this.role=null,this._hasFocusInternal=!1,this.id="mat-mdc-chip-"+_X++,this.ariaLabel=null,this.ariaDescription=null,this._ariaDescriptionId=`${this.id}-aria-description`,this._removable=!0,this._highlighted=!1,this.removed=new Ne,this.destroyed=new Ne,this.basicChipAttrName="mat-basic-chip",this._rippleLoader=De(NE),this._document=a,this._animationsDisabled="NoopAnimations"===s,null!=u&&(this.tabIndex=parseInt(u)??this.defaultTabIndex),this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){const e=this._elementRef.nativeElement;this._isBasicChip=e.hasAttribute(this.basicChipAttrName)||e.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Ri(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!(!this.trailingIcon&&!this.removeIcon)}_handleKeydown(e){(8===e.keyCode||46===e.keyCode)&&(e.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(e){return this._getActions().find(i=>{const o=i._elementRef.nativeElement;return o===e||o.contains(e)})}_getActions(){const e=[];return this.primaryAction&&e.push(this.primaryAction),this.removeIcon&&e.push(this.removeIcon),this.trailingIcon&&e.push(this.trailingIcon),e}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{const i=null!==e;i!==this._hasFocusInternal&&(this._hasFocusInternal=i,i?this._onFocus.next({chip:this}):this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>this._ngZone.run(()=>this._onBlur.next({chip:this}))))})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(ut),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,kC,5),gt(r,MC,5),gt(r,TC,5),gt(r,kC,5),gt(r,MC,5),gt(r,TC,5)),2&i){let a;Oe(a=Ae())&&(o.leadingIcon=a.first),Oe(a=Ae())&&(o.trailingIcon=a.first),Oe(a=Ae())&&(o.removeIcon=a.first),Oe(a=Ae())&&(o._allLeadingIcons=a),Oe(a=Ae())&&(o._allTrailingIcons=a),Oe(a=Ae())&&(o._allRemoveIcons=a)}},viewQuery:function(i,o){if(1&i&&vt(Gl,5),2&i){let r;Oe(r=Ae())&&(o.primaryAction=r.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:30,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("role",o.role)("tabindex",o.role?o.tabIndex:null)("aria-label",o.ariaLabel),et("mdc-evolution-chip",!o._isBasicChip)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-basic-chip",o._isBasicChip)("mat-mdc-standard-chip",!o._isBasicChip)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon())("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",role:"role",id:"id",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaDescription:[ge.None,"aria-description","ariaDescription"],value:"value",removable:"removable",highlighted:"highlighted"},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[Ye([{provide:Yf,useExisting:t}]),ve],ngContentSelectors:CP,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing",4,"ngIf"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(yP),D(0,"span",0),d(1,"span",1)(2,"span",2),y(3,eX,2,0,"span",3),d(4,"span",4),Ze(5),D(6,"span",5),l()()(),y(7,tX,2,0,"span",6)),2&i&&(m(2),f("isInteractive",!1),m(),f("ngIf",o.leadingIcon),m(4),f("ngIf",o._hasTrailingIcon()))},dependencies:[It,Gl],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),Qf=(()=>{class t{constructor(e,i){this._elementRef=e,this._document=i}initialize(e){this.getNativeElement().focus(),this.setValue(e)}getNativeElement(){return this._elementRef.nativeElement}setValue(e){this.getNativeElement().textContent=e,this._moveCursorToEndOfInput()}getValue(){return this.getNativeElement().textContent||""}_moveCursorToEndOfInput(){const e=this._document.createRange();e.selectNodeContents(this.getNativeElement()),e.collapse(!1);const i=window.getSelection();i.removeAllRanges(),i.addRange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["span","matChipEditInput",""]],hostAttrs:["role","textbox","tabindex","-1","contenteditable","true",1,"mat-chip-edit-input"]})}return t})(),IC=(()=>{class t extends uc{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this.basicChipAttrName="mat-basic-chip-row",this._editStartPending=!1,this.editable=!1,this.edited=new Ne,this._isEditing=!1,this.role="row",this._onBlur.pipe(ot(this.destroyed)).subscribe(()=>{this._isEditing&&!this._editStartPending&&this._onEditFinish()})}_hasTrailingIcon(){return!this._isEditing&&super._hasTrailingIcon()}_handleFocus(){!this._isEditing&&!this.disabled&&this.focus()}_handleKeydown(e){13!==e.keyCode||this.disabled?this._isEditing?e.stopPropagation():super._handleKeydown(e):this._isEditing?(e.preventDefault(),this._onEditFinish()):this.editable&&this._startEditing(e)}_handleDoubleclick(e){!this.disabled&&this.editable&&this._startEditing(e)}_startEditing(e){if(!this.primaryAction||this.removeIcon&&this._getSourceAction(e.target)===this.removeIcon)return;const i=this.value;this._isEditing=this._editStartPending=!0,this._changeDetectorRef.detectChanges(),setTimeout(()=>{this._getEditInput().initialize(i),this._editStartPending=!1})}_onEditFinish(){this._isEditing=this._editStartPending=!1,this.edited.emit({chip:this,value:this._getEditInput().getValue()}),(this._document.activeElement===this._getEditInput().getNativeElement()||this._document.activeElement===this._document.body)&&this.primaryAction.focus()}_isRippleDisabled(){return super._isRippleDisabled()||this._isEditing}_getEditInput(){return this.contentEditInput||this.defaultEditInput}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(ut),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-row"],["","mat-chip-row",""],["mat-basic-chip-row"],["","mat-basic-chip-row",""]],contentQueries:function(i,o,r){if(1&i&>(r,Qf,5),2&i){let a;Oe(a=Ae())&&(o.contentEditInput=a.first)}},viewQuery:function(i,o){if(1&i&&vt(Qf,5),2&i){let r;Oe(r=Ae())&&(o.defaultEditInput=r.first)}},hostAttrs:[1,"mat-mdc-chip","mat-mdc-chip-row","mdc-evolution-chip"],hostVars:27,hostBindings:function(i,o){1&i&&A("focus",function(a){return o._handleFocus(a)})("dblclick",function(a){return o._handleDoubleclick(a)}),2&i&&(ao("id",o.id),Xe("tabindex",o.disabled?null:-1)("aria-label",null)("aria-description",null)("role",o.role),et("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-chip-editing",o._isEditing)("mat-mdc-chip-editable",o.editable)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon()))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",editable:"editable"},outputs:{edited:"edited"},features:[Ye([{provide:uc,useExisting:t},{provide:Yf,useExisting:t}]),ve],ngContentSelectors:hX,decls:10,vars:12,consts:[[4,"ngIf"],["role","gridcell","matChipAction","",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary",3,"tabIndex","disabled"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label",3,"ngSwitch"],[4,"ngSwitchCase"],["aria-hidden","true",1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing","role","gridcell",4,"ngIf"],[1,"cdk-visually-hidden",3,"id"],[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[4,"ngIf","ngIfElse"],["defaultMatChipEditInput",""],["matChipEditInput",""],["role","gridcell",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(uX),y(0,oX,2,0,"ng-container",0),d(1,"span",1),y(2,rX,2,0,"span",2),d(3,"span",3),y(4,aX,2,0,"ng-container",4)(5,lX,4,2,"ng-container",4),D(6,"span",5),l()(),y(7,dX,2,0,"span",6),d(8,"span",7),h(9),l()),2&i&&(f("ngIf",!o._isEditing),m(),f("tabIndex",o.tabIndex)("disabled",o.disabled),Xe("aria-label",o.ariaLabel)("aria-describedby",o._ariaDescriptionId),m(),f("ngIf",o.leadingIcon),m(),f("ngSwitch",o._isEditing),m(),f("ngSwitchCase",!1),m(),f("ngSwitchCase",!0),m(2),f("ngIf",o._hasTrailingIcon()),m(),f("id",o._ariaDescriptionId),m(),Pe(o.ariaDescription))},dependencies:[It,xl,Sp,Gl,Qf],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();class vX{constructor(n){}}const yX=os(vX);let EC=(()=>{class t extends yX{get chipFocusChanges(){return this._getChipStream(e=>e._onFocus)}get chipDestroyedChanges(){return this._getChipStream(e=>e.destroyed)}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get empty(){return!this._chips||0===this._chips.length}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}set role(e){this._explicitRole=e}get focused(){return this._hasFocusedChip()}constructor(e,i,o){super(e),this._elementRef=e,this._changeDetectorRef=i,this._dir=o,this._lastDestroyedFocusedChipIndex=null,this._destroyed=new qe,this._defaultRole="presentation",this._disabled=!1,this._explicitRole=null,this._chipActions=new oa}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(e=>e._hasFocus())}_syncChipsState(){this._chips&&this._chips.forEach(e=>{e.disabled=this._disabled,e._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(e){this._originatesFromChip(e)&&this._keyManager.onKeydown(e)}_isValidIndex(e){return e>=0&&ethis.tabIndex=e)}}_getChipStream(e){return this._chips.changes.pipe(an(null),gn(()=>Ri(...this._chips.map(e))))}_originatesFromChip(e){let i=e.target;for(;i&&i!==this._elementRef.nativeElement;){if(i.classList.contains("mat-mdc-chip"))return!0;i=i.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(an(this._chips)).subscribe(e=>{const i=[];e.forEach(o=>o._getActions().forEach(r=>i.push(r))),this._chipActions.reset(i),this._chipActions.notifyOnChanges()}),this._keyManager=new Jp(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(e=>this._skipPredicate(e)),this.chipFocusChanges.pipe(ot(this._destroyed)).subscribe(({chip:e})=>{const i=e._getSourceAction(document.activeElement);i&&this._keyManager.updateActiveItem(i)}),this._dir?.change.pipe(ot(this._destroyed)).subscribe(e=>this._keyManager.withHorizontalOrientation(e))}_skipPredicate(e){return!e.isInteractive||e.disabled}_trackChipSetChanges(){this._chips.changes.pipe(an(null),ot(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(ot(this._destroyed)).subscribe(e=>{const o=this._chips.toArray().indexOf(e.chip);this._isValidIndex(o)&&e.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=o)})}_redirectDestroyedChipFocus(){if(null!=this._lastDestroyedFocusedChipIndex){if(this._chips.length){const e=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),i=this._chips.toArray()[e];i.disabled?1===this._chips.length?this.focus():this._keyManager.setPreviousItemActive():i.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-set"]],contentQueries:function(i,o,r){if(1&i&>(r,uc,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("role",o.role)},inputs:{disabled:"disabled",role:"role"},features:[ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();class xX{constructor(n,e){this.source=n,this.value=e}}class DX extends EC{constructor(n,e,i,o,r,a,s){super(n,e,i),this._defaultErrorStateMatcher=o,this._parentForm=r,this._parentFormGroup=a,this.ngControl=s,this.stateChanges=new qe}}const SX=v0(DX);let MP=(()=>{class t extends SX{get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get id(){return this._chipInput.id}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this._chips||0===this._chips.length)}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get focused(){return this._chipInput.focused||this._hasFocusedChip()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get shouldLabelFloat(){return!this.empty||this.focused}get value(){return this._value}set value(e){this._value=e}get chipBlurChanges(){return this._getChipStream(e=>e._onBlur)}constructor(e,i,o,r,a,s,c){super(e,i,o,s,r,a,c),this.controlType="mat-chip-grid",this._defaultRole="grid",this._ariaDescribedbyIds=[],this._onTouched=()=>{},this._onChange=()=>{},this._value=[],this.change=new Ne,this.valueChange=new Ne,this._chips=void 0,this.ngControl&&(this.ngControl.valueAccessor=this)}ngAfterContentInit(){this.chipBlurChanges.pipe(ot(this._destroyed)).subscribe(()=>{this._blur(),this.stateChanges.next()}),Ri(this.chipFocusChanges,this._chips.changes).pipe(ot(this._destroyed)).subscribe(()=>this.stateChanges.next())}ngAfterViewInit(){super.ngAfterViewInit()}ngDoCheck(){this.ngControl&&this.updateErrorState()}ngOnDestroy(){super.ngOnDestroy(),this.stateChanges.complete()}registerInput(e){this._chipInput=e,this._chipInput.setDescribedByIds(this._ariaDescribedbyIds)}onContainerClick(e){!this.disabled&&!this._originatesFromChip(e)&&this.focus()}focus(){this.disabled||this._chipInput.focused||(!this._chips.length||this._chips.first.disabled?Promise.resolve().then(()=>this._chipInput.focus()):this._chips.length&&this._keyManager.setFirstItemActive(),this.stateChanges.next())}setDescribedByIds(e){this._ariaDescribedbyIds=e,this._chipInput?.setDescribedByIds(e)}writeValue(e){this._value=e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this.stateChanges.next()}_blur(){this.disabled||setTimeout(()=>{this.focused||(this._propagateChanges(),this._markAsTouched())})}_allowFocusEscape(){this._chipInput.focused||super._allowFocusEscape()}_handleKeydown(e){9===e.keyCode?this._chipInput.focused&&An(e,"shiftKey")&&this._chips.length&&!this._chips.last.disabled?(e.preventDefault(),this._keyManager.activeItem?this._keyManager.setActiveItem(this._keyManager.activeItem):this._focusLastChip()):super._allowFocusEscape():this._chipInput.focused||super._handleKeydown(e),this.stateChanges.next()}_focusLastChip(){this._chips.length&&this._chips.last.focus()}_propagateChanges(){const e=this._chips.length?this._chips.toArray().map(i=>i.value):[];this._value=e,this.change.emit(new xX(this,e)),this.valueChange.emit(e),this._onChange(e),this._changeDetectorRef.markForCheck()}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8),_(hs,8),_(wi,8),_(nf),_(xr,10))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-grid"]],contentQueries:function(i,o,r){if(1&i&>(r,IC,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mat-mdc-chip-grid","mdc-evolution-chip-set"],hostVars:10,hostBindings:function(i,o){1&i&&A("focus",function(){return o.focus()})("blur",function(){return o._blur()}),2&i&&(ao("tabIndex",o._chips&&0===o._chips.length?-1:o.tabIndex),Xe("role",o.role)("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState),et("mat-mdc-chip-list-disabled",o.disabled)("mat-mdc-chip-list-invalid",o.errorState)("mat-mdc-chip-list-required",o.required))},inputs:{tabIndex:"tabIndex",disabled:"disabled",placeholder:"placeholder",required:"required",value:"value",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},features:[Ye([{provide:Af,useExisting:t}]),ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})(),kX=0,TP=(()=>{class t{set chipGrid(e){e&&(this._chipGrid=e,this._chipGrid.registerInput(this))}get addOnBlur(){return this._addOnBlur}set addOnBlur(e){this._addOnBlur=$e(e)}get disabled(){return this._disabled||this._chipGrid&&this._chipGrid.disabled}set disabled(e){this._disabled=$e(e)}get empty(){return!this.inputElement.value}constructor(e,i,o){this._elementRef=e,this.focused=!1,this._addOnBlur=!1,this.chipEnd=new Ne,this.placeholder="",this.id="mat-mdc-chip-list-input-"+kX++,this._disabled=!1,this.inputElement=this._elementRef.nativeElement,this.separatorKeyCodes=i.separatorKeyCodes,o&&this.inputElement.classList.add("mat-mdc-form-field-input-control")}ngOnChanges(){this._chipGrid.stateChanges.next()}ngOnDestroy(){this.chipEnd.complete()}ngAfterContentInit(){this._focusLastChipOnBackspace=this.empty}_keydown(e){if(e){if(8===e.keyCode&&this._focusLastChipOnBackspace)return this._chipGrid._focusLastChip(),void e.preventDefault();this._focusLastChipOnBackspace=!1}this._emitChipEnd(e)}_keyup(e){!this._focusLastChipOnBackspace&&8===e.keyCode&&this.empty&&(this._focusLastChipOnBackspace=!0,e.preventDefault())}_blur(){this.addOnBlur&&this._emitChipEnd(),this.focused=!1,this._chipGrid.focused||this._chipGrid._blur(),this._chipGrid.stateChanges.next()}_focus(){this.focused=!0,this._focusLastChipOnBackspace=this.empty,this._chipGrid.stateChanges.next()}_emitChipEnd(e){(!e||this._isSeparatorKey(e))&&(this.chipEnd.emit({input:this.inputElement,value:this.inputElement.value,chipInput:this}),e?.preventDefault())}_onInput(){this._chipGrid.stateChanges.next()}focus(){this.inputElement.focus()}clear(){this.inputElement.value="",this._focusLastChipOnBackspace=!0}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}_isSeparatorKey(e){return!An(e)&&new Set(this.separatorKeyCodes).has(e.keyCode)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Zf),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matChipInputFor",""]],hostAttrs:[1,"mat-mdc-chip-input","mat-mdc-input-element","mdc-text-field__input","mat-input-element"],hostVars:6,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._keydown(a)})("keyup",function(a){return o._keyup(a)})("blur",function(){return o._blur()})("focus",function(){return o._focus()})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id),Xe("disabled",o.disabled||null)("placeholder",o.placeholder||null)("aria-invalid",o._chipGrid&&o._chipGrid.ngControl?o._chipGrid.ngControl.invalid:null)("aria-required",o._chipGrid&&o._chipGrid.required||null)("required",o._chipGrid&&o._chipGrid.required||null))},inputs:{chipGrid:[ge.None,"matChipInputFor","chipGrid"],addOnBlur:[ge.None,"matChipInputAddOnBlur","addOnBlur"],separatorKeyCodes:[ge.None,"matChipInputSeparatorKeyCodes","separatorKeyCodes"],placeholder:"placeholder",id:"id",disabled:"disabled"},outputs:{chipEnd:"matChipInputTokenEnd"},exportAs:["matChipInput","matChipInputFor"],features:[fi]})}return t})(),OC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[nf,{provide:Zf,useValue:{separatorKeyCodes:[13]}}],imports:[Mt,Vn,as,Mt]})}return t})();class IP{constructor(){this.expansionModel=new qu(!0)}toggle(n){this.expansionModel.toggle(this._trackByValue(n))}expand(n){this.expansionModel.select(this._trackByValue(n))}collapse(n){this.expansionModel.deselect(this._trackByValue(n))}isExpanded(n){return this.expansionModel.isSelected(this._trackByValue(n))}toggleDescendants(n){this.expansionModel.isSelected(this._trackByValue(n))?this.collapseDescendants(n):this.expandDescendants(n)}collapseAll(){this.expansionModel.clear()}expandDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.select(...e.map(i=>this._trackByValue(i)))}collapseDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.deselect(...e.map(i=>this._trackByValue(i)))}_trackByValue(n){return this.trackBy?this.trackBy(n):n}}class EP extends IP{constructor(n,e,i){super(),this.getLevel=n,this.isExpandable=e,this.options=i,this.options&&(this.trackBy=this.options.trackBy)}getDescendants(n){const i=[];for(let o=this.dataNodes.indexOf(n)+1;othis._trackByValue(n)))}}let OX=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),OP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[OX,Mt,Mt]})}return t})();class LX{constructor(n,e,i,o){this.transformFunction=n,this.getLevel=e,this.isExpandable=i,this.getChildren=o}_flattenNode(n,e,i,o){const r=this.transformFunction(n,e);if(i.push(r),this.isExpandable(r)){const a=this.getChildren(n);a&&(Array.isArray(a)?this._flattenChildren(a,e,i,o):a.pipe(Pt(1)).subscribe(s=>{this._flattenChildren(s,e,i,o)}))}return i}_flattenChildren(n,e,i,o){n.forEach((r,a)=>{let s=o.slice();s.push(a!=n.length-1),this._flattenNode(r,e+1,i,s)})}flattenNodes(n){let e=[];return n.forEach(i=>this._flattenNode(i,0,e,[])),e}expandFlattenedNodes(n,e){let i=[],o=[];return o[0]=!0,n.forEach(r=>{let a=!0;for(let s=0;s<=this.getLevel(r);s++)a=a&&o[s];a&&i.push(r),this.isExpandable(r)&&(o[this.getLevel(r)+1]=e.isExpanded(r))}),i}}class AP extends vf{get data(){return this._data.value}set data(n){this._data.next(n),this._flattenedData.next(this._treeFlattener.flattenNodes(this.data)),this._treeControl.dataNodes=this._flattenedData.value}constructor(n,e,i){super(),this._treeControl=n,this._treeFlattener=e,this._flattenedData=new pt([]),this._expandedData=new pt([]),this._data=new pt([]),i&&(this.data=i)}connect(n){return Ri(n.viewChange,this._treeControl.expansionModel.changed,this._flattenedData).pipe(nt(()=>(this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value,this._treeControl)),this._expandedData.value)))}disconnect(){}}function BX(t,n){}const VX=t=>({animationDuration:t}),jX=(t,n)=>({value:t,params:n});function zX(t,n){1&t&&Ze(0)}const PP=["*"],HX=["tabListContainer"],UX=["tabList"],$X=["tabListInner"],GX=["nextPaginator"],qX=["previousPaginator"],WX=["tabBodyWrapper"],KX=["tabHeader"];function ZX(t,n){}function YX(t,n){1&t&&y(0,ZX,0,0,"ng-template",14),2&t&&f("cdkPortalOutlet",C().$implicit.templateLabel)}function QX(t,n){1&t&&h(0),2&t&&Pe(C().$implicit.textLabel)}function XX(t,n){if(1&t){const e=_e();d(0,"div",6,7),A("click",function(){const o=ie(e),r=o.$implicit,a=o.index,s=C(),c=Ft(1);return ne(s._handleClick(r,c,a))})("cdkFocusChange",function(o){const a=ie(e).index;return ne(C()._tabFocusChanged(o,a))}),D(2,"span",8)(3,"div",9),d(4,"span",10)(5,"span",11),y(6,YX,1,1,"ng-template",12)(7,QX,1,1,"ng-template",null,13,br),l()()()}if(2&t){const e=n.$implicit,i=n.index,o=Ft(1),r=Ft(8),a=C();et("mdc-tab--active",a.selectedIndex===i),f("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Xe("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),m(3),f("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),m(3),f("ngIf",e.templateLabel)("ngIfElse",r)}}function JX(t,n){if(1&t){const e=_e();d(0,"mat-tab-body",15),A("_onCentered",function(){return ie(e),ne(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return ie(e),ne(C()._setTabBodyWrapperHeight(o))}),l()}if(2&t){const e=n.$implicit,i=n.index,o=C();et("mat-mdc-tab-body-active",o.selectedIndex===i),f("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Xe("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))("aria-hidden",o.selectedIndex!==i)}}const eJ={translateTab:Lo("translateTab",[mn("center, void, left-origin-center, right-origin-center",Zt({transform:"none"})),mn("left",Zt({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),mn("right",Zt({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Qi("* => left, * => right, left => center, right => center",Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Qi("void => left-origin-center",[Zt({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Qi("void => right-origin-center",[Zt({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let tJ=(()=>{class t extends Ca{constructor(e,i,o,r){super(e,i,r),this._host=o,this._centeringSub=de.EMPTY,this._leavingSub=de.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(an(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(Qt(()=>RP)),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabBodyHost",""]],features:[ve]})}return t})(),iJ=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=de.EMPTY,this._translateTabComplete=new qe,this._onCentering=new Ne,this._beforeCentering=new Ne,this._afterLeavingCenter=new Ne,this._onCentered=new Ne(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(r=>{this._computePositionAnimationState(r),o.markForCheck()})),this._translateTabComplete.pipe(Ru((r,a)=>r.fromState===a.fromState&&r.toState===a.toState)).subscribe(r=>{this._isCenterPosition(r.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(r.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{_content:[ge.None,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}})}return t})(),RP=(()=>{class t extends iJ{constructor(e,i,o){super(e,i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&vt(Ca,5),2&i){let r;Oe(r=Ae())&&(o._portalHost=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[ve],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,o){1&i&&(d(0,"div",0,1),A("@translateTab.start",function(a){return o._onTranslateTabStarted(a)})("@translateTab.done",function(a){return o._translateTabComplete.next(a)}),y(2,BX,0,0,"ng-template",2),l()),2&i&&f("@translateTab",zM(3,jX,o._position,hi(1,VX,o.animationDuration)))},dependencies:[tJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[eJ.translateTab]}})}return t})();const nJ=new se("MatTabContent");let oJ=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabContent",""]],features:[Ye([{provide:nJ,useExisting:t}])]})}return t})();const rJ=new se("MatTabLabel"),NP=new se("MAT_TAB");let FC=(()=>{class t extends CY{constructor(e,i,o){super(e,i),this._closestTab=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi),_(NP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Ye([{provide:rJ,useExisting:t}]),ve]})}return t})();const LC="mdc-tab-indicator--active",FP="mdc-tab-indicator--no-transition";class aJ{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function sJ(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=$e(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(LC);const i=e.getBoundingClientRect(),o=n.width/i.width,r=n.left-i.left;e.classList.add(FP),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(FP),e.classList.add(LC),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(LC)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const lJ=jr(class{}),dJ=sJ((()=>{class t extends lJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})());let LP=(()=>{class t extends dJ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Xe("aria-disabled",!!o.disabled),et("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[ve]})}return t})();const uJ=jr(class{}),BP=new se("MAT_TAB_GROUP");let hJ=(()=>{class t extends uJ{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new qe,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ya(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(BP,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(gi,7),2&i){let r;Oe(r=Ae())&&(o._implicitContent=r.first)}},inputs:{textLabel:[ge.None,"label","textLabel"],ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[ve,fi]})}return t})(),eg=(()=>{class t extends hJ{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,oJ,7,gi),gt(r,FC,5)),2&i){let a;Oe(a=Ae())&&(o._explicitContent=a.first),Oe(a=Ae())&&(o.templateLabel=a.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Ye([{provide:NP,useExisting:t}]),ve],ngContentSelectors:PP,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),y(0,zX,1,0,"ng-template"))},encapsulation:2})}return t})();const VP=Ja({passive:!0});let fJ=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=yi(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,r,a,s,c){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=r,this._ngZone=a,this._platform=s,this._animationMode=c,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new qe,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new qe,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new Ne,this.indexFocused=new Ne,a.runOutsideAngular(()=>{er(e.nativeElement,"mouseleave").pipe(ot(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){er(this._previousPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),er(this._nextPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ke("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Jp(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Pt(1)).subscribe(o),Ri(e,i,this._items.changes,this._itemsResized()).pipe(ot(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return"function"!=typeof ResizeObserver?jo:this._items.changes.pipe(an(this._items),gn(e=>new li(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),l0(1),kt(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!An(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:r,offsetWidth:a}=i.elementRef.nativeElement;let s,c;"ltr"==this._getLayoutDirection()?(s=r,c=s+a):(c=this._tabListInner.nativeElement.offsetWidth-r,s=c-a);const u=this.scrollDistance,p=this.scrollDistance+o;sp&&(this.scrollDistance+=Math.min(c-p,s-u))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Pf(650,100).pipe(ot(Ri(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:r}=this._scrollHeader(e);(0===r||r>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disablePagination:"disablePagination"}})}return t})(),gJ=(()=>{class t extends fJ{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e)}constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disableRipple:"disableRipple"},features:[ve]})}return t})(),_J=(()=>{class t extends gJ{constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c)}ngAfterContentInit(){this._inkBar=new aJ(this._items),super.ngAfterContentInit()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&>(r,LP,4),2&i){let a;Oe(a=Ae())&&(o._items=a)}},viewQuery:function(i,o){if(1&i&&(vt(HX,7),vt(UX,7),vt($X,7),vt(GX,5),vt(qX,5)),2&i){let r;Oe(r=Ae())&&(o._tabListContainer=r.first),Oe(r=Ae())&&(o._tabList=r.first),Oe(r=Ae())&&(o._tabListInner=r.first),Oe(r=Ae())&&(o._nextPaginator=r.first),Oe(r=Ae())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[ve],ngContentSelectors:PP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(i,o){1&i&&(Ut(),d(0,"button",0,1),A("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(a){return o._handlePaginatorPress("before",a)})("touchend",function(){return o._stopInterval()}),D(2,"div",2),l(),d(3,"div",3,4),A("keydown",function(a){return o._handleKeydown(a)}),d(5,"div",5,6),A("cdkObserveContent",function(){return o._onContentChanges()}),d(7,"div",7,8),Ze(9),l()()(),d(10,"button",9,10),A("mousedown",function(a){return o._handlePaginatorPress("after",a)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),D(12,"div",2),l()),2&i&&(et("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),f("matRippleDisabled",o._disableScrollBefore||o.disableRipple)("disabled",o._disableScrollBefore||null),m(3),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(7),et("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),f("matRippleDisabled",o._disableScrollAfter||o.disableRipple)("disabled",o._disableScrollAfter||null))},dependencies:[rs,iE],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2})}return t})();const jP=new se("MAT_TABS_CONFIG");let bJ=0;const vJ=is(ns(class{constructor(t){this._elementRef=t}}),"primary");let yJ=(()=>{class t extends vJ{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=yi(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=yi(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=$e(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,r){super(e),this._changeDetectorRef=i,this._animationMode=r,this._tabs=new oa,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=de.EMPTY,this._tabLabelSubscription=de.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new Ne,this.focusChange=new Ne,this.animationDone=new Ne,this.selectedTabChange=new Ne(!0),this._groupId=bJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,r)=>o.isActive=r===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let r=0;r{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(an(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new CJ;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Ri(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[ve]})}return t})(),BC=(()=>{class t extends yJ{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=$e(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=$e(e)}constructor(e,i,o,r){super(e,i,o,r),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&>(r,eg,5),2&i){let a;Oe(a=Ae())&&(o._allTabs=a)}},viewQuery:function(i,o){if(1&i&&(vt(WX,5),vt(KX,5)),2&i){let r;Oe(r=Ae())&&(o._tabBodyWrapper=r.first),Oe(r=Ae())&&(o._tabHeader=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-tab-group"],hostVars:8,hostBindings:function(i,o){2&i&&(Sn("--mat-tab-animation-duration",o.animationDuration),et("mat-mdc-tab-group-dynamic-height",o.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===o.headerPosition)("mat-mdc-tab-group-stretch-tabs",o.stretchTabs))},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:[ge.None,"mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Ye([{provide:BP,useExisting:t}]),ve],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(i,o){1&i&&(d(0,"mat-tab-header",0,1),A("indexFocused",function(a){return o._focusChanged(a)})("selectFocusedIndex",function(a){return o.selectedIndex=a}),y(2,XX,9,17,"div",2),l(),d(3,"div",3,4),y(5,JX,1,12,"mat-tab-body",5),l()),2&i&&(f("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),m(2),f("ngForOf",o._tabs),m(),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(2),f("ngForOf",o._tabs))},dependencies:[yr,rn,It,Ca,rs,tq,RP,LP,_J],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})();class CJ{}let zP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,cc,as,Zp,b0,Mt]})}return t})();function wJ(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"button",3),A("click",function(){return ie(e),ne(C().action())}),h(2),l()()}if(2&t){const e=C();m(2),xe(" ",e.data.action," ")}}const xJ=["label"];function DJ(t,n){}const SJ=Math.pow(2,31)-1;class VC{constructor(n,e){this._overlayRef=e,this._afterDismissed=new qe,this._afterOpened=new qe,this._onAction=new qe,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,SJ))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const HP=new se("MatSnackBarData");class tg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let kJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),MJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),TJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),IJ=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static#e=this.\u0275fac=function(i){return new(i||t)(_(VC),_(HP))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),h(1),l(),y(2,wJ,3,1,"div",1)),2&i&&(m(),xe(" ",o.data.message,"\n"),m(),f("ngIf",o.hasAction))},dependencies:[It,Yt,kJ,MJ,TJ],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})();const EJ={snackBarState:Lo("state",[mn("void, hidden",Zt({transform:"scale(0.8)",opacity:0})),mn("visible",Zt({transform:"scale(1)",opacity:1})),Qi("* => visible",Yi("150ms cubic-bezier(0, 0, 0.2, 1)")),Qi("* => void, * => hidden",Yi("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zt({opacity:0})))])};let OJ=0,AJ=(()=>{class t extends Ff{constructor(e,i,o,r,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=r,this.snackBarConfig=a,this._document=De(ut),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new qe,this._onExit=new qe,this._onEnter=new qe,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+OJ++,this.attachDomPortal=s=>{this._assertNotAttached();const c=this._portalOutlet.attachDomPortal(s);return this._afterPortalAttached(),c},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const r=this._onEnter;this._ngZone.run(()=>{r.next(),r.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(We),_(Be),_(Lt),_(ci),_(tg))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},features:[ve]})}return t})(),PJ=(()=>{class t extends AJ{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&vt(xJ,7),2&i){let r;Oe(r=Ae())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(i,o){1&i&&ep("@state.done",function(a){return o.onAnimationEnd(a)}),2&i&&Zm("@state",o._animationState)},features:[ve],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1,2)(3,"div",3),y(4,DJ,0,0,"ng-template",4),l(),D(5,"div"),l()()),2&i&&(m(5),Xe("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Ca],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[EJ.snackBarState]}})}return t})(),jC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[dc,cc,Vn,lf,Mt,Mt]})}return t})();const UP=new se("mat-snack-bar-default-options",{providedIn:"root",factory:function RJ(){return new tg}});let NJ=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,r,a,s){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=r,this._parentSnackBar=a,this._defaultConfig=s,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const r={...this._defaultConfig,...o};return r.data={message:e,action:i},r.announcementMessage===e&&(r.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,r)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const r=ji.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:tg,useValue:i}]}),a=new Ll(this.snackBarContainerComponent,i.viewContainerRef,r),s=e.attach(a);return s.instance.snackBarConfig=i,s.instance}_attach(e,i){const o={...new tg,...this._defaultConfig,...i},r=this._createOverlay(o),a=this._attachSnackBarContainer(r,o),s=new VC(a,r);if(e instanceof gi){const c=new ya(e,null,{$implicit:o.data,snackBarRef:s});s.instance=a.attachTemplatePortal(c)}else{const c=this._createInjector(o,s),u=new Ll(e,void 0,c),p=a.attachComponentPortal(u);s.instance=p.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(ot(r.detachments())).subscribe(c=>{r.overlayElement.classList.toggle(this.handsetCssClass,c.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(s,o),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Bl;i.direction=e.direction;let o=this._overlay.position().global();const r="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,s=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):s?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return ji.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:VC,useValue:i},{provide:HP,useValue:e.data}]})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),FJ=(()=>{class t extends NJ{constructor(e,i,o,r,a,s){super(e,i,o,r,a,s),this.simpleSnackBarComponent=IJ,this.snackBarContainerComponent=PJ,this.handsetCssClass="mat-mdc-snack-bar-handset"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:jC})}return t})();function LJ(t,n){}class ig{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let $P=(()=>{class t extends Ff{constructor(e,i,o,r,a,s,c,u){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=r,this._interactivityChecker=a,this._ngZone=s,this._overlayRef=c,this._focusMonitor=u,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this.attachDomPortal=p=>{this._portalOutlet.hasAttached();const g=this._portalOutlet.attachDomPortal(p);return this._contentAttached(),g},this._document=o,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=Hp(),r=this._elementRef.nativeElement;(!o||o===this._document.body||o===r||r.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=Hp();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Hp())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ig),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Xe("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[ve],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&y(0,LJ,0,0,"ng-template",0)},dependencies:[Ca],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})();class zC{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new qe,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const GP=new se("DialogScrollStrategy"),BJ=new se("DialogData"),VJ=new se("DefaultDialogConfig"),zJ={provide:GP,deps:[Qn],useFactory:function jJ(t){return()=>t.scrollStrategies.block()}};let HJ=0,qP=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,r,a,s){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=r,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._ariaHiddenElements=new Map,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s}open(e,i){(i={...this._defaultOptions||new ig,...i}).id=i.id||"cdk-dialog-"+HJ++,i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),a=this._overlay.create(r),s=new zC(a,i),c=this._attachContainer(a,s,i);return s.containerInstance=c,this._attachDialogContent(e,s,c,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){HC(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){HC(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),HC(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Bl({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,a=[{provide:ig,useValue:o},{provide:zC,useValue:i},{provide:ah,useValue:e}];let s;o.container?"function"==typeof o.container?s=o.container:(s=o.container.type,a.push(...o.container.providers(o))):s=$P;const c=new Ll(s,o.viewContainerRef,ji.create({parent:r||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(c).instance}_attachDialogContent(e,i,o,r){if(e instanceof gi){const a=this._createInjector(r,i,o,void 0);let s={$implicit:r.data,dialogRef:i};r.templateContext&&(s={...s,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new ya(e,null,s,a))}else{const a=this._createInjector(r,i,o,this._injector),s=o.attachComponentPortal(new Ll(e,r.viewContainerRef,a,r.componentFactoryResolver));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(e,i,o,r){const a=e.injector||e.viewContainerRef?.injector,s=[{provide:BJ,useValue:e.data},{provide:zC,useValue:i}];return e.providers&&("function"==typeof e.providers?s.push(...e.providers(i,e,o)):s.push(...e.providers)),e.direction&&(!a||!a.get(fn,null,{optional:!0}))&&s.push({provide:fn,useValue:{value:e.direction,change:Ke()}}),ji.create({parent:a||r,providers:s})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,a)=>{r?a.setAttribute("aria-hidden",r):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const r=i[o];r!==e&&"SCRIPT"!==r.nodeName&&"STYLE"!==r.nodeName&&!r.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(r,r.getAttribute("aria-hidden")),r.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(VJ,8),X(t,12),X(Lf),X(GP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function HC(t,n){let e=t.length;for(;e--;)n(t[e])}let UJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[qP,zJ],imports:[dc,cc,b0,cc]})}return t})();function $J(t,n){}class ng{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const UC="mdc-dialog--open",WP="mdc-dialog--opening",KP="mdc-dialog--closing";let WJ=(()=>{class t extends $P{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this._animationStateChanged=new Ne}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ng),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],features:[ve],decls:0,vars:0,template:function(i,o){},encapsulation:2})}return t})();const ZP="--mat-dialog-transition-duration";function YP(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?yi(t.substring(0,t.length-2)):t.endsWith("s")?1e3*yi(t.substring(0,t.length-1)):"0"===t?0:null}let KJ=(()=>{class t extends WJ{constructor(e,i,o,r,a,s,c,u,p){super(e,i,o,r,a,s,c,p),this._animationMode=u,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?YP(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?YP(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(WP,UC)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(UC),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(UC),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(KP)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(WP,KP)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ng),_(Fu),_(We),_(ah),_(ui,8),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(i,o){2&i&&(ao("id",o._config.id),Xe("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),et("_mat-animation-noopable",!o._animationsEnabled))},features:[ve],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,$J,0,0,"ng-template",2),l()())},dependencies:[Ca],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return t})();class bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new qe,this._beforeClosed=new qe,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(kt(o=>"opened"===o.state),Pt(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(kt(o=>"closed"===o.state),Pt(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Ri(this.backdropClick(),this.keydownEvents().pipe(kt(o=>27===o.keyCode&&!this.disableClose&&!An(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),QP(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(kt(e=>"closing"===e.state),Pt(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function QP(t,n,e){return t._closeInteractionType=n,t.close(e)}const mo=new se("MatMdcDialogData"),ZJ=new se("mat-mdc-dialog-default-options"),XP=new se("mat-mdc-dialog-scroll-strategy"),QJ={provide:XP,deps:[Qn],useFactory:function YJ(t){return()=>t.scrollStrategies.block()}};let XJ=0,JJ=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,r,a,s,c,u,p,g){this._overlay=e,this._defaultOptions=o,this._parentDialog=r,this._dialogRefConstructor=c,this._dialogContainerType=u,this._dialogDataToken=p,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._idPrefix="mat-dialog-",this.dialogConfigClass=ng,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s,this._dialog=i.get(qP)}open(e,i){let o;(i={...this._defaultOptions||new ng,...i}).id=i.id||`${this._idPrefix}${XJ++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ig,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,s,c)=>(o=new this._dialogRefConstructor(a,i,c),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentRef=r.componentRef,o.componentInstance=r.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Hr=(()=>{class t extends JJ{constructor(e,i,o,r,a,s,c,u){super(e,i,r,s,c,a,bn,KJ,mo,u),this._idPrefix="mat-mdc-dialog-"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(Ws,8),X(ZJ,8),X(XP),X(t,12),X(Lf),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),eee=0,zn=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=JP(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){QP(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&A("click",function(a){return o._onButtonClick(a)}),2&i&&Xe("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],type:"type",dialogResult:[ge.None,"mat-dialog-close","dialogResult"],_matDialogClose:[ge.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[fi]})}return t})(),tee=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+eee++}ngOnInit(){this._dialogRef||(this._dialogRef=JP(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._dialogRef._containerInstance?._ariaLabelledByQueue?.push(this.id)})}ngOnDestroy(){const e=this._dialogRef?._containerInstance?._ariaLabelledByQueue;e&&Promise.resolve().then(()=>{const i=e.indexOf(this.id);i>-1&&e.splice(i,1)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]})}return t})(),So=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]})}return t})(),ko=(()=>{class t{constructor(){this.align="start"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"}})}return t})();function JP(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let eR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Hr,QJ],imports:[UJ,dc,cc,Mt,Mt]})}return t})();const iee=["tooltip"],iR=new se("mat-tooltip-scroll-strategy"),ree={provide:iR,deps:[Qn],useFactory:function oee(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},see=new se("mat-tooltip-default-options",{providedIn:"root",factory:function aee(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),nR="tooltip-panel",oR=Ja({passive:!0});let mee=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=$e(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=yi(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=yi(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=r,this._ngZone=a,this._platform=s,this._ariaDescriber=c,this._focusMonitor=u,this._dir=g,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new qe,this._scrollStrategy=p,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures)),g.change.pipe(ot(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(ot(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,oR)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ll(this._tooltipComponent,this._viewContainerRef);const r=this._tooltipInstance=o.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&r._origin instanceof Be)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(ot(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${nR}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(ot(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(ot(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&27===r.keyCode&&!An(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),r=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...r.main}),this._addOffset({...o.fallback,...r.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:r,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:r,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Pt(1),ot(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:r}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",a!==this._currentPosition){const s=this._overlayRef;if(s){const c=`${this._cssClassPrefix}-${nR}-`;s.removePanelClass(c+this._currentPosition),s.addPanelClass(c+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,oR)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{position:[ge.None,"matTooltipPosition","position"],positionAtOrigin:[ge.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[ge.None,"matTooltipDisabled","disabled"],showDelay:[ge.None,"matTooltipShowDelay","showDelay"],hideDelay:[ge.None,"matTooltipHideDelay","hideDelay"],touchGestures:[ge.None,"matTooltipTouchGestures","touchGestures"],message:[ge.None,"matTooltip","message"],tooltipClass:[ge.None,"matTooltipClass","tooltipClass"]}})}return t})(),vn=(()=>{class t extends mee{constructor(e,i,o,r,a,s,c,u,p,g,b,w){super(e,i,o,r,a,s,c,u,p,g,b,w),this._tooltipComponent=fee,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(oh),_(vi),_(We),_(ci),_(FG),_(zo),_(iR),_(fn,8),_(see,8),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-mdc-tooltip-disabled",o.disabled)},exportAs:["matTooltip"],features:[ve]})}return t})(),pee=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new qe,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,r=this._hideAnimation;if(i.classList.remove(e?r:o),i.classList.add(e?o:r),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(ui,8))};static#t=this.\u0275dir=Q({type:t})}return t})(),fee=(()=>{class t extends pee{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&vt(iee,7),2&i){let r;Oe(r=Ae())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,o){1&i&&A("mouseleave",function(a){return o._handleMouseLeave(a)}),2&i&&Sn("zoom",o.isVisible()?1:null)},features:[ve],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,o){1&i&&(d(0,"div",0,1),A("animationend",function(a){return o._handleAnimationEnd(a)}),d(2,"div",2),h(3),l()()),2&i&&(et("mdc-tooltip--multiline",o._isMultiline),f("ngClass",o.tooltipClass),m(3),Pe(o.message))},dependencies:[yr],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})(),$C=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ree],imports:[b0,Vn,dc,Mt,Mt,ms]})}return t})();const gee=["input"],_ee=["label"],bee=["*"],vee=new se("mat-checkbox-default-options",{providedIn:"root",factory:rR});function rR(){return{color:"accent",clickAction:"check-indeterminate"}}const yee={provide:uo,useExisting:Qt(()=>og),multi:!0};class Cee{}let wee=0;const aR=rR(),xee=os(is(ns(jr(class{constructor(t){this._elementRef=t}}))));let Dee=(()=>{class t extends xee{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=$e(e)}constructor(e,i,o,r,a,s,c){super(i),this._changeDetectorRef=o,this._ngZone=r,this._animationMode=s,this._options=c,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ne,this.indeterminateChange=new Ne,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||aR,this.color=this.defaultColor=this._options.color||aR.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++wee}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=$e(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=$e(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=$e(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const r=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(r)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gee,5),vt(_ee,5),vt(rs,5)),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first),Oe(r=Ae())&&(o._labelElement=r.first),Oe(r=Ae())&&(o.ripple=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[ve]})}return t})(),og=(()=>{class t extends Dee{constructor(e,i,o,r,a,s){super("mat-mdc-checkbox-",e,i,o,r,a,s),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new Cee;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),oo("tabindex"),_(ui,8),_(vee,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("tabindex",null)("aria-label",null)("aria-labelledby",null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Ye([yee]),ve],ngContentSelectors:bee,decls:15,vars:20,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0),A("click",function(a){return o._preventBubblingFromLabel(a)}),d(1,"div",1,2)(3,"div",3),A("click",function(){return o._onTouchTargetClick()}),l(),d(4,"input",4,5),A("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(a){return o._onInteractionEvent(a)}),l(),D(6,"div",6),d(7,"div",7),ei(),d(8,"svg",8),D(9,"path",9),l(),pr(),D(10,"div",10),l(),D(11,"div",11),l(),d(12,"label",12,13),Ze(14),l()()),2&i){const r=Ft(2);et("mdc-form-field--align-end","before"==o.labelPosition),m(4),et("mdc-checkbox--selected",o.checked),f("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled)("id",o.inputId)("required",o.required)("tabIndex",o.tabIndex),Xe("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("name",o.name)("value",o.value),m(7),f("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),m(),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),sR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),cR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,as,sR,Mt,sR]})}return t})();const rg=["*"],Mee=["content"];function Tee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Iee(t,n){1&t&&(d(0,"mat-drawer-content"),Ze(1,2),l())}const Eee=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Oee=["mat-drawer","mat-drawer-content","*"];function Aee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Pee(t,n){1&t&&(d(0,"mat-sidenav-content"),Ze(1,2),l())}const Ree=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],Nee=["mat-sidenav","mat-sidenav-content","*"],lR={transformDrawer:Lo("transform",[mn("open, open-instant",Zt({transform:"none",visibility:"visible"})),mn("void",Zt({"box-shadow":"none",visibility:"hidden"})),Qi("void => open-instant",Yi("0ms")),Qi("void <=> open, open-instant => void",Yi("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},Lee=new se("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function Bee(){return!1}}),GC=new se("MAT_DRAWER_CONTAINER");let ag=(()=>{class t extends rh{constructor(e,i,o,r,a){super(o,r,a),this._changeDetectorRef=e,this._container=i}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>uR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{get position(){return this._position}set position(e){(e="end"===e?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=$e(e)}get autoFocus(){return this._autoFocus??("side"===this.mode?"dialog":"first-tabbable")}set autoFocus(e){("true"===e||"false"===e||null==e)&&(e=$e(e)),this._autoFocus=e}get opened(){return this._opened}set opened(e){this.toggle($e(e))}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._focusTrapFactory=i,this._focusMonitor=o,this._platform=r,this._ngZone=a,this._interactivityChecker=s,this._doc=c,this._container=u,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new qe,this._animationEnd=new qe,this._animationState="void",this.openedChange=new Ne(!0),this._openedStream=this.openedChange.pipe(kt(p=>p),nt(()=>{})),this.openedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&0===p.toState.indexOf("open")),Bf(void 0)),this._closedStream=this.openedChange.pipe(kt(p=>!p),nt(()=>{})),this.closedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&"void"===p.toState),Bf(void 0)),this._destroyed=new qe,this.onPositionChanged=new Ne,this._modeChanged=new qe,this.openedChange.subscribe(p=>{p?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{er(this._elementRef.nativeElement,"keydown").pipe(kt(p=>27===p.keyCode&&!this.disableClose&&!An(p)),ot(this._destroyed)).subscribe(p=>this._ngZone.run(()=>{this.close(),p.stopPropagation(),p.preventDefault()}))}),this._animationEnd.pipe(Ru((p,g)=>p.fromState===g.fromState&&p.toState===g.toState)).subscribe(p=>{const{fromState:g,toState:b}=p;(0===b.indexOf("open")&&"void"===g||"void"===b&&0===g.indexOf("open"))&&this.openedChange.emit(this._opened)})}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_takeFocus(){if(!this._focusTrap)return;const e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{!i&&"function"==typeof this._elementRef.nativeElement.focus&&e.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(e){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){const e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,i){e&&i&&(this._openedVia=i);const o=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),o}_setOpen(e,i,o){return this._opened=e,e?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(o)),this._updateFocusTrapState(),new Promise(r=>{this.openedChange.pipe(Pt(1)).subscribe(a=>r(a?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop)}_updatePositionInParent(e){const i=this._elementRef.nativeElement,o=i.parentNode;"end"===e?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(zo),_(ci),_(We),_(Fu),_(ut,8),_(GC,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,o){if(1&i&&vt(Mee,5),2&i){let r;Oe(r=Ae())&&(o._content=r.first)}},hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer"],hostVars:12,hostBindings:function(i,o){1&i&&ep("@transform.start",function(a){return o._animationStarted.next(a)})("@transform.done",function(a){return o._animationEnd.next(a)}),2&i&&(Xe("align",null),Zm("@transform",o._animationState),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),uR=(()=>{class t{get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=$e(e)}get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=null==e?null:$e(e)}get scrollable(){return this._userContent||this._content}constructor(e,i,o,r,a,s=!1,c){this._dir=e,this._element=i,this._ngZone=o,this._changeDetectorRef=r,this._animationMode=c,this._drawers=new oa,this.backdropClick=new Ne,this._destroyed=new qe,this._doCheckSubject=new qe,this._contentMargins={left:null,right:null},this._contentMarginChanges=new qe,e&&e.change.pipe(ot(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),a.change().pipe(ot(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=s}ngAfterContentInit(){this._allDrawers.changes.pipe(an(this._allDrawers),ot(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(an(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Wp(10),ot(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,i=0;if(this._left&&this._left.opened)if("side"==this._left.mode)e+=this._left._getWidth();else if("push"==this._left.mode){const o=this._left._getWidth();e+=o,i-=o}if(this._right&&this._right.opened)if("side"==this._right.mode)i+=this._right._getWidth();else if("push"==this._right.mode){const o=this._right._getWidth();i+=o,e-=o}e=e||null,i=i||null,(e!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:e,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(kt(i=>i.fromState!==i.toState),ot(this._drawers.changes)).subscribe(i=>{"open-instant"!==i.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==e.mode&&e.openedChange.pipe(ot(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e&&e.onPositionChanged.pipe(ot(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(e){e&&e._modeChanged.pipe(ot(Ri(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){const i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";e?i.add(o):i.remove(o)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{"end"==e.position?this._end=e:this._start=e}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return null!=e&&e.opened}_drawerHasBackdrop(e){return null==this._backdropOverride?!!e&&"side"!==e.mode:this._backdropOverride}static#e=this.\u0275fac=function(i){return new(i||t)(_(fn,8),_(Be),_(We),_(Lt),_(va),_(Lee),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,ag,5),gt(r,dR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},viewQuery:function(i,o){if(1&i&&vt(ag,5),2&i){let r;Oe(r=Ae())&&(o._userContent=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[Ye([{provide:GC,useExisting:t}])],ngContentSelectors:Oee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Eee),y(0,Tee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Iee,2,0,"mat-drawer-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,ag],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),qC=(()=>{class t extends ag{constructor(e,i,o,r,a){super(e,i,o,r,a)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>mR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),hR=(()=>{class t extends dR{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=$e(e)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=yi(e)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=yi(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(i,o){2&i&&(Xe("align",null),Sn("top",o.fixedInViewport?o.fixedTopGap:null,"px")("bottom",o.fixedInViewport?o.fixedBottomGap:null,"px"),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened)("mat-sidenav-fixed",o.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[ve],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),mR=(()=>{class t extends uR{constructor(){super(...arguments),this._allDrawers=void 0,this._content=void 0}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,qC,5),gt(r,hR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},exportAs:["matSidenavContainer"],features:[Ye([{provide:GC,useExisting:t}]),ve],ngContentSelectors:Nee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Ree),y(0,Aee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Pee,2,0,"mat-sidenav-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,qC],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),pR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,ms,ms,Mt]})}return t})();const Vee=["panel"];function jee(t,n){if(1&t){const e=_e();d(0,"div",0,1),A("@panelAnimation.done",function(o){return ie(e),ne(C()._animationDone.next(o))}),Ze(2),l()}if(2&t){const e=n.id,i=C();f("id",i.id)("ngClass",i._classList)("@panelAnimation",i.isOpen?"visible":"hidden"),Xe("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(e))}}const zee=["*"],Hee=Lo("panelAnimation",[mn("void, hidden",Zt({opacity:0,transform:"scaleY(0.8)"})),Qi(":enter, hidden => visible",[vy([Yi("0.03s linear",Zt({opacity:1})),Yi("0.12s cubic-bezier(0, 0, 0.2, 1)",Zt({transform:"scaleY(1)"}))])]),Qi(":leave, visible => hidden",[Yi("0.075s linear",Zt({opacity:0}))])]);let Uee=0;class $ee{constructor(n,e){this.source=n,this.option=e}}const Gee=ns(class{}),fR=new se("mat-autocomplete-default-options",{providedIn:"root",factory:function qee(){return{autoActiveFirstOption:!1,autoSelectActiveOption:!1,hideSingleSelectionIndicator:!1,requireSelection:!1}}});let Wee=(()=>{class t extends Gee{get isOpen(){return this._isOpen&&this.showPanel}_setColor(e){this._color=e,this._setThemeClasses(this._classList)}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(e){this._autoActiveFirstOption=$e(e)}get autoSelectActiveOption(){return this._autoSelectActiveOption}set autoSelectActiveOption(e){this._autoSelectActiveOption=$e(e)}get requireSelection(){return this._requireSelection}set requireSelection(e){this._requireSelection=$e(e)}set classList(e){this._classList=e&&e.length?function yG(t,n=/\s+/){const e=[];if(null!=t){const i=Array.isArray(t)?t:`${t}`.split(n);for(const o of i){const r=`${o}`.trim();r&&e.push(r)}}return e}(e).reduce((i,o)=>(i[o]=!0,i),{}):{},this._setVisibilityClasses(this._classList),this._setThemeClasses(this._classList),this._elementRef.nativeElement.className=""}constructor(e,i,o,r){super(),this._changeDetectorRef=e,this._elementRef=i,this._defaults=o,this._activeOptionChanges=de.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new Ne,this.opened=new Ne,this.closed=new Ne,this.optionActivated=new Ne,this._classList={},this.id="mat-autocomplete-"+Uee++,this.inertGroups=r?.SAFARI||!1,this._autoActiveFirstOption=!!o.autoActiveFirstOption,this._autoSelectActiveOption=!!o.autoSelectActiveOption,this._requireSelection=!!o.requireSelection}ngAfterContentInit(){this._keyManager=new hE(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(e=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[e]||null})}),this._setVisibility()}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe()}_setScrollTop(e){this.panel&&(this.panel.nativeElement.scrollTop=e)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(e){const i=new $ee(this,e);this.optionSelected.emit(i)}_getPanelAriaLabelledby(e){return this.ariaLabel?null:this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_setVisibilityClasses(e){e[this._visibleClass]=this.showPanel,e[this._hiddenClass]=!this.showPanel}_setThemeClasses(e){e["mat-primary"]="primary"===this._color,e["mat-warn"]="warn"===this._color,e["mat-accent"]="accent"===this._color}_skipPredicate(e){return e.disabled}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(fR),_(ci))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gi,7),vt(Vee,5)),2&i){let r;Oe(r=Ae())&&(o.template=r.first),Oe(r=Ae())&&(o.panel=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",autoSelectActiveOption:"autoSelectActiveOption",requireSelection:"requireSelection",panelWidth:"panelWidth",classList:[ge.None,"class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[ve]})}return t})(),Kee=(()=>{class t extends Wee{constructor(){super(...arguments),this._visibleClass="mat-mdc-autocomplete-visible",this._hiddenClass="mat-mdc-autocomplete-hidden",this._animationDone=new Ne,this._hideSingleSelectionIndicator=this._defaults.hideSingleSelectionIndicator??!1}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}ngOnDestroy(){super.ngOnDestroy(),this._animationDone.complete()}_skipPredicate(e){return!1}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-autocomplete"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,af,5),gt(r,Tn,5)),2&i){let a;Oe(a=Ae())&&(o.optionGroups=a),Oe(a=Ae())&&(o.options=a)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-autocomplete"],inputs:{disableRipple:"disableRipple",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matAutocomplete"],features:[Ye([{provide:rf,useExisting:t}]),ve],ngContentSelectors:zee,decls:1,vars:0,consts:[["role","listbox",1,"mat-mdc-autocomplete-panel","mdc-menu-surface","mdc-menu-surface--open",3,"id","ngClass"],["panel",""]],template:function(i,o){1&i&&(Ut(),y(0,jee,3,5,"ng-template"))},dependencies:[yr],styles:["div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}"],encapsulation:2,data:{animation:[Hee]},changeDetection:0})}return t})();const Zee={provide:uo,useExisting:Qt(()=>_R),multi:!0},gR=new se("mat-autocomplete-scroll-strategy"),Qee={provide:gR,deps:[Qn],useFactory:function Yee(t){return()=>t.scrollStrategies.reposition()}};let Xee=(()=>{class t{get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(e){this._autocompleteDisabled=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g,b){this._element=e,this._overlay=i,this._viewContainerRef=o,this._zone=r,this._changeDetectorRef=a,this._dir=c,this._formField=u,this._document=p,this._viewportRuler=g,this._defaults=b,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=de.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new qe,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=Vl(()=>{const w=this.autocomplete?this.autocomplete.options:null;return w?w.changes.pipe(an(w),gn(()=>Ri(...w.map(k=>k.onSelectionChange)))):this._zone.onStable.pipe(Pt(1),gn(()=>this.optionSelections))}),this._handlePanelKeydown=w=>{(27===w.keyCode&&!An(w)||38===w.keyCode&&An(w,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),w.stopPropagation(),w.preventDefault())},this._trackedModal=null,this._scrollStrategy=s}ngAfterViewInit(){const e=this._getWindow();typeof e<"u"&&this._zone.runOutsideAngular(()=>e.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const e=this._getWindow();typeof e<"u"&&e.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete(),this._clearFromModal()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel(),this._trackedModal&&Yp(this._trackedModal,"aria-owns",this.autocomplete.id)}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit()}),this.autocomplete._isOpen=this._overlayAttached=!1,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges(),this._trackedModal)&&Tl(this._trackedModal,"aria-owns",this.autocomplete.id)}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return Ri(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(kt(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(kt(()=>this._overlayAttached)):Ke()).pipe(nt(e=>e instanceof IE?e:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return Ri(er(this._document,"click"),er(this._document,"auxclick"),er(this._document,"touchend")).pipe(kt(e=>{const i=pa(e),o=this._formField?this._formField._elementRef.nativeElement:null,r=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&i!==this._element.nativeElement&&this._document.activeElement!==this._element.nativeElement&&(!o||!o.contains(i))&&(!r||!r.contains(i))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(i)}))}writeValue(e){Promise.resolve(null).then(()=>this._assignOptionValue(e))}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this._element.nativeElement.disabled=e}_handleKeydown(e){const i=e.keyCode,o=An(e);if(27===i&&!o&&e.preventDefault(),this.activeOption&&13===i&&this.panelOpen&&!o)this.activeOption._selectViaInteraction(),this._resetActiveItem(),e.preventDefault();else if(this.autocomplete){const r=this.autocomplete._keyManager.activeItem,a=38===i||40===i;9===i||a&&!o&&this.panelOpen?this.autocomplete._keyManager.onKeydown(e):a&&this._canOpen()&&this.openPanel(),(a||this.autocomplete._keyManager.activeItem!==r)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._element.nativeElement.value),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)))}}_handleInput(e){let i=e.target,o=i.value;"number"===i.type&&(o=""==o?null:parseFloat(o)),this._previousValue!==o&&(this._previousValue=o,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(o),o||this._clearPreviousSelectedOption(null,!1),this._canOpen()&&this._document.activeElement===e.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_handleClick(){this._canOpen()&&!this.panelOpen&&this.openPanel()}_floatLabel(e=!1){this._formField&&"auto"===this._formField.floatLabel&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){return Ri(this._zone.onStable.pipe(Pt(1)),this.autocomplete.options.changes.pipe(qt(()=>this._positionStrategy.reapplyLastPosition()),hC(0))).pipe(gn(()=>(this._zone.run(()=>{const o=this.panelOpen;this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),o!==this.panelOpen&&(this.panelOpen?(this._captureValueOnAttach(),this._emitOpened()):this.autocomplete.closed.emit())}),this.panelClosingActions)),Pt(1)).subscribe(o=>this._setValueAndClose(o))}_emitOpened(){this.autocomplete.opened.emit()}_captureValueOnAttach(){this._valueOnAttach=this._element.nativeElement.value}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_assignOptionValue(e){const i=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(e):e;this._updateNativeInputValue(i??"")}_updateNativeInputValue(e){this._formField?this._formField._control.value=e:this._element.nativeElement.value=e,this._previousValue=e}_setValueAndClose(e){const i=this.autocomplete,o=e?e.source:this._pendingAutoselectedOption;o?(this._clearPreviousSelectedOption(o),this._assignOptionValue(o.value),this._onChange(o.value),i._emitSelectEvent(o),this._element.nativeElement.focus()):i.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),i._animationDone?i._animationDone.pipe(Pt(1)).subscribe(()=>this._onChange(null)):this._onChange(null)),this.closePanel()}_clearPreviousSelectedOption(e,i){this.autocomplete?.options?.forEach(o=>{o!==e&&o.selected&&o.deselect(i)})}_attachOverlay(){let e=this._overlayRef;e?(this._positionStrategy.setOrigin(this._getConnectedElement()),e.updateSize({width:this._getPanelWidth()})):(this._portal=new ya(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),e=this._overlay.create(this._getOverlayConfig()),this._overlayRef=e,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&e&&e.updateSize({width:this._getPanelWidth()})})),e&&!e.hasAttached()&&(e.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=!0,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this._applyModalPanelOwnership(),this._captureValueOnAttach(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened()}_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){const e=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=e.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=e.outsidePointerEvents().subscribe())}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=null}_getOverlayConfig(){return new Bl({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,panelClass:this._defaults?.overlayPanelClass})}_getOverlayPosition(){const e=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(e),this._positionStrategy=e,e}_setStrategyPositions(e){const i=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],o=this._aboveClass,r=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:o},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:o}];let a;a="above"===this.position?r:"below"===this.position?i:[...i,...r],e.withPositions(a)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const e=this.autocomplete;if(e.autoActiveFirstOption){let i=-1;for(let o=0;o .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=this.autocomplete.id;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",this.autocomplete.id),this._trackedModal=null)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Qn),_(vi),_(We),_(Lt),_(gR),_(fn,8),_(th,9),_(ut,8),_(va),_(fR,8))};static#t=this.\u0275dir=Q({type:t,inputs:{autocomplete:[ge.None,"matAutocomplete","autocomplete"],position:[ge.None,"matAutocompletePosition","position"],connectedTo:[ge.None,"matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:[ge.None,"autocomplete","autocompleteAttribute"],autocompleteDisabled:[ge.None,"matAutocompleteDisabled","autocompleteDisabled"]},features:[fi]})}return t})(),_R=(()=>{class t extends Xee{constructor(){super(...arguments),this._aboveClass="mat-mdc-autocomplete-panel-above"}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-mdc-autocomplete-trigger"],hostVars:7,hostBindings:function(i,o){1&i&&A("focusin",function(){return o._handleFocus()})("blur",function(){return o._onTouched()})("input",function(a){return o._handleInput(a)})("keydown",function(a){return o._handleKeydown(a)})("click",function(){return o._handleClick()}),2&i&&Xe("autocomplete",o.autocompleteAttribute)("role",o.autocompleteDisabled?null:"combobox")("aria-autocomplete",o.autocompleteDisabled?null:"list")("aria-activedescendant",o.panelOpen&&o.activeOption?o.activeOption.id:null)("aria-expanded",o.autocompleteDisabled?null:o.panelOpen.toString())("aria-controls",o.autocompleteDisabled||!o.panelOpen||null==o.autocomplete?null:o.autocomplete.id)("aria-haspopup",o.autocompleteDisabled?null:"listbox")},exportAs:["matAutocompleteTrigger"],features:[Ye([Zee]),ve]})}return t})(),bR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Qee],imports:[dc,sf,Mt,Vn,ms,sf,Mt]})}return t})();function Jee(t,n){if(1&t&&(d(0,"mat-option",19),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function ete(t,n){if(1&t){const e=_e();d(0,"mat-form-field",16)(1,"mat-select",17),A("selectionChange",function(o){return ie(e),ne(C(2)._changePageSize(o.value))}),y(2,Jee,2,2,"mat-option",18),l()()}if(2&t){const e=C(2);f("appearance",e._formFieldAppearance)("color",e.color),m(),f("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),m(),f("ngForOf",e._displayedPageSizeOptions)}}function tte(t,n){if(1&t&&(d(0,"div",20),h(1),l()),2&t){const e=C(2);m(),Pe(e.pageSize)}}function ite(t,n){if(1&t&&(d(0,"div",12)(1,"div",13),h(2),l(),y(3,ete,3,8,"mat-form-field",14)(4,tte,2,1,"div",15),l()),2&t){const e=C();m(),vv("id",e._pageSizeLabelId),m(),xe(" ",e._intl.itemsPerPageLabel," "),m(),f("ngIf",e._displayedPageSizeOptions.length>1),m(),f("ngIf",e._displayedPageSizeOptions.length<=1)}}function nte(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().firstPage())}),ei(),d(1,"svg",7),D(2,"path",22),l()()}if(2&t){const e=C();f("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Xe("aria-label",e._intl.firstPageLabel)}}function ote(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"button",23),A("click",function(){return ie(e),ne(C().lastPage())}),ei(),d(1,"svg",7),D(2,"path",24),l()()}if(2&t){const e=C();f("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Xe("aria-label",e._intl.lastPageLabel)}}let sg=(()=>{class t{constructor(){this.changes=new qe,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(e,i,o)=>{if(0==o||0==i)return`0 of ${o}`;const r=e*i;return`${r+1} \u2013 ${r<(o=Math.max(o,0))?Math.min(r+i,o):r+i} of ${o}`}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ate={provide:sg,deps:[[new za,new Vc,sg]],useFactory:function rte(t){return t||new sg}},cte=new se("MAT_PAGINATOR_DEFAULT_OPTIONS"),lte=jr(gq(class{}));let dte=(()=>{class t extends lte{get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(yi(e),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(e){this._length=yi(e),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(yi(e),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>yi(i)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(e){this._hidePageSize=$e(e)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(e){this._showFirstLastButtons=$e(e)}constructor(e,i,o){if(super(),this._intl=e,this._changeDetectorRef=i,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.selectConfig={},this.page=new Ne,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),o){const{pageSize:r,pageSizeOptions:a,hidePageSize:s,showFirstLastButtons:c}=o;null!=r&&(this._pageSize=r),null!=a&&(this._pageSizeOptions=a),null!=s&&(this._hidePageSize=s),null!=c&&(this._showFirstLastButtons=c)}}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",selectConfig:"selectConfig"},outputs:{page:"page"},features:[ve]})}return t})(),ute=0,WC=(()=>{class t extends dte{constructor(e,i,o){super(e,i,o),this._pageSizeLabelId="mat-paginator-page-size-label-"+ute++,this._formFieldAppearance=o?.formFieldAppearance||"outline"}static#e=this.\u0275fac=function(i){return new(i||t)(_(sg),_(Lt),_(cte,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[ve],decls:14,vars:14,consts:[[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],["class","mat-mdc-paginator-page-size",4,"ngIf"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-page-size-label",3,"id"],["class","mat-mdc-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-mdc-paginator-page-size-value",4,"ngIf"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],["hideSingleSelectionIndicator","",3,"value","disabled","aria-labelledby","panelClass","disableOptionCentering","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-mdc-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,ite,5,4,"div",2),d(3,"div",3)(4,"div",4),h(5),l(),y(6,nte,3,5,"button",5),d(7,"button",6),A("click",function(){return o.previousPage()}),ei(),d(8,"svg",7),D(9,"path",8),l()(),pr(),d(10,"button",9),A("click",function(){return o.nextPage()}),ei(),d(11,"svg",7),D(12,"path",10),l()(),y(13,ote,3,5,"button",11),l()()()),2&i&&(m(2),f("ngIf",!o.hidePageSize),m(3),xe(" ",o._intl.getRangeLabel(o.pageIndex,o.pageSize,o.length)," "),m(),f("ngIf",o.showFirstLastButtons),m(),f("matTooltip",o._intl.previousPageLabel)("matTooltipDisabled",o._previousButtonsDisabled())("matTooltipPosition","above")("disabled",o._previousButtonsDisabled()),Xe("aria-label",o._intl.previousPageLabel),m(3),f("matTooltip",o._intl.nextPageLabel)("matTooltipDisabled",o._nextButtonsDisabled())("matTooltipPosition","above")("disabled",o._nextButtonsDisabled()),Xe("aria-label",o._intl.nextPageLabel),m(3),f("ngIf",o.showFirstLastButtons))},dependencies:[rn,It,ba,Di,Xn,Tn,vn],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),vR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ate],imports:[Vn,lf,uC,$C]})}return t})();const hte=[FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR];let mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[hte,FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR]})}return t})();const pte=["input"],fte=["*"];let yR=0;class CR{constructor(n,e){this.source=n,this.value=e}}const gte={provide:uo,useExisting:Qt(()=>cg),multi:!0},wR=new se("MatRadioGroup"),_te=new se("mat-radio-default-options",{providedIn:"root",factory:function bte(){return{color:"accent"}}});let vte=(()=>{class t{get name(){return this._name}set name(e){this._name=e,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition="before"===e?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._markRadiosForCheck()}get required(){return this._required}set required(e){this._required=$e(e),this._markRadiosForCheck()}constructor(e){this._changeDetector=e,this._value=null,this._name="mat-radio-group-"+yR++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ne}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(e=>e===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(e=>{e.name=this.name,e._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new CR(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(e=>e._markForCheck())}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}})}return t})();class yte{constructor(n){this._elementRef=n}}const Cte=ns(os(yte));let wte=(()=>{class t extends Cte{get checked(){return this._checked}set checked(e){const i=$e(e);this._checked!==i&&(this._checked=i,i&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!i&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),i&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(e){this._setDisabled($e(e))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=$e(e)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(e){this._color=e}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetector=o,this._focusMonitor=r,this._radioDispatcher=a,this._providerOverride=c,this._uniqueId="mat-radio-"+ ++yR,this.id=this._uniqueId,this.change=new Ne,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=e,this._noopAnimations="NoopAnimations"===s,u&&(this.tabIndex=yi(u,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new CR(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(e){e.stopPropagation()}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_updateTabIndex(){const e=this.radioGroup;let i;if(i=e&&e.selected&&!this.disabled?e.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const o=this._inputElement?.nativeElement;o&&(o.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(pte,5),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first)}},inputs:{id:"id",name:"name",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[ve]})}return t})(),cg=(()=>{class t extends vte{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-radio-group"]],contentQueries:function(i,o,r){if(1&i&>(r,lg,5),2&i){let a;Oe(a=Ae())&&(o._radios=a)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],exportAs:["matRadioGroup"],features:[Ye([gte,{provide:wR,useExisting:t}]),ve]})}return t})(),lg=(()=>{class t extends wte{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u)}static#e=this.\u0275fac=function(i){return new(i||t)(_(wR,8),_(Be),_(Lt),_(zo),_(N0),_(ui,8),_(_te,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,o){1&i&&A("focus",function(){return o._inputElement.nativeElement.focus()}),2&i&&(Xe("id",o.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),et("mat-primary","primary"===o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("mat-mdc-radio-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[ve],ngContentSelectors:fte,decls:13,vars:17,consts:[[1,"mdc-form-field"],["formField",""],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"id","checked","disabled","required","change"],["input",""],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0,1)(2,"div",2)(3,"div",3),A("click",function(a){return o._onTouchTargetClick(a)}),l(),d(4,"input",4,5),A("change",function(a){return o._onInputInteraction(a)}),l(),d(6,"div",6),D(7,"div",7)(8,"div",8),l(),d(9,"div",9),D(10,"div",10),l()(),d(11,"label",11),Ze(12),l()()),2&i){const r=Ft(1);et("mdc-form-field--align-end","before"==o.labelPosition),m(2),et("mdc-radio--disabled",o.disabled),m(2),f("id",o.inputId)("checked",o.checked)("disabled",o.disabled)("required",o.required),Xe("name",o.name)("value",o.value)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby),m(5),f("matRippleTrigger",r)("matRippleDisabled",o._isRippleDisabled())("matRippleCentered",!0),m(2),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),xte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,as,Mt]})}return t})();class Dte{constructor(n,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),o=i.style;o.position="fixed",o.top=o.opacity="0",o.left="-999em",i.setAttribute("aria-hidden","true"),i.value=n,i.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(i)}copy(){const n=this._textarea;let e=!1;try{if(n){const i=this._document.activeElement;n.select(),n.setSelectionRange(0,n.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const n=this._textarea;n&&(n.remove(),this._textarea=void 0)}}let Ste=(()=>{class t{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),o=i.copy();return i.destroy(),o}beginCopy(e){return new Dte(e,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const kte=new se("CDK_COPY_TO_CLIPBOARD_CONFIG");let KC=(()=>{class t{constructor(e,i,o){this._clipboard=e,this._ngZone=i,this.text="",this.attempts=1,this.copied=new Ne,this._pending=new Set,o&&null!=o.attempts&&(this.attempts=o.attempts)}copy(e=this.attempts){if(e>1){let i=e;const o=this._clipboard.beginCopy(this.text);this._pending.add(o);const r=()=>{const a=o.copy();a||! --i||this._destroyed?(this._currentTimeout=null,this._pending.delete(o),o.destroy(),this.copied.emit(a)):this._currentTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(r,1))};r()}else this.copied.emit(this._clipboard.copy(this.text))}ngOnDestroy(){this._currentTimeout&&clearTimeout(this._currentTimeout),this._pending.forEach(e=>e.destroy()),this._pending.clear(),this._destroyed=!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ste),_(We),_(kte,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCopyToClipboard",""]],hostBindings:function(i,o){1&i&&A("click",function(){return o.copy()})},inputs:{text:[ge.None,"cdkCopyToClipboard","text"],attempts:[ge.None,"cdkCopyToClipboardAttempts","attempts"]},outputs:{copied:"cdkCopyToClipboardCopied"}})}return t})(),Mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const dg=L(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function ug(t){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function xR(t=Tte){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Tte(){return new dg}function hc(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,Pt(1),e?ug(n):xR(()=>new dg))}function ZC(t){return t<=0?()=>jo:$i((n,e)=>{let i=[];n.subscribe(Fi(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}const Bt="primary",uh=Symbol("RouteTitle");class Ate{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function ql(t){return new Ate(t)}function Pte(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function SR(t){return t.length>0?t[t.length-1]:null}function vs(t){return Pl(t)?t:pu(t)?Xi(Promise.resolve(t)):Ke(t)}const Nte={exact:function TR(t,n,e){if(!mc(t.segments,n.segments)||!hg(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!TR(t.children[i],n.children[i],e))return!1;return!0},subset:IR},kR={exact:function Fte(t,n){return Ur(t,n)},subset:function Lte(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>DR(t[e],n[e]))},ignored:()=>!0};function MR(t,n,e){return Nte[e.paths](t.root,n.root,e.matrixParams)&&kR[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function IR(t,n,e){return ER(t,n,n.segments,e)}function ER(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!mc(o,e)||n.hasChildren()||!hg(o,e,i))}if(t.segments.length===e.length){if(!mc(t.segments,e)||!hg(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!IR(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(mc(t.segments,o)&&hg(t.segments,o,i)&&t.children[Bt])&&ER(t.children[Bt],n,r,i)}}function hg(t,n,e){return n.every((i,o)=>kR[e](t[o].parameters,i.parameters))}class Wl{constructor(n=new Si([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return jte.serialize(this)}}class Si{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return mg(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=ql(this.parameters),this._parameterMap}toString(){return PR(this)}}function mc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Kl=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new QC,providedIn:"root"})}return t})();class QC{parse(n){const e=new Qte(n);return new Wl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${mh(n.root,!0)}`,i=function Ute(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${pg(e)}=${pg(o)}`).join("&"):`${pg(e)}=${pg(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function zte(t){return encodeURI(t)}(n.fragment)}`:""}`}}const jte=new QC;function mg(t){return t.segments.map(n=>PR(n)).join("/")}function mh(t,n){if(!t.hasChildren())return mg(t);if(n){const e=t.children[Bt]?mh(t.children[Bt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Bt&&i.push(`${o}:${mh(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function Vte(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Bt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Bt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Bt?[mh(t.children[Bt],!1)]:[`${o}:${mh(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Bt]?`${mg(t)}/${e[0]}`:`${mg(t)}/(${e.join("//")})`}}function OR(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function pg(t){return OR(t).replace(/%3B/gi,";")}function XC(t){return OR(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fg(t){return decodeURIComponent(t)}function AR(t){return fg(t.replace(/\+/g,"%20"))}function PR(t){return`${XC(t.path)}${function Hte(t){return Object.entries(t).map(([n,e])=>`;${XC(n)}=${XC(e)}`).join("")}(t.parameters)}`}const $te=/^[^\/()?;#]+/;function JC(t){const n=t.match($te);return n?n[0]:""}const Gte=/^[^\/()?;=#]+/,Wte=/^[^=?&#]+/,Zte=/^[^&#]+/;class Qte{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Si([],{}):new Si([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Bt]=new Si(n,e)),i}parseSegment(){const n=JC(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new ue(4009,!1);return this.capture(n),new hh(fg(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function qte(t){const n=t.match(Gte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=JC(this.remaining);o&&(i=o,this.capture(i))}n[fg(e)]=fg(i)}parseQueryParam(n){const e=function Kte(t){const n=t.match(Wte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function Yte(t){const n=t.match(Zte);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=AR(e),r=AR(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=JC(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new ue(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Bt);const a=this.parseChildren();e[r]=1===Object.keys(a).length?a[Bt]:new Si([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new ue(4011,!1)}}function RR(t){return t.segments.length>0?new Si([],{[Bt]:t}):t}function NR(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=NR(o);if(i===Bt&&0===r.segments.length&&r.hasChildren())for(const[a,s]of Object.entries(r.children))n[a]=s;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Xte(t){if(1===t.numberOfChildren&&t.children[Bt]){const n=t.children[Bt];return new Si(t.segments.concat(n.segments),n.children)}return t}(new Si(t.segments,n))}function Zl(t){return t instanceof Wl}function FR(t){let n;const o=RR(function e(r){const a={};for(const c of r.children){const u=e(c);a[c.outlet]=u}const s=new Si(r.url,a);return r===t&&(n=s),s}(t.root));return n??o}function LR(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return ew(o,o,o,e,i);const r=function eie(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new VR(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,a)=>{if("object"==typeof r&&null!=r){if(r.outlets){const s={};return Object.entries(r.outlets).forEach(([c,u])=>{s[c]="string"==typeof u?u.split("/"):u}),[...o,{outlets:s}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===a?(r.split("/").forEach((s,c)=>{0==c&&"."===s||(0==c&&""===s?e=!0:".."===s?n++:""!=s&&o.push(s))}),o):[...o,r]},[]);return new VR(e,n,i)}(n);if(r.toRoot())return ew(o,o,new Si([],{}),e,i);const a=function tie(t,n,e){if(t.isAbsolute)return new _g(n,!0,0);if(!e)return new _g(n,!1,NaN);if(null===e.parent)return new _g(e,!0,0);const i=gg(t.commands[0])?0:1;return function iie(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new ue(4005,!1);o=i.segments.length}return new _g(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),s=a.processChildren?fh(a.segmentGroup,a.index,r.commands):jR(a.segmentGroup,a.index,r.commands);return ew(o,a.segmentGroup,s,e,i)}function gg(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function ph(t){return"object"==typeof t&&null!=t&&t.outlets}function ew(t,n,e,i,o){let a,r={};i&&Object.entries(i).forEach(([c,u])=>{r[c]=Array.isArray(u)?u.map(p=>`${p}`):`${u}`}),a=t===n?e:BR(t,n,e);const s=RR(NR(a));return new Wl(s,r,o)}function BR(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:BR(r,n,e)}),new Si(t.segments,i)}class VR{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&gg(i[0]))throw new ue(4003,!1);const o=i.find(ph);if(o&&o!==SR(i))throw new ue(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class _g{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function jR(t,n,e){if(t??=new Si([],{}),0===t.segments.length&&t.hasChildren())return fh(t,n,e);const i=function oie(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const a=t.segments[o],s=e[i];if(ph(s))break;const c=`${s}`,u=i0&&void 0===c)break;if(c&&u&&"object"==typeof u&&void 0===u.outlets){if(!HR(c,u,a))return r;i+=2}else{if(!HR(c,{},a))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Bt)&&t.children[Bt]&&1===t.numberOfChildren&&0===t.children[Bt].segments.length){const r=fh(t.children[Bt],n,e);return new Si(t.segments,r.children)}return Object.entries(i).forEach(([r,a])=>{"string"==typeof a&&(a=[a]),null!==a&&(o[r]=jR(t.children[r],n,a))}),Object.entries(t.children).forEach(([r,a])=>{void 0===i[r]&&(o[r]=a)}),new Si(t.segments,o)}}function tw(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=tw(new Si([],{}),0,i))}),n}function zR(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function HR(t,n,e){return t==e.path&&Ur(n,e.parameters)}const gh="imperative";var Xt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Xt||{});class $r{constructor(n,e){this.id=n,this.url=e}}class bg extends $r{constructor(n,e,i="imperative",o=null){super(n,e),this.type=Xt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Oa extends $r{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=Xt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var tr=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(tr||{}),vg=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(vg||{});class Yl extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ql extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationSkipped}}class yg extends $r{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=Xt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class UR extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class aie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sie extends $r{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=Xt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class cie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class lie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class die{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class uie{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class hie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pie{constructor(n){this.snapshot=n,this.type=Xt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class fie{constructor(n){this.snapshot=n,this.type=Xt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $R{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=Xt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class iw{}class nw{constructor(n){this.url=n}}class gie{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new _h,this.attachRef=null}}let _h=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new gie,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class GR{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=ow(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=ow(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=rw(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return rw(n,this._root).map(e=>e.value)}}function ow(t,n){if(t===n.value)return n;for(const e of n.children){const i=ow(t,e);if(i)return i}return null}function rw(t,n){if(t===n.value)return[n];for(const e of n.children){const i=rw(t,e);if(i.length)return i.unshift(n),i}return[]}class Sr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Xl(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class qR extends GR{constructor(n,e){super(n),this.snapshot=e,cw(this,n)}toString(){return this.snapshot.toString()}}function WR(t){const n=function _ie(t){const r=new sw([],{},{},"",{},Bt,t,null,{});return new KR("",new Sr(r,[]))}(t),e=new pt([new hh("",{})]),i=new pt({}),o=new pt({}),r=new pt({}),a=new pt(""),s=new Jl(e,i,r,a,o,Bt,t,n.root);return s.snapshot=n.root,new qR(new Sr(s,[]),n)}class Jl{constructor(n,e,i,o,r,a,s,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=a,this.component=s,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(nt(u=>u[uh]))??Ke(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(nt(n=>ql(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(nt(n=>ql(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function aw(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&YR(o)&&(i.resolve[uh]=o.title),i}class sw{get title(){return this.data?.[uh]}constructor(n,e,i,o,r,a,s,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=a,this.component=s,this.routeConfig=c,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=ql(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class KR extends GR{constructor(n,e){super(e),this.url=n,cw(this,e)}toString(){return ZR(this._root)}}function cw(t,n){n.value._routerState=t,n.children.forEach(e=>cw(t,e))}function ZR(t){const n=t.children.length>0?` { ${t.children.map(ZR).join(", ")} } `:"";return`${t.value}${n}`}function lw(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Ur(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Ur(n.params,e.params)||t.paramsSubject.next(e.params),function Rte(t,n){if(t.length!==n.length)return!1;for(let e=0;eUr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||dw(t.parent,n.parent))}function YR(t){return"string"==typeof t.title||null===t.title}let Cg=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Bt,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=De(_h),this.location=De(vi),this.changeDetector=De(Lt),this.environmentInjector=De(Ao),this.inputBinder=De(wg,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new ue(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new ue(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new ue(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new ue(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,c=new bie(e,s,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:c,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[fi]})}return t})();class bie{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Jl?this.route:n===_h?this.childContexts:this.parent.get(n,e)}}const wg=new se("");let QR=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Xs([i.queryParams,i.params,i.data]).pipe(gn(([r,a,s],c)=>(s={...r,...a,...s},0===c?Ke(s):Promise.resolve(s)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function i7(t){const n=Ht(t);if(!n)return null;const e=new Yd(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(a)for(const{templateName:s}of a.inputs)e.activatedComponentRef.setInput(s,r[s]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function bh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function yie(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return bh(t,i,o);return bh(t,i)})}(t,n,e);return new Sr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const a=r.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(s=>bh(t,s)),a}}const i=function Cie(t){return new Jl(new pt(t.url),new pt(t.params),new pt(t.queryParams),new pt(t.fragment),new pt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>bh(t,r));return new Sr(i,o)}}const XR="ngNavigationCancelingError";function JR(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Zl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=eN(!1,tr.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function eN(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[XR]=!0,e.cancellationCode=n,e}function tN(t){return!!t&&t[XR]}let iN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],standalone:!0,features:[AM],decls:1,vars:0,template:function(i,o){1&i&&D(0,"router-outlet")},dependencies:[Cg],encapsulation:2})}return t})();function uw(t){const n=t.children&&t.children.map(uw),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Bt&&(e.component=iN),e}function Gr(t){return t.outlet||Bt}function vh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Iie{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),lw(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{const a=r.value.outlet;this.deactivateRoutes(r,o[a],i),delete o[a]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);if(i&&i.outlet){const a=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:s})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new fie(r.value.snapshot))}),n.children.length&&this.forwardEvent(new mie(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(lw(o),o===r)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const s=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(s.contexts),a.attachRef=s.componentRef,a.route=s.route.value,a.outlet&&a.outlet.attach(s.componentRef,s.route.value),lw(s.route.value),this.activateChildRoutes(n,null,a.children)}else{const s=vh(o.snapshot);a.attachRef=null,a.route=o,a.injector=s,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class nN{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class xg{constructor(n,e){this.component=n,this.route=e}}function Eie(t,n,e){const i=t._root;return yh(i,n?n._root:null,e,[i.value])}function ed(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function WF(t){return null!==Vh(t)}(t)?n.get(t):t:i}function yh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Xl(n);return t.children.forEach(a=>{(function Aie(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,a=n?n.value:null,s=e?e.getContext(t.value.outlet):null;if(a&&r.routeConfig===a.routeConfig){const c=function Pie(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!mc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!mc(t.url,n.url)||!Ur(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!dw(t,n)||!Ur(t.queryParams,n.queryParams);default:return!dw(t,n)}}(a,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new nN(i)):(r.data=a.data,r._resolvedData=a._resolvedData),yh(t,n,r.component?s?s.children:null:e,i,o),c&&s&&s.outlet&&s.outlet.isActivated&&o.canDeactivateChecks.push(new xg(s.outlet.component,a))}else a&&Ch(n,s,o),o.canActivateChecks.push(new nN(i)),yh(t,null,r.component?s?s.children:null:e,i,o)})(a,r[a.value.outlet],e,i.concat([a.value]),o),delete r[a.value.outlet]}),Object.entries(r).forEach(([a,s])=>Ch(s,e.getContext(a),o)),o}function Ch(t,n,e){const i=Xl(t),o=t.value;Object.entries(i).forEach(([r,a])=>{Ch(a,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new xg(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function wh(t){return"function"==typeof t}function oN(t){return t instanceof dg||"EmptyError"===t?.name}const Dg=Symbol("INITIAL_VALUE");function td(){return gn(t=>Xs(t.map(n=>n.pipe(Pt(1),an(Dg)))).pipe(nt(n=>{for(const e of n)if(!0!==e){if(e===Dg)return Dg;if(!1===e||e instanceof Wl)return e}return!0}),kt(n=>n!==Dg),Pt(1)))}function rN(t){return function WN(...t){return Tw(t)}(qt(n=>{if(Zl(n))throw JR(0,n)}),nt(n=>!0===n))}class hw{constructor(n){this.segmentGroup=n||null}}class mw extends Error{constructor(n){super(),this.urlTree=n}}function id(t){return ju(new hw(t))}class Xie{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ke(i);if(o.numberOfChildren>1||!o.children[Bt])return ju(new ue(4e3,!1));o=o.children[Bt]}}applyRedirectCommands(n,e,i){const o=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if(e.startsWith("/"))throw new mw(o);return o}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new Wl(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&r.startsWith(":")){const s=r.substring(1);i[o]=e[s]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([s,c])=>{a[s]=this.createSegmentGroup(n,c,i,o)}),new Si(r,a)}createSegments(n,e,i,o){return e.map(r=>r.path.startsWith(":")?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new ue(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const pw={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Jie(t,n,e,i,o){const r=fw(t,n,e);return r.matched?(i=function xie(t,n){return t.providers&&!t._injector&&(t._injector=Qb(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function Zie(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?Ke(o.map(a=>{const s=ed(a,t);return vs(function Vie(t){return t&&wh(t.canMatch)}(s)?s.canMatch(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN()):Ke(!0)}(i,n,e).pipe(nt(a=>!0===a?r:{...pw}))):Ke(r)}function fw(t,n,e){if("**"===n.path)return function ene(t){return{matched:!0,parameters:t.length>0?SR(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...pw}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Pte)(e,t,n);if(!o)return{...pw};const r={};Object.entries(o.posParams??{}).forEach(([s,c])=>{r[s]=c.path});const a=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function aN(t,n,e,i){return e.length>0&&function nne(t,n,e){return e.some(i=>Sg(t,n,i)&&Gr(i)!==Bt)}(t,e,i)?{segmentGroup:new Si(n,ine(i,new Si(e,t.children))),slicedSegments:[]}:0===e.length&&function one(t,n,e){return e.some(i=>Sg(t,n,i))}(t,e,i)?{segmentGroup:new Si(t.segments,tne(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Si(t.segments,t.children),slicedSegments:e}}function tne(t,n,e,i){const o={};for(const r of e)if(Sg(t,n,r)&&!i[Gr(r)]){const a=new Si([],{});o[Gr(r)]=a}return{...i,...o}}function ine(t,n){const e={};e[Bt]=n;for(const i of t)if(""===i.path&&Gr(i)!==Bt){const o=new Si([],{});e[Gr(i)]=o}return e}function Sg(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class sne{}class dne{constructor(n,e,i,o,r,a,s){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=a,this.urlSerializer=s,this.applyRedirects=new Xie(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new ue(4002,`'${n.segmentGroup}'`)}recognize(){const n=aN(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(nt(e=>{const i=new sw([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Bt,this.rootComponentType,null,{}),o=new Sr(i,e),r=new KR("",o),a=function Jte(t,n,e=null,i=null){return LR(FR(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(r._root,null),{state:r,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Bt).pipe(Li(i=>{if(i instanceof mw)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof hw?this.noMatchError(i):i}))}inheritParamsAndData(n,e){const i=n.value,o=aw(i,e,this.paramsInheritanceStrategy);i.params=Object.freeze(o.params),i.data=Object.freeze(o.data),n.children.forEach(r=>this.inheritParamsAndData(r,i))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0).pipe(nt(r=>r instanceof Sr?[r]:[]))}processChildren(n,e,i){const o=[];for(const r of Object.keys(i.children))"primary"===r?o.unshift(r):o.push(r);return Xi(o).pipe(Ol(r=>{const a=i.children[r],s=function Mie(t,n){const e=t.filter(i=>Gr(i)===n);return e.push(...t.filter(i=>Gr(i)!==n)),e}(e,r);return this.processSegmentGroup(n,s,a,r)}),function Ete(t,n){return $i(function Ite(t,n,e,i,o){return(r,a)=>{let s=e,c=n,u=0;r.subscribe(Fi(a,p=>{const g=u++;c=s?t(c,p,g):(s=!0,p),i&&a.next(c)},o&&(()=>{s&&a.next(c),a.complete()})))}}(t,n,arguments.length>=2,!0))}((r,a)=>(r.push(...a),r)),ug(null),function Ote(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,ZC(1),e?ug(n):xR(()=>new dg))}(),Pn(r=>{if(null===r)return id(i);const a=sN(r);return function une(t){t.sort((n,e)=>n.value.outlet===Bt?-1:e.value.outlet===Bt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),Ke(a)}))}processSegment(n,e,i,o,r,a){return Xi(e).pipe(Ol(s=>this.processSegmentAgainstRoute(s._injector??n,e,s,i,o,r,a).pipe(Li(c=>{if(c instanceof hw)return Ke(null);throw c}))),hc(s=>!!s),Li(s=>{if(oN(s))return function ane(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?Ke(new sne):id(i);throw s}))}processSegmentAgainstRoute(n,e,i,o,r,a,s){return function rne(t,n,e,i){return!!(Gr(t)===i||i!==Bt&&Sg(n,e,t))&&fw(n,t,e).matched}(i,o,r,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,a):id(o):id(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,a){const{matched:s,consumedSegments:c,positionalParamSegments:u,remainingSegments:p}=fw(e,o,r);if(!s)return id(e);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const g=this.applyRedirects.applyRedirectCommands(c,o.redirectTo,u);return this.applyRedirects.lineralizeSegments(o,g).pipe(Pn(b=>this.processSegment(n,i,e,b.concat(p),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,r){const a=Jie(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(gn(s=>s.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(gn(({routes:c})=>{const u=i._loadedInjector??n,{consumedSegments:p,remainingSegments:g,parameters:b}=s,w=new sw(p,b,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function mne(t){return t.data||{}}(i),Gr(i),i.component??i._loadedComponent??null,i,function pne(t){return t.resolve||{}}(i)),{segmentGroup:k,slicedSegments:T}=aN(e,p,g,c);if(0===T.length&&k.hasChildren())return this.processChildren(u,c,k).pipe(nt(re=>null===re?null:new Sr(w,re)));if(0===c.length&&0===T.length)return Ke(new Sr(w,[]));const z=Gr(i)===r;return this.processSegment(u,c,k,T,z?Bt:r,!0).pipe(nt(re=>new Sr(w,re instanceof Sr?[re]:[])))})):id(e)))}getChildConfig(n,e,i){return e.children?Ke({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?Ke({routes:e._loadedRoutes,injector:e._loadedInjector}):function Kie(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?Ke(!0):Ke(o.map(a=>{const s=ed(a,t);return vs(function Nie(t){return t&&wh(t.canLoad)}(s)?s.canLoad(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN())}(n,e,i).pipe(Pn(o=>o?this.configLoader.loadChildren(n,e).pipe(qt(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function Qie(t){return ju(eN(!1,tr.GuardRejected))}())):Ke({routes:[],injector:n})}}function hne(t){const n=t.value.routeConfig;return n&&""===n.path}function sN(t){const n=[],e=new Set;for(const i of t){if(!hne(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=sN(i.children);n.push(new Sr(i.value,o))}return n.filter(i=>!e.has(i))}function cN(t){const n=t.children.map(e=>cN(e)).flat();return[t,...n]}function gw(t){return gn(n=>{const e=t(n);return e?Xi(e).pipe(nt(()=>n)):Ke(n)})}let lN=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Bt);return i}getResolvedTitleForRoute(e){return e.data[uh]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(yne),providedIn:"root"})}return t})(),yne=(()=>{class t extends lN{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(yH))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nd=new se("",{providedIn:"root",factory:()=>({})}),od=new se("");let _w=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=De(wT)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ke(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=vs(e.loadComponent()).pipe(nt(dN),qt(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),ec(()=>{this.componentLoaders.delete(e)})),o=new R0(i,()=>new qe).pipe(P0());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ke({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function Cne(t,n,e,i){return vs(t.loadChildren()).pipe(nt(dN),Pn(o=>o instanceof RS||Array.isArray(o)?Ke(o):Xi(n.compileModuleAsync(o))),nt(o=>{i&&i(t);let r,a,s=!1;return Array.isArray(o)?(a=o,!0):(r=o.create(e).injector,a=r.get(od,[],{optional:!0,self:!0}).flat()),{routes:a.map(uw),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(ec(()=>{this.childrenLoaders.delete(i)})),a=new R0(r,()=>new qe).pipe(P0());return this.childrenLoaders.set(i,a),a}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function dN(t){return function wne(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let bw=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(xne),providedIn:"root"})}return t})(),xne=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uN=new se(""),hN=new se("");function Dne(t,n,e){const i=t.get(hN),o=t.get(ut);return t.get(We).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let r;const a=new Promise(u=>{r=u}),s=o.startViewTransition(()=>(r(),function Sne(t){return new Promise(n=>{JD(n,{injector:t})})}(t))),{onViewTransitionCreated:c}=i;return c&&Ha(t,()=>c({transition:s,from:n,to:e})),a})}let kg=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new qe,this.transitionAbortSubject=new qe,this.configLoader=De(_w),this.environmentInjector=De(Ao),this.urlSerializer=De(Kl),this.rootContexts=De(_h),this.location=De(Ws),this.inputBindingEnabled=null!==De(wg,{optional:!0}),this.titleStrategy=De(lN),this.options=De(nd,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=De(bw),this.createViewTransition=De(uN,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>Ke(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new uie(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new die(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new pt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:gh,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(kt(r=>0!==r.id),nt(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),gn(r=>{this.currentTransition=r;let a=!1,s=!1;return Ke(r).pipe(qt(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gn(c=>{const u=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!u&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.rawUrl),g,vg.IgnoredSameUrlNavigation)),c.resolve(null),jo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return Ke(c).pipe(gn(g=>{const b=this.transitions?.getValue();return this.events.next(new bg(g.id,this.urlSerializer.serialize(g.extractedUrl),g.source,g.restoredState)),b!==this.transitions?.getValue()?jo:Promise.resolve(g)}),function fne(t,n,e,i,o,r){return Pn(a=>function cne(t,n,e,i,o,r,a="emptyOnly"){return new dne(t,n,e,i,o,a,r).recognize()}(t,n,e,i,a.extractedUrl,o,r).pipe(nt(({state:s,tree:c})=>({...a,targetSnapshot:s,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),qt(g=>{r.targetSnapshot=g.targetSnapshot,r.urlAfterRedirects=g.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:g.urlAfterRedirects};const b=new UR(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(b)}));if(u&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:g,extractedUrl:b,source:w,restoredState:k,extras:T}=c,z=new bg(g,this.urlSerializer.serialize(b),w,k);this.events.next(z);const re=WR(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:re,urlAfterRedirects:b,extras:{...T,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=b,Ke(r)}{const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.extractedUrl),g,vg.IgnoredByUrlHandlingStrategy)),c.resolve(null),jo}}),qt(c=>{const u=new aie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),nt(c=>(this.currentTransition=r={...c,guards:Eie(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function jie(t,n){return Pn(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:a}}=e;return 0===a.length&&0===r.length?Ke({...e,guardsResult:!0}):function zie(t,n,e,i){return Xi(t).pipe(Pn(o=>function Wie(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?Ke(r.map(s=>{const c=vh(n)??o,u=ed(s,c);return vs(function Bie(t){return t&&wh(t.canDeactivate)}(u)?u.canDeactivate(t,n,e,i):Ha(c,()=>u(t,n,e,i))).pipe(hc())})).pipe(td()):Ke(!0)}(o.component,o.route,e,n,i)),hc(o=>!0!==o,!0))}(a,i,o,t).pipe(Pn(s=>s&&function Rie(t){return"boolean"==typeof t}(s)?function Hie(t,n,e,i){return Xi(n).pipe(Ol(o=>Nu(function $ie(t,n){return null!==t&&n&&n(new hie(t)),Ke(!0)}(o.route.parent,i),function Uie(t,n){return null!==t&&n&&n(new pie(t)),Ke(!0)}(o.route,i),function qie(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(a=>function Oie(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>Vl(()=>Ke(a.guards.map(c=>{const u=vh(a.node)??e,p=ed(c,u);return vs(function Lie(t){return t&&wh(t.canActivateChild)}(p)?p.canActivateChild(i,t):Ha(u,()=>p(i,t))).pipe(hc())})).pipe(td())));return Ke(r).pipe(td())}(t,o.path,e),function Gie(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return Ke(!0);const o=i.map(r=>Vl(()=>{const a=vh(n)??e,s=ed(r,a);return vs(function Fie(t){return t&&wh(t.canActivate)}(s)?s.canActivate(n,t):Ha(a,()=>s(n,t))).pipe(hc())}));return Ke(o).pipe(td())}(t,o.route,e))),hc(o=>!0!==o,!0))}(i,r,t,n):Ke(s)),nt(s=>({...e,guardsResult:s})))})}(this.environmentInjector,c=>this.events.next(c)),qt(c=>{if(r.guardsResult=c.guardsResult,Zl(c.guardsResult))throw JR(0,c.guardsResult);const u=new sie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),kt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",tr.GuardRejected),!1)),gw(c=>{if(c.guards.canActivateChecks.length)return Ke(c).pipe(qt(u=>{const p=new cie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}),gn(u=>{let p=!1;return Ke(u).pipe(function gne(t,n){return Pn(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ke(e);const r=new Set(o.map(c=>c.route)),a=new Set;for(const c of r)if(!a.has(c))for(const u of cN(c))a.add(u);let s=0;return Xi(a).pipe(Ol(c=>r.has(c)?function _ne(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!YR(o)&&(r[uh]=o.title),function bne(t,n,e,i){const o=YC(t);if(0===o.length)return Ke({});const r={};return Xi(o).pipe(Pn(a=>function vne(t,n,e,i){const o=vh(n)??i,r=ed(t,o);return vs(r.resolve?r.resolve(n,e):Ha(o,()=>r(n,e)))}(t[a],n,e,i).pipe(hc(),qt(s=>{r[a]=s}))),ZC(1),Bf(r),Li(a=>oN(a)?jo:ju(a)))}(r,t,n,i).pipe(nt(a=>(t._resolvedData=a,t.data=aw(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=aw(c,c.parent,t).resolve,Ke(void 0))),qt(()=>s++),ZC(1),Pn(c=>s===a.size?Ke(e):jo))})}(this.paramsInheritanceStrategy,this.environmentInjector),qt({next:()=>p=!0,complete:()=>{p||this.cancelNavigationTransition(u,"",tr.NoDataFromResolver)}}))}),qt(u=>{const p=new lie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}))}),gw(c=>{const u=p=>{const g=[];p.routeConfig?.loadComponent&&!p.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(p.routeConfig).pipe(qt(b=>{p.component=b}),nt(()=>{})));for(const b of p.children)g.push(...u(b));return g};return Xs(u(c.targetSnapshot.root)).pipe(ug(null),Pt(1))}),gw(()=>this.afterPreactivation()),gn(()=>{const{currentSnapshot:c,targetSnapshot:u}=r,p=this.createViewTransition?.(this.environmentInjector,c.root,u.root);return p?Xi(p).pipe(nt(()=>r)):Ke(r)}),nt(c=>{const u=function vie(t,n,e){const i=bh(t,n._root,e?e._root:void 0);return new qR(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:u},this.currentNavigation.targetRouterState=u,r}),qt(()=>{this.events.next(new iw)}),((t,n,e,i)=>nt(o=>(new Iie(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),Pt(1),qt({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Oa(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),ot(this.transitionAbortSubject.pipe(qt(c=>{throw c}))),ec(()=>{!a&&!s&&this.cancelNavigationTransition(r,"",tr.SupersededByNewNavigation),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Li(c=>{if(s=!0,tN(c))this.events.next(new Yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function wie(t){return tN(t)&&Zl(t.url)}(c)?this.events.next(new nw(c.url)):r.resolve(!1);else{this.events.next(new yg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0));try{r.resolve(e.errorHandler(c))}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return jo}))}))}cancelNavigationTransition(e,i,o){const r=new Yl(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kne(t){return t!==gh}let Mne=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ine),providedIn:"root"})}return t})();class Tne{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let Ine=(()=>{class t extends Tne{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ene),providedIn:"root"})}return t})(),Ene=(()=>{class t extends mN{constructor(){super(...arguments),this.location=De(Ws),this.urlSerializer=De(Kl),this.options=De(nd,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=De(bw),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new Wl,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=WR(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof bg)this.stateMemento=this.createStateMemento();else if(e instanceof Ql)this.rawUrlTree=i.initialUrl;else if(e instanceof UR){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof iw?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof Yl&&(e.code===tr.GuardRejected||e.code===tr.NoDataFromResolver)?this.restoreHistory(i):e instanceof yg?this.restoreHistory(i,!0):e instanceof Oa&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var xh=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(xh||{});function pN(t,n){t.events.pipe(kt(e=>e instanceof Oa||e instanceof Yl||e instanceof yg||e instanceof Ql),nt(e=>e instanceof Oa||e instanceof Ql?xh.COMPLETE:e instanceof Yl&&(e.code===tr.Redirect||e.code===tr.SupersededByNewNavigation)?xh.REDIRECTING:xh.FAILED),kt(e=>e!==xh.REDIRECTING),Pt(1)).subscribe(()=>{n()})}function One(t){throw t}const Ane={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Pne={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Rn=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=De(uT),this.stateManager=De(mN),this.options=De(nd,{optional:!0})||{},this.pendingTasks=De(Vs),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=De(kg),this.urlSerializer=De(Kl),this.location=De(Ws),this.urlHandlingStrategy=De(bw),this._events=new qe,this.errorHandler=this.options.errorHandler||One,this.navigated=!1,this.routeReuseStrategy=De(Mne),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=De(od,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!De(wg,{optional:!0}),this.eventsSubscription=new de,this.isNgZoneEnabled=De(We)instanceof We&&We.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof Yl&&i.code!==tr.Redirect&&i.code!==tr.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Oa)this.navigated=!0;else if(i instanceof nw){const a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),s={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||kne(o.source)};this.scheduleNavigation(a,gh,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Nne(t){return!(t instanceof iw||t instanceof nw)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),gh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const s=this.parseUrl(e);this.scheduleNavigation(s,i,a,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(uw),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:a,queryParamsHandling:s,preserveFragment:c}=i,u=c?this.currentUrlTree.fragment:a;let g,p=null;switch(s){case"merge":p={...this.currentUrlTree.queryParams,...r};break;case"preserve":p=this.currentUrlTree.queryParams;break;default:p=r||null}null!==p&&(p=this.removeEmptyProps(p));try{g=FR(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),g=this.currentUrlTree.root}return LR(g,e,p,u??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Zl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,gh,null,i)}navigate(e,i={skipLocationChange:!1}){return function Rne(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,a){if(this.disposed)return Promise.resolve(!1);let s,c,u;a?(s=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,b)=>{s=g,c=b});const p=this.pendingTasks.add();return pN(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(p))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:s,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),qr=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=a,this.locationStrategy=s,this.href=null,this.commands=null,this.onChanges=new qe,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(u=>{u instanceof Oa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,a){const s=this.urlTree;return!!(null===s||this.isAnchorElement&&(0!==e||i||o||r||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(s,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function I1(t,n,e){return function jL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?T1:qo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(Jl),oo("tabindex"),_(ca),_(Be),_(qs))};static#t=this.\u0275dir=Q({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,o){1&i&&A("click",function(a){return o.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),2&i&&Xe("target",o.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[ge.HasDecoratorInputTransform,"preserveFragment","preserveFragment",Cl],skipLocationChange:[ge.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",Cl],replaceUrl:[ge.HasDecoratorInputTransform,"replaceUrl","replaceUrl",Cl],routerLink:"routerLink"},standalone:!0,features:[PS,fi]})}return t})();class fN{}let Bne=(()=>{class t{constructor(e,i,o,r,a){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(kt(e=>e instanceof Oa),Ol(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Qb(r.providers,e,`Route: ${r.path}`));const a=r._injector??e,s=r._loadedInjector??a;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(a,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(s,r.children??r._loadedRoutes))}return Xi(o).pipe(Ml())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ke(null);const r=o.pipe(Pn(a=>null===a?Ke(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?Xi([r,this.loader.loadComponent(i)]).pipe(Ml()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Rn),X(wT),X(Ao),X(fN),X(_w))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const vw=new se("");let gN=(()=>{class t{constructor(e,i,o,r,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof bg?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Oa?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ql&&e.code===vg.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof $R&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new $R(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function Wr(t,n){return{\u0275kind:t,\u0275providers:n}}function bN(){const t=De(ji);return n=>{const e=t.get(Za);if(n!==e.components[0])return;const i=t.get(Rn),o=t.get(vN);1===t.get(yw)&&i.initialNavigation(),t.get(yN,null,$t.Optional)?.setUpPreloading(),t.get(vw,null,$t.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const vN=new se("",{factory:()=>new qe}),yw=new se("",{providedIn:"root",factory:()=>1}),yN=new se("");function Hne(t){return Wr(0,[{provide:yN,useExisting:Bne},{provide:fN,useExisting:t}])}function $ne(t){return Wr(9,[{provide:uN,useValue:Dne},{provide:hN,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const CN=new se("ROUTER_FORROOT_GUARD"),Gne=[Ws,{provide:Kl,useClass:QC},Rn,_h,{provide:Jl,useFactory:function _N(t){return t.routerState.root},deps:[Rn]},_w,[]];let wN=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[Gne,[],{provide:od,multi:!0,useValue:e},{provide:CN,useFactory:Zne,deps:[[Rn,new za,new Vc]]},{provide:nd,useValue:i||{}},i?.useHash?{provide:qs,useClass:s7}:{provide:qs,useClass:r2},{provide:vw,useFactory:()=>{const t=De(C9),n=De(We),e=De(nd),i=De(kg),o=De(Kl);return e.scrollOffset&&t.setOffset(e.scrollOffset),new gN(o,i,t,n,e)}},i?.preloadingStrategy?Hne(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Yne(i):[],i?.bindToComponentInputs?Wr(8,[QR,{provide:wg,useExisting:QR}]).\u0275providers:[],i?.enableViewTransitions?$ne().\u0275providers:[],[{provide:xN,useFactory:bN},{provide:Bv,multi:!0,useExisting:xN}]]}}static forChild(e){return{ngModule:t,providers:[{provide:od,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(CN,8))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();function Zne(t){return"guarded"}function Yne(t){return["disabled"===t.initialNavigation?Wr(3,[{provide:Fv,multi:!0,useFactory:()=>{const n=De(Rn);return()=>{n.setUpLocationChangeListener()}}},{provide:yw,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Wr(2,[{provide:yw,useValue:0},{provide:Fv,multi:!0,deps:[ji],useFactory:n=>{const e=n.get(r7,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(Rn),r=n.get(vN);pN(o,()=>{i(!0)}),n.get(kg).afterPreactivation=()=>(i(!0),r.closed?Ke(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const xN=new se("");var Jn=function(t){return t.DirectConnect="directConnect",t.DumpFile="dumpFile",t.SessionFile="sessionFile",t.ResumeSession="resumeSession",t}(Jn||{}),Wi=function(t){return t.Type="inputType",t.Config="config",t.SourceDbName="sourceDbName",t}(Wi||{}),ir=function(t){return t.MySQL="MySQL",t.Postgres="Postgres",t.SQLServer="SQL Server",t.Oracle="Oracle",t}(ir||{}),jt=function(t){return t.DbName="databaseName",t.Tables="tables",t.Table="tableName",t.Indexes="indexes",t.Index="indexName",t.Sequences="sequences",t.Sequence="sequenceName",t}(jt||{}),Kr=function(t){return t.schemaOnly="Schema",t.dataOnly="Data",t.schemaAndData="Schema And Data",t}(Kr||{}),ys=function(t){return t.Table="table",t.Index="index",t.Sequence="sequence",t}(ys||{}),Hn=function(t){return t.bulkMigration="bulk",t.lowDowntimeMigration="lowdt",t}(Hn||{}),he=function(t){return t.MigrationMode="migrationMode",t.MigrationType="migrationType",t.IsTargetDetailSet="isTargetDetailSet",t.IsSourceConnectionProfileSet="isSourceConnectionProfileSet",t.IsSourceDetailsSet="isSourceDetailsSet",t.IsTargetConnectionProfileSet="isTargetConnectionProfileSet",t.IsMigrationDetailSet="isMigrationDetailSet",t.IsMigrationInProgress="isMigrationInProgress",t.HasDataMigrationStarted="hasDataMigrationStarted",t.HasSchemaMigrationStarted="hasSchemaMigrationStarted",t.SchemaProgressMessage="schemaProgressMessage",t.DataProgressMessage="dataProgressMessage",t.DataMigrationProgress="dataMigrationProgress",t.SchemaMigrationProgress="schemaMigrationProgress",t.HasForeignKeyUpdateStarted="hasForeignKeyUpdateStarted",t.ForeignKeyProgressMessage="foreignKeyProgressMessage",t.ForeignKeyUpdateProgress="foreignKeyUpdateProgress",t.GeneratingResources="generatingResources",t.NumberOfShards="numberOfShards",t.NumberOfInstances="numberOfInstances",t.isForeignKeySkipped="isForeignKeySkipped",t.IsGcsMetadataPathSet="isGcsMetadataPathSet",t}(he||{}),yt=function(t){return t.TargetDB="targetDb",t.Dialect="dialect",t.SourceConnProfile="sourceConnProfile",t.TargetConnProfile="targetConnProfile",t.ReplicationSlot="replicationSlot",t.Publication="publication",t.GcsMetadataName="gcsName",t.GcsMetadataRootPath="gcsRootPath",t}(yt||{});var rd=function(t){return t[t.SchemaMigrationComplete=1]="SchemaMigrationComplete",t[t.SchemaCreationInProgress=2]="SchemaCreationInProgress",t[t.DataMigrationComplete=3]="DataMigrationComplete",t[t.DataWriteInProgress=4]="DataWriteInProgress",t[t.ForeignKeyUpdateInProgress=5]="ForeignKeyUpdateInProgress",t[t.ForeignKeyUpdateComplete=6]="ForeignKeyUpdateComplete",t}(rd||{});const DN=[{value:"google_standard_sql",displayName:"Google Standard SQL Dialect"},{value:"postgresql",displayName:"PostgreSQL Dialect"}],In={StorageMaxLength:0x8000000000000000,StringMaxLength:2621440,ByteMaxLength:10485760,DataTypes:["STRING","BYTES","VARCHAR"]},SN_GoogleStandardSQL=["BOOL","BYTES","DATE","FLOAT64","INT64","STRING","TIMESTAMP","NUMERIC","JSON"],SN_PostgreSQL=["BOOL","BYTEA","DATE","FLOAT8","INT8","VARCHAR","TIMESTAMPTZ","NUMERIC","JSONB"];var Zr=function(t){return t.DirectConnectForm="directConnectForm",t.IsConnectionSuccessful="isConnectionSuccessful",t}(Zr||{});const kN=["MySQL"],MN={width:"50%",minWidth:"40%",maxWidth:"70%"},Jne={width:"100%",minWidth:"50%",maxWidth:"75%"},eoe={width:"30vw",minWidth:"400px",maxWidth:"500px"};function ad(t){return"mysql"==t||"mysqldump"==t?ir.MySQL:"postgres"===t||"pgdump"===t||"pg_dump"===t?ir.Postgres:"oracle"===t?ir.Oracle:"sqlserver"===t?ir.SQLServer:t}function TN(t){var n=document.createElement("a");let e=JSON.stringify(t).replace(/9223372036854776000/g,"9223372036854775807");n.href="data:text/json;charset=utf-8,"+encodeURIComponent(e),n.download=`${t.SessionName}_${t.DatabaseType}_${t.DatabaseName}.json`,n.click()}function IN(t){const n={};return Object.keys(t).forEach(e=>{n[e]=function toe(t){return t.reduce((n,e)=>{const i=e.GenerationType;return n[i]||(n[i]=[]),n[i].push(e),n},{})}(t[e])}),n}function EN(t,n){return e=>{const i=e,o=i.get(t),r=i.get(n);return o&&r&&(o.value&&!r.value||!o.value&&r.value)?{linkedError:"Both Skip Range Min and Max are required"}:null}}let En=(()=>{class t{constructor(e){this.http=e,this.url=window.location.origin}connectTodb(e,i){const{dbEngine:o,isSharded:r,hostName:a,port:s,dbName:c,userName:u,password:p}=e;return this.http.post(`${this.url}/connect`,{Driver:o,IsSharded:r,Host:a,Port:s,Database:c,User:u,Password:p,Dialect:i},{observe:"response"})}getLastSessionDetails(){return this.http.get(`${this.url}/GetLatestSessionDetails`)}getSchemaConversionFromDirectConnect(){return this.http.get(`${this.url}/convert/infoschema`)}getSchemaConversionFromDump(e){return this.http.post(`${this.url}/convert/dump`,e)}setSourceDBDetailsForDump(e){return this.http.post(`${this.url}/SetSourceDBDetailsForDump`,e)}setSourceDBDetailsForDirectConnect(e){const{dbEngine:i,hostName:o,port:r,dbName:a,userName:s,password:c}=e;return this.http.post(`${this.url}/SetSourceDBDetailsForDirectConnect`,{Driver:i,Host:o,Port:r,Database:a,User:s,Password:c})}setShardsSourceDBDetailsForBulk(e){const{dbConfigs:i,isRestoredSession:o}=e;let r=[];return i.forEach(a=>{r.push({Driver:a.dbEngine,Host:a.hostName,Port:a.port,Database:a.dbName,User:a.userName,Password:a.password,DataShardId:a.shardId})}),this.http.post(`${this.url}/SetShardsSourceDBDetailsForBulk`,{DbConfigs:r,IsRestoredSession:o})}setShardsSourceDBDetailsForDataflow(e){return this.http.post(`${this.url}/SetShardsSourceDBDetailsForDataflow`,{MigrationProfile:e})}setDatastreamDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDatastreamDetailsForShardedMigrations`,e)}setGcsDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetGcsDetailsForShardedMigrations`,e)}setDataflowDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDataflowDetailsForShardedMigrations`,e)}getSourceProfile(){return this.http.get(`${this.url}/GetSourceProfileConfig`)}getSchemaConversionFromSessionFile(e){return this.http.post(`${this.url}/convert/session`,e)}getDStructuredReport(){return this.http.get(`${this.url}/downloadStructuredReport`)}getDTextReport(){return this.http.get(`${this.url}/downloadTextReport`)}getDSpannerDDL(){return this.http.get(`${this.url}/downloadDDL`)}getIssueDescription(){return this.http.get(`${this.url}/issueDescription`)}getConversionRate(){return this.http.get(`${this.url}/conversion`)}getConnectionProfiles(e){return this.http.get(`${this.url}/GetConnectionProfiles?source=${e}`)}getGeneratedResources(){return this.http.get(`${this.url}/GetGeneratedResources`)}getStaticIps(){return this.http.get(`${this.url}/GetStaticIps`)}createConnectionProfile(e){return this.http.post(`${this.url}/CreateConnectionProfile`,e)}verifyJsonConfiguration(e){return this.http.post(`${this.url}/VerifyJsonConfiguration`,{MigrationProfile:e})}getSummary(){return this.http.get(`${this.url}/summary`)}getDdl(){return this.http.get(`${this.url}/ddl`)}getSequenceDdl(){return this.http.get(`${this.url}/seqDdl`)}getTypeMap(){return this.http.get(`${this.url}/typemap`)}getAutoGenMap(){return this.http.get(`${this.url}/autoGenMap`)}getSequenceKind(){return this.http.get(`${this.url}/getSequenceKind`)}getSpannerDefaultTypeMap(){return this.http.get(`${this.url}/spannerDefaultTypeMap`)}reviewTableUpdate(e,i){return this.http.post(`${this.url}/typemap/reviewTableSchema?table=${e}`,i)}updateTable(e,i){return this.http.post(`${this.url}/typemap/table?table=${e}`,i)}removeInterleave(e){return this.http.post(`${this.url}/removeParent?tableId=${e}`,{})}restoreTables(e){return this.http.post(`${this.url}/restore/tables`,e)}restoreTable(e){return this.http.post(`${this.url}/restore/table?table=${e}`,{})}dropTable(e){return this.http.post(`${this.url}/drop/table?table=${e}`,{})}dropTables(e){return this.http.post(`${this.url}/drop/tables`,e)}updatePk(e){return this.http.post(`${this.url}/primaryKey`,e)}updateFk(e,i){return this.http.post(`${this.url}/update/fks?table=${e}`,i)}addColumn(e,i){return this.http.post(`${this.url}/AddColumn?table=${e}`,i)}addSequence(e){return this.http.post(`${this.url}/AddSequence`,e)}removeFk(e,i){return this.http.post(`${this.url}/drop/fk?table=${e}`,{Id:i})}getTableWithErrors(){return this.http.get(`${this.url}/GetTableWithErrors`)}getSessions(){return this.http.get(`${this.url}/GetSessions`)}getConvForSession(e){return this.http.get(`${this.url}/GetSession/${e}`,{responseType:"blob"})}resumeSession(e){return this.http.post(`${this.url}/ResumeSession/${e}`,{})}saveSession(e){return this.http.post(`${this.url}/SaveRemoteSession`,e)}getSpannerConfig(){return this.http.get(`${this.url}/GetConfig`)}setSpannerConfig(e){return this.http.post(`${this.url}/SetSpannerConfig`,e)}getIsOffline(){return this.http.get(`${this.url}/IsOffline`)}updateIndex(e,i){return this.http.post(`${this.url}/update/indexes?table=${e}`,i)}updateSequence(e){return this.http.post(`${this.url}/UpdateSequence`,e)}dropIndex(e,i){return this.http.post(`${this.url}/drop/secondaryindex?table=${e}`,{Id:i})}dropSequence(e){return this.http.post(`${this.url}/drop/sequence?sequence=${e}`,{})}restoreIndex(e,i){return this.http.post(`${this.url}/restore/secondaryIndex?tableId=${e}&indexId=${i}`,{})}getInterleaveStatus(e){return this.http.get(`${this.url}/setparent?table=${e}&update=false`)}setInterleave(e){return this.http.get(`${this.url}/setparent?table=${e}&update=true`)}getSourceDestinationSummary(){return this.http.get(`${this.url}/GetSourceDestinationSummary`)}migrate(e){return this.http.post(`${this.url}/Migrate`,e)}getProgress(){return this.http.get(`${this.url}/GetProgress`)}uploadFile(e){return this.http.post(`${this.url}/uploadFile`,e)}cleanUpStreamingJobs(){return this.http.post(`${this.url}/CleanUpStreamingJobs`,{})}applyRule(e){return this.http.post(`${this.url}/applyrule`,e)}dropRule(e){return this.http.post(`${this.url}/dropRule?id=${e}`,{})}getStandardTypeToPGSQLTypemap(){return this.http.get(`${this.url}/typemap/GetStandardTypeToPGSQLTypemap`)}getPGSQLToStandardTypeTypemap(){return this.http.get(`${this.url}/typemap/GetPGSQLToStandardTypeTypemap`)}checkBackendHealth(){return this.http.get(`${this.url}/ping`)}static#e=this.\u0275fac=function(i){return new(i||t)(X(pf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nr=(()=>{class t{constructor(e){this.snackBar=e}openSnackBar(e,i,o){o||(o=10),this.snackBar.open(e,i,{duration:1e3*o})}openSnackBarWithoutTimeout(e,i){this.snackBar.open(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(FJ))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),or=(()=>{class t{constructor(){this.spannerConfigSub=new pt(!1),this.datebaseLoaderSub=new pt({type:"",databaseName:""}),this.viewAssesmentSub=new pt({srcDbType:"",connectionDetail:"",conversionRates:{good:0,ok:0,bad:0}}),this.tabToSpannerSub=new pt(!1),this.cancelDbLoadSub=new pt(!1),this.spannerConfig=this.spannerConfigSub.asObservable(),this.databaseLoader=this.datebaseLoaderSub.asObservable(),this.viewAssesment=this.viewAssesmentSub.asObservable(),this.tabToSpanner=this.tabToSpannerSub.asObservable(),this.cancelDbLoad=this.cancelDbLoadSub.asObservable()}openSpannerConfig(){this.spannerConfigSub.next(!0)}openDatabaseLoader(e,i){this.datebaseLoaderSub.next({type:e,databaseName:i})}closeDatabaseLoader(){this.datebaseLoaderSub.next({type:"",databaseName:""})}setViewAssesmentData(e){this.viewAssesmentSub.next(e)}setTabToSpanner(){this.tabToSpannerSub.next(!0)}cancelDbLoading(){this.cancelDbLoadSub.next(!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cw=(()=>{class t{constructor(){this.reviewTableChangesSub=new pt({Changes:[],DDL:""}),this.tableUpdateDetailSub=new pt({tableName:"",tableId:"",updateDetail:{UpdateCols:{}}}),this.reviewTableChanges=this.reviewTableChangesSub.asObservable(),this.tableUpdateDetail=this.tableUpdateDetailSub.asObservable()}setTableReviewChanges(e){this.reviewTableChangesSub.next(e)}setTableUpdateDetail(e){this.tableUpdateDetailSub.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pc=(()=>{class t{constructor(e){this.fetch=e,this.standardTypeToPGSQLTypeMapSub=new pt(new Map),this.pgSQLToStandardTypeTypeMapSub=new pt(new Map),this.standardTypeToPGSQLTypeMap=this.standardTypeToPGSQLTypeMapSub.asObservable(),this.pgSQLToStandardTypeTypeMap=this.pgSQLToStandardTypeTypeMapSub.asObservable(),this.srcDbName=localStorage.getItem(Wi.SourceDbName)}getStandardTypeToPGSQLTypemap(){return this.fetch.getStandardTypeToPGSQLTypemap().subscribe({next:e=>{this.standardTypeToPGSQLTypeMapSub.next(new Map(Object.entries(e)))}})}getPGSQLToStandardTypeTypemap(){return this.fetch.getPGSQLToStandardTypeTypemap().subscribe({next:e=>{this.pgSQLToStandardTypeTypeMapSub.next(new Map(Object.entries(e)))}})}createTreeNode(e,i,o="",r=""){e.DatabaseType&&(this.srcDbName=ad(e.DatabaseType));let a=Object.keys(e.SpSchema).filter(w=>e.SpSchema[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s=Object.keys(e.SpSequences).filter(w=>e.SpSequences[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),c=Object.keys(e.SrcSchema).filter(w=>-1==a.indexOf(w)&&e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_").includes(o.toLocaleLowerCase())),u=this.getDeletedIndexes(e),p={name:`Tables (${a.length})`,type:jt.Tables,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:a.map(w=>{let k=e.SpSchema[w];return{name:k.Name,status:i[w],type:jt.Table,parent:""!=k.ParentId?e.SpSchema[k.ParentId]?.Name:"",pos:-1,isSpannerNode:!0,id:w,parentId:k.ParentId,children:[{name:`Indexes (${k.Indexes?k.Indexes.length:0})`,status:"",type:jt.Indexes,parent:e.SpSchema[w].Name,pos:-1,isSpannerNode:!0,id:"",parentId:w,children:k.Indexes?k.Indexes.map((T,z)=>({name:T.Name,type:jt.Index,parent:e.SpSchema[w].Name,pos:z,isSpannerNode:!0,id:T.Id,parentId:w})):[]}]}})};c.forEach(w=>{p.children?.push({name:e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_"),status:"DARK",type:jt.Table,pos:-1,isSpannerNode:!0,children:[],isDeleted:!0,id:w,parent:"",parentId:""})}),p.children?.forEach((w,k)=>{u[w.id]&&u[w.id].forEach(T=>{p.children[k].children[0].children?.push({name:T.Name.replace(/[^A-Za-z0-9_]/g,"_"),type:jt.Index,parent:e.SpSchema[w.name]?.Name,pos:k,isSpannerNode:!0,isDeleted:!0,id:T.Id,parentId:w.id})})});let g={name:`Sequences (${s.length})`,type:jt.Sequences,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:s.map(w=>({name:e.SpSequences[w].Name,status:"",type:jt.Sequence,parent:"",pos:-1,isSpannerNode:!0,id:w,parentId:"",children:[]}))};this.sortNodeChildren(p,r),this.sortNodeChildren(g,r);let b=[p];return kN.includes(this.srcDbName)&&b.push(g),[{name:e.DatabaseName,children:b,type:jt.DbName,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:""}]}sortNodeChildren(e,i){"asc"===i||""===i?e.children?.sort((o,r)=>o.name>r.name?1:r.name>o.name?-1:0):"desc"===i&&e.children?.sort((o,r)=>r.name>o.name?1:o.name>r.name?-1:0)}createTreeNodeForSource(e,i,o="",r=""){let a=Object.keys(e.SrcSchema).filter(c=>e.SrcSchema[c].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s={name:`Tables (${a.length})`,type:jt.Tables,pos:-1,isSpannerNode:!1,id:"",parent:"",parentId:"",children:a.map(c=>{let u=e.SrcSchema[c];return{name:u.Name,status:i[c]?i[c]:"NONE",type:jt.Table,parent:"",pos:-1,isSpannerNode:!1,id:c,parentId:"",children:[{name:`Indexes (${u.Indexes?.length||"0"})`,status:"",type:jt.Indexes,parent:"",pos:-1,isSpannerNode:!1,id:"",parentId:"",children:u.Indexes?u.Indexes.map((p,g)=>({name:p.Name,type:jt.Index,parent:e.SrcSchema[c].Name,isSpannerNode:!1,pos:g,id:p.Id,parentId:c})):[]}]}})};return"asc"===r||""===r?s.children?.sort((c,u)=>c.name>u.name?1:u.name>c.name?-1:0):"desc"===r&&s.children?.sort((c,u)=>u.name>c.name?1:c.name>u.name?-1:0),[{name:e.DatabaseName,children:[s],type:jt.DbName,isSpannerNode:!1,parent:"",pos:-1,id:"",parentId:""}]}getColumnMapping(e,i){let u,o=this.getSpannerTableNameFromId(e,i),r=i.SrcSchema[e].ColIds,a=i.SpSchema[e]?i.SpSchema[e].ColIds:null,s=i.SrcSchema[e].PrimaryKeys,c=a?i.SpSchema[e].PrimaryKeys:null;this.standardTypeToPGSQLTypeMap.subscribe(b=>{u=b});const p=In.StorageMaxLength,g=i.SrcSchema[e].ColIds.map((b,w)=>{let k;o&&i.SpSchema[e].PrimaryKeys.forEach(re=>{re.ColId==b&&(k=re.Order)});let T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";return{spOrder:T?w+1:"",srcOrder:w+1,spColName:T?T.Name:"",spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:i.SrcSchema[e].ColDefs[b].Name,srcDataType:i.SrcSchema[e].ColDefs[b].Type.Name,spIsPk:!(!T||!o)&&-1!==i.SpSchema[e].PrimaryKeys?.map(re=>re.ColId).indexOf(b),srcIsPk:!!s&&-1!==s.map(re=>re.ColId).indexOf(b),spIsNotNull:!(!T||!o)&&T.NotNull,srcIsNotNull:i.SrcSchema[e].ColDefs[b].NotNull,srcId:b,spId:T?b:"",spColMaxLength:0!=T?.T.Len?T?.T.Len!=p?T?.T.Len:"MAX":"",srcColMaxLength:null!=i.SrcSchema[e].ColDefs[b].Type.Mods?i.SrcSchema[e].ColDefs[b].Type.Mods[0]:"",spAutoGen:null!=T?.AutoGen?T?.AutoGen:{Name:"",GenerationType:""},srcAutoGen:i.SrcSchema[e].ColDefs[b].AutoGen?i.SrcSchema[e].ColDefs[b].AutoGen:{Name:"",GenerationType:""}}});return a&&a.forEach((b,w)=>{if(r.indexOf(b)<0){let k=i.SpSchema[e].ColDefs[b],T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";g.push({spOrder:w+1,srcOrder:"",spColName:k.Name,spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:"",srcDataType:"",spIsPk:!!c&&-1!==c.map(re=>re.ColId).indexOf(b),srcIsPk:!1,spIsNotNull:k.NotNull,srcIsNotNull:!1,srcId:"",spId:b,srcColMaxLength:"",spColMaxLength:T?.T.Len,spAutoGen:k.AutoGen,srcAutoGen:{Name:"",GenerationType:""}})}}),g}getPkMapping(e){let i=e.filter(o=>o.spIsPk||o.srcIsPk);return JSON.parse(JSON.stringify(i))}getFkMapping(e,i){let o=i.SrcSchema[e]?.ForeignKeys;return o?o.map(r=>{let a=this.getSpannerFkFromId(i,e,r.Id),s=a?a.ColIds.map(w=>i.SpSchema[e].ColDefs[w].Name):[],c=a?a.ColIds:[],u=r.ColIds.map(w=>i.SrcSchema[e].ColDefs[w].Name),p=a?a.ReferColumnIds.map(w=>i.SpSchema[r.ReferTableId].ColDefs[w].Name):[],g=a?a.ReferColumnIds:[],b=r.ReferColumnIds.map(w=>i.SrcSchema[r.ReferTableId].ColDefs[w].Name);return{srcFkId:r.Id,spFkId:a?.Id,spName:a?a.Name:"",srcName:r.Name,spColumns:s,srcColumns:u,spReferTable:a?i.SpSchema[a.ReferTableId].Name:"",srcReferTable:i.SrcSchema[r.ReferTableId].Name,spReferColumns:p,srcReferColumns:b,spColIds:c,spReferColumnIds:g,spReferTableId:a?a.ReferTableId:"",srcOnDelete:r.OnDelete,spOnDelete:a?a.OnDelete:"",srcOnUpdate:r.OnUpdate,spOnUpdate:a?a.OnUpdate:""}}):[]}getIndexMapping(e,i,o){let r=this.getSourceIndexFromId(i,e,o),a=this.getSpannerIndexFromId(i,e,o),s=r?r.Keys.map(p=>p.ColId):[],c=a?a.Keys.map(p=>p.ColId):[],u=r?r.Keys.map(p=>{let g=this.getSpannerIndexKeyFromColId(i,e,o,p.ColId);return{srcColId:p.ColId,spColId:g?g.ColId:void 0,srcColName:i.SrcSchema[e].ColDefs[p.ColId].Name,srcOrder:p.Order,srcDesc:p.Desc,spColName:g?i.SpSchema[e].ColDefs[g.ColId].Name:"",spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0}}):[];return c.forEach(p=>{if(-1==s.indexOf(p)){let g=this.getSpannerIndexKeyFromColId(i,e,o,p);u.push({srcColName:"",srcOrder:"",srcColId:void 0,srcDesc:void 0,spColName:i.SpSchema[e].ColDefs[p].Name,spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0,spColId:g?g.ColId:void 0})}}),u}getSequenceMapping(e,i){let a={};if(null!=this.getSpannerSequenceNameFromId(e,i)){let s=i.SpSequences[e];a.spSeqName=s.Name,a.spSequenceKind=s.SequenceKind,a.spSkipRangeMax=s.SkipRangeMax,a.spSkipRangeMin=s.SkipRangeMin,a.spStartWithCounter=s.StartWithCounter}return a}getSpannerFkFromId(e,i,o){let r=null;return e.SpSchema[i]?.ForeignKeys?.forEach(a=>{a.Id==o&&(r=a)}),r}getSourceIndexFromId(e,i,o){let r=null;return e.SrcSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerIndexFromId(e,i,o){let r=null;return e.SpSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerSequenceNameFromId(e,i){let o=null;return Object.keys(i.SpSequences).forEach(r=>{i.SpSequences[r].Id===e&&(o=i.SpSequences[r].Name)}),o}getSpannerIndexKeyFromColId(e,i,o,r){let a=null,s=e.SpSchema[i]?.Indexes?e.SpSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSourceIndexKeyFromColId(e,i,o,r){let a=null,s=e.SrcSchema[i]?.Indexes?e.SrcSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSpannerColDefFromId(e,i,o){let r=null;return Object.keys(o.SpSchema[e].ColDefs).forEach(a=>{o.SpSchema[e].ColDefs[a].Id==i&&(r=o.SpSchema[e].ColDefs[a])}),r}getSourceTableNameFromId(e,i){let o="";return Object.keys(i.SrcSchema).forEach(r=>{i.SrcSchema[r].Id===e&&(o=i.SrcSchema[r].Name)}),o}getSpannerTableNameFromId(e,i){let o=null;return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Id===e&&(o=i.SpSchema[r].Name)}),o}getTableIdFromSpName(e,i){let o="";return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Name===e&&(o=i.SpSchema[r].Id)}),o}getColIdFromSpannerColName(e,i,o){let r="";return Object.keys(o.SpSchema[i].ColDefs).forEach(a=>{o.SpSchema[i].ColDefs[a].Name===e&&(r=o.SpSchema[i].ColDefs[a].Id)}),r}getDeletedIndexes(e){let i={};return Object.keys(e.SpSchema).forEach(o=>{let r=e.SpSchema[o],a=e.SrcSchema[o],s=r&&r.Indexes?r.Indexes.map(u=>u.Id):[],c=a&&a.Indexes?a.Indexes?.filter(u=>!s.includes(u.Id)):null;r&&a&&c&&c.length>0&&(i[o]=c)}),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(En))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Hi=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snackbar=i,this.clickEvent=o,this.tableUpdatePubSub=r,this.conversion=a,this.convSubject=new pt({}),this.conversionRateSub=new pt({}),this.typeMapSub=new pt({}),this.defaultTypeMapSub=new pt({}),this.autoGenMapSub=new pt({}),this.summarySub=new pt(new Map),this.ddlSub=new pt({}),this.seqDdlSub=new pt({}),this.tableInterleaveStatusSub=new pt({}),this.sessionsSub=new pt({}),this.configSub=new pt({}),this.currentSessionSub=new pt({}),this.isOfflineSub=new pt(!1),this.ruleMapSub=new pt([]),this.treeUpdatedSub=new qe,this.rule=this.ruleMapSub.asObservable(),this.conv=this.convSubject.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.conversionRate=this.conversionRateSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.typeMap=this.typeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.defaultTypeMap=this.defaultTypeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.autoGenMap=this.autoGenMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.treeUpdate=this.treeUpdatedSub.asObservable(),this.summary=this.summarySub.asObservable(),this.ddl=this.ddlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.seqDdl=this.seqDdlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.tableInterleaveStatus=this.tableInterleaveStatusSub.asObservable(),this.sessions=this.sessionsSub.asObservable(),this.config=this.configSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.isOffline=this.isOfflineSub.asObservable(),this.currentSession=this.currentSessionSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.getLastSessionDetails(),this.getConfig(),this.updateIsOffline()}resetStore(){this.convSubject.next({}),this.conversionRateSub.next({}),this.typeMapSub.next({}),this.defaultTypeMapSub.next({}),this.autoGenMapSub.next({}),this.summarySub.next(new Map),this.ddlSub.next({}),this.tableInterleaveStatusSub.next({})}getDdl(){this.fetch.getDdl().subscribe(e=>{this.ddlSub.next(e)})}getSequenceDdl(){this.fetch.getSequenceDdl().subscribe(e=>{this.seqDdlSub.next(e)})}getAutoGenMap(){this.fetch.getAutoGenMap().subscribe(e=>{this.autoGenMapSub.next(e)})}notifyTreeUpdate(){this.treeUpdatedSub.next()}getSchemaConversionFromDb(){this.fetch.getSchemaConversionFromDirectConnect().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(e.error,"Close")}})}getAllSessions(){this.fetch.getSessions().subscribe({next:e=>{this.sessionsSub.next(e)},error:e=>{this.snackbar.openSnackBar("Unable to fetch sessions.","Close")}})}getLastSessionDetails(){this.fetch.getLastSessionDetails().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.snackbar.openSnackBar(e.error,"Close")}})}getSchemaConversionFromDump(e){return this.fetch.getSchemaConversionFromDump(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(i.error,"Close")}})}getSchemaConversionFromSession(e){return this.fetch.getSchemaConversionFromSessionFile(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}getSchemaConversionFromResumeSession(e){this.fetch.resumeSession(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}getConversionRate(){this.fetch.getConversionRate().subscribe(e=>{this.conversionRateSub.next(e)})}getRateTypemapAndSummary(){return x0({rates:this.fetch.getConversionRate(),typeMap:this.fetch.getTypeMap(),defaultTypeMap:this.fetch.getSpannerDefaultTypeMap(),summary:this.fetch.getSummary(),ddl:this.fetch.getDdl(),seqDdl:this.fetch.getSequenceDdl(),autoGenMap:this.fetch.getAutoGenMap()}).pipe(Li(e=>Ke(e))).subscribe(({rates:e,typeMap:i,defaultTypeMap:o,summary:r,ddl:a,seqDdl:s,autoGenMap:c})=>{this.conversionRateSub.next(e),this.typeMapSub.next(i),this.defaultTypeMapSub.next(o),this.summarySub.next(new Map(Object.entries(r))),this.ddlSub.next(a),this.seqDdlSub.next(s),this.autoGenMapSub.next(c)})}getSummary(){return this.fetch.getSummary().subscribe({next:e=>{this.summarySub.next(new Map(Object.entries(e)))}})}reviewTableUpdate(e,i){return this.fetch.reviewTableUpdate(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>{if(o.error)return o.error;{let r;return this.conversion.standardTypeToPGSQLTypeMap.subscribe(a=>{r=a}),this.conv.subscribe(a=>{o.Changes.forEach(s=>{s.InterleaveColumnChanges.forEach(c=>{if("postgresql"===a.SpDialect){let u=r.get(c.Type),p=r.get(c.UpdateType);c.Type=void 0===u?c.Type:u,c.UpdateType=void 0===p?c.UpdateType:p}In.DataTypes.indexOf(c.Type.toString())>-1&&(c.Type+=this.updateColumnSize(c.Size)),In.DataTypes.indexOf(c.UpdateType.toString())>-1&&(c.UpdateType+=this.updateColumnSize(c.UpdateSize))})})}),this.tableUpdatePubSub.setTableReviewChanges(o),""}}))}updateColumnSize(e){return e===In.StorageMaxLength?"(MAX)":"("+e+")"}updateTable(e,i){return this.fetch.updateTable(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}removeInterleave(e){return this.fetch.removeInterleave(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>(this.getDdl(),i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),""))))}restoreTables(e){return this.fetch.restoreTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables restored successfully","Close",5),"")))}restoreTable(e){return this.fetch.restoreTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table restored successfully","Close",5),"")))}dropTable(e){return this.fetch.dropTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table skipped successfully","Close",5),"")))}dropTables(e){return this.fetch.dropTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables skipped successfully","Close",5),"")))}updatePk(e){return this.fetch.updatePk(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getDdl(),"")))}updateFkNames(e,i){return this.fetch.updateFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}dropFk(e,i){return this.fetch.removeFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}getConfig(){this.fetch.getSpannerConfig().subscribe(e=>{this.configSub.next(e)})}updateConfig(e){this.configSub.next(e)}updateIsOffline(){this.fetch.getIsOffline().subscribe(e=>{this.isOfflineSub.next(e)})}addColumn(e,i){this.fetch.addColumn(e,i).subscribe({next:o=>{this.convSubject.next(o),this.getDdl(),this.snackbar.openSnackBar("Added new column.","Close",5)},error:o=>{this.snackbar.openSnackBar(o.error,"Close")}})}addSequence(e){this.fetch.addSequence(e).subscribe({next:i=>{this.convSubject.next(i),this.getSequenceDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Added new sequence.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}applyRule(e){this.fetch.applyRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Added new rule.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}updateIndex(e,i){return this.fetch.updateIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}updateSequence(e){return this.fetch.updateSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getSequenceDdl(),this.notifyTreeUpdate(),"")))}dropIndex(e,i){return this.fetch.dropIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.getDdl(),this.ruleMapSub.next(o?.Rules),this.snackbar.openSnackBar("Index skipped successfully","Close",5),"")))}dropSequence(e){return this.fetch.dropSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.getDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Sequence Deleted successfully","Close",5),"")))}restoreIndex(e,i){return this.fetch.restoreIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.snackbar.openSnackBar("Index restored successfully","Close",5),"")))}getInterleaveConversionForATable(e){this.fetch.getInterleaveStatus(e).subscribe(i=>{this.tableInterleaveStatusSub.next(i)})}setInterleave(e){this.fetch.setInterleave(e).subscribe(i=>{this.convSubject.next(i.sessionState),this.getDdl(),i.sessionState&&this.convSubject.next(i.sessionState)})}uploadFile(e){return this.fetch.uploadFile(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar("File upload failed","Close"),i.error):(this.snackbar.openSnackBar("File uploaded successfully","Close",5),"")))}dropRule(e){return this.fetch.dropRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Rule deleted successfully","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(nr),X(or),X(Cw),X(pc))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mg=(()=>{class t{constructor(){this.isLoadingSub=new pt(!1),this.isLoading=this.isLoadingSub.asObservable()}startLoader(){this.isLoadingSub.next(!0)}stopLoader(){this.isLoadingSub.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ioe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function noe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function ooe(t,n){1&t&&(d(0,"b"),h(1,"Note: For sharded migrations, please enter below the details of the shard you want Spanner migration tool to read the schema from. The complete connection configuration of all the shards will be taken in later, during data migration."),l())}function roe(t,n){if(1&t&&(d(0,"div",19)(1,"div",20)(2,"mat-form-field",21)(3,"mat-label"),h(4,"Sharded Migration"),l(),d(5,"mat-select",22),y(6,noe,2,2,"mat-option",6),l()(),d(7,"mat-icon",23),h(8,"info"),l(),d(9,"mat-chip",24),h(10," Preview "),l()(),D(11,"br"),y(12,ooe,2,0,"b",25),l()),2&t){const e=C();m(6),f("ngForOf",e.shardedResponseList),m(3),f("removable",!1),m(3),f("ngIf",e.connectForm.value.isSharded)}}function aoe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function soe(t,n){1&t&&(d(0,"mat-icon",26),h(1," check_circle "),l())}let coe=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.fetch=i,this.data=o,this.loader=r,this.snackbarService=a,this.clickEvent=s,this.connectForm=new ti({dbEngine:new U("",[ee.required]),isSharded:new U(!1),hostName:new U("",[ee.required]),port:new U("",[ee.required,ee.pattern("^[0-9]+$")]),userName:new U("",[ee.required]),password:new U(""),dbName:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.isTestConnectionSuccessful=!1,this.connectRequest=null,this.getSchemaRequest=null,this.shardedResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=DN}ngOnInit(){null!=localStorage.getItem(Zr.DirectConnectForm)&&this.connectForm.setValue(JSON.parse(localStorage.getItem(Zr.DirectConnectForm))),null!=localStorage.getItem(Zr.IsConnectionSuccessful)&&(this.isTestConnectionSuccessful="true"===localStorage.getItem(Zr.IsConnectionSuccessful)),this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.connectRequest&&(this.connectRequest.unsubscribe(),this.getSchemaRequest&&this.getSchemaRequest.unsubscribe())}})}testConn(){this.clickEvent.openDatabaseLoader("test-connection",this.connectForm.value.dbName);const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.snackbarService.openSnackBar("SUCCESS! Spanner migration tool was able to successfully ping source database","Close",3),localStorage.setItem(Zr.IsConnectionSuccessful,"true"),this.clickEvent.closeDatabaseLoader()},error:g=>{this.isTestConnectionSuccessful=!1,this.snackbarService.openSnackBar(g.error,"Close"),localStorage.setItem(Zr.IsConnectionSuccessful,"false"),this.clickEvent.closeDatabaseLoader()}})}connectToDb(){this.clickEvent.openDatabaseLoader("direct",this.connectForm.value.dbName),window.scroll(0,0),this.data.resetStore(),localStorage.clear();const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.getSchemaRequest=this.data.getSchemaConversionFromDb(),this.data.conv.subscribe(g=>{localStorage.setItem(Wi.Config,JSON.stringify({dbEngine:e,hostName:o,port:r,userName:a,password:s,dbName:c})),localStorage.setItem(Wi.Type,Jn.DirectConnect),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),localStorage.removeItem(Zr.DirectConnectForm),this.router.navigate(["/workspace"])})},error:g=>{this.snackbarService.openSnackBar(g.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}refreshDbSpecifcConnectionOptions(){this.connectForm.value.isSharded=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(En),_(Hi),_(Mg),_(nr),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-direct-connection"]],decls:54,vars:8,consts:[["id","direct-connection-component",1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup"],[1,"primary-header"],["appearance","outline",1,"full-width"],["formControlName","dbEngine","id","dbengine-input",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["class","shardingConfig",4,"ngIf"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName","id","hostname-input"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port","id","port-input"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName","id","username-input"],["matInput","","name","password","type","password","formControlName","password","id","password-input"],["matInput","","name","dbname","type","text","formControlName","dbName","id","dbname-input"],["matSelect","","name","dialect","formControlName","dialect","appearance","outline","id","spanner-dialect-input"],["class","success","matTooltip","Source Connection Successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","id","test-connect-btn","type","submit","color","accent",3,"disabled","click"],["mat-raised-button","","id","connect-btn","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","",3,"routerLink"],[3,"value"],[1,"shardingConfig"],[1,"flex-container"],["appearance","outline",1,"flex-item"],["formControlName","isSharded"],["matTooltip","Configure multiple source database instances (shards) and consolidate them by migrating to a single Cloud Spanner instance to take advantage of Spanner's horizontal scalability and consistency semantics.",1,"flex-item","configure"],[1,"flex-item","rounded-chip",3,"removable"],[4,"ngIf"],["matTooltip","Source Connection Successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h3",3),h(4,"Connect to Source Database"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),A("selectionChange",function(){return o.refreshDbSpecifcConnectionOptions()}),y(9,ioe,2,2,"mat-option",6),l()(),y(10,roe,13,3,"div",7),D(11,"br"),d(12,"h3",3),h(13,"Connection Detail"),l(),d(14,"mat-form-field",4)(15,"mat-label"),h(16,"Hostname"),l(),D(17,"input",8),l(),d(18,"mat-form-field",4)(19,"mat-label"),h(20,"Port"),l(),D(21,"input",9),d(22,"mat-error"),h(23," Only numbers are allowed. "),l()(),D(24,"br"),d(25,"mat-form-field",4)(26,"mat-label"),h(27,"User name"),l(),D(28,"input",10),l(),d(29,"mat-form-field",4)(30,"mat-label"),h(31,"Password"),l(),D(32,"input",11),l(),D(33,"br"),d(34,"mat-form-field",4)(35,"mat-label"),h(36,"Database Name"),l(),D(37,"input",12),l(),D(38,"br"),d(39,"h3",3),h(40,"Spanner Dialect"),l(),d(41,"mat-form-field",4)(42,"mat-label"),h(43,"Spanner dialect"),l(),d(44,"mat-select",13),y(45,aoe,2,2,"mat-option",6),l()(),D(46,"br"),y(47,soe,2,0,"mat-icon",14),d(48,"button",15),A("click",function(){return o.testConn()}),h(49," Test Connection "),l(),d(50,"button",16),A("click",function(){return o.connectToDb()}),h(51," Connect "),l(),d(52,"button",17),h(53,"Cancel"),l()()()()),2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(),f("ngIf","mysql"===o.connectForm.value.dbEngine),m(35),f("ngForOf",o.dialect),m(2),f("ngIf",o.isTestConnectionSuccessful),m(),f("disabled",!o.connectForm.valid),m(2),f("disabled",!o.connectForm.valid||!o.isTestConnectionSuccessful),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,iC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,uc,vn],styles:[".connect-load-database-container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:0}.configure[_ngcontent-%COMP%]{color:#1967d2}.flex-container[_ngcontent-%COMP%]{display:flex;align-items:center}.flex-item[_ngcontent-%COMP%]{margin-right:8px;align-self:baseline}.rounded-chip[_ngcontent-%COMP%]{background-color:#fff!important;color:#0f33ab!important;border-radius:16px;padding:6px 12px;border:1px solid black;cursor:not-allowed;pointer-events:none}"]})}return t})();function loe(t,n){if(1&t){const e=_e();d(0,"button",7),A("click",function(){return ie(e),ne(C().onConfirm())}),h(1," Continue "),l()}}let Uo=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,void 0===i.title&&(i.title="Update can not be saved")}ngOnInit(){}onConfirm(){this.dialogRef.close(!0)}onDismiss(){this.dialogRef.close(!1)}getIconFromMessageType(){switch(this.data.type){case"warning":return"warning";case"error":return"error";case"success":return"check_circle";default:return"message"}}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-infodialog"]],decls:9,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],["mat-dialog-content",""],[1,"dialog-message",3,"innerHtml"],["mat-dialog-actions","",1,"dialog-action"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","color","primary",3,"click",4,"ngIf"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h1",1),h(2),l(),d(3,"div",2),D(4,"p",3),l(),d(5,"div",4)(6,"button",5),h(7,"CANCEL"),l(),y(8,loe,2,0,"button",6),l()()),2&i&&(m(2),Pe(o.data.title),m(2),f("innerHtml",o.data.message,M1),m(4),f("ngIf","error"!=o.data.type))},dependencies:[It,Yt,zn,tee,So,ko]})}return t})();function ON(t=0,n=Pu){return t<0&&(t=0),Pf(t,t,n)}let doe=(()=>{class t{constructor(e,i){this.fetch=e,this.dialog=i,this.healthCheckSubscription=new de,this.unHealthyCheckCount=0,this.MAX_UNHEALTHY_CHECK_ATTEMPTS=5}startHealthCheck(){this.healthCheckSubscription=ON(5e3).subscribe(()=>{this.checkBackendHealth()})}stopHealthCheck(){this.healthCheckSubscription&&this.healthCheckSubscription.unsubscribe()}checkBackendHealth(){this.checkHealth().subscribe(e=>{e?this.unHealthyCheckCount=0:(this.unHealthyCheckCount==this.MAX_UNHEALTHY_CHECK_ATTEMPTS&&this.openHealthDialog(),this.unHealthyCheckCount++)})}openHealthDialog(){let e=this.dialog.open(Uo,{width:"500px",data:{message:"Please check terminal logs for more details. In case of a crash please file a github issue with all the details.",type:"error",title:"Spanner migration tool unresponsive"}});this.stopHealthCheck(),e.afterClosed().subscribe(()=>{this.startHealthCheck()})}checkHealth(){return Xi(this.fetch.checkBackendHealth()).pipe(nt(()=>!0),Li(()=>Ke(!1)))}ngOnDestroy(){this.stopHealthCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(Hr))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function uoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function hoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function moe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",24)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.sessionName,o)||(r.filterColumnsValue.sessionName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"sessionName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.sessionName)}}function poe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Session Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("sessionName"))}),y(5,uoe,2,0,"mat-icon",22)(6,hoe,2,0,"mat-icon",22),l()(),y(7,moe,4,1,"mat-form-field",23),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.sessionName),m(),f("ngIf",!e.displayFilter.sessionName),m(),f("ngIf",e.displayFilter.sessionName)}}function foe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.SessionName)}}function goe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function _oe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function boe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.editorName,o)||(r.filterColumnsValue.editorName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"editorName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.editorName)}}function voe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Editor"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("editorName"))}),y(5,goe,2,0,"mat-icon",22)(6,_oe,2,0,"mat-icon",22),l()(),y(7,boe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.editorName),m(),f("ngIf",!e.displayFilter.editorName),m(),f("ngIf",e.displayFilter.editorName)}}function yoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.EditorName)}}function Coe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function woe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function xoe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseType,o)||(r.filterColumnsValue.databaseType=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseType"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseType)}}function Doe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Type"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseType"))}),y(5,Coe,2,0,"mat-icon",22)(6,woe,2,0,"mat-icon",22),l()(),y(7,xoe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseType),m(),f("ngIf",!e.displayFilter.databaseType),m(),f("ngIf",e.displayFilter.databaseType)}}function Soe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseType)}}function koe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Moe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Toe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseName,o)||(r.filterColumnsValue.databaseName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseName)}}function Ioe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseName"))}),y(5,koe,2,0,"mat-icon",22)(6,Moe,2,0,"mat-icon",22),l()(),y(7,Toe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseName),m(),f("ngIf",!e.displayFilter.databaseName),m(),f("ngIf",e.displayFilter.databaseName)}}function Eoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseName)}}function Ooe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Aoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Poe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.dialect,o)||(r.filterColumnsValue.dialect=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"dialect"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.dialect)}}function Roe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Spanner Dialect"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("dialect"))}),y(5,Ooe,2,0,"mat-icon",22)(6,Aoe,2,0,"mat-icon",22),l()(),y(7,Poe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.dialect),m(),f("ngIf",!e.displayFilter.dialect),m(),f("ngIf",e.displayFilter.dialect)}}function Noe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Dialect)}}function Foe(t,n){1&t&&(d(0,"th",19),h(1,"Notes"),l())}function Loe(t,n){if(1&t){const e=_e();d(0,"button",34),A("click",function(){ie(e);const o=C(2).index,r=C(2);return ne(r.notesToggle[o]=!r.notesToggle[o])}),h(1," ... "),l()}}function Boe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e)}}function Voe(t,n){if(1&t&&(d(0,"div"),y(1,Boe,2,1,"p",35),l()),2&t){const e=C(2).$implicit;m(),f("ngForOf",e.Notes)}}function joe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),Pe(null==e.Notes||null==e.Notes[0]?null:e.Notes[0].substring(0,20))}}function zoe(t,n){if(1&t&&(d(0,"div",30),y(1,Loe,2,0,"button",31)(2,Voe,2,1,"div",32)(3,joe,2,1,"ng-template",null,33,br),l()),2&t){const e=Ft(4),i=C(),o=i.$implicit,r=i.index,a=C(2);m(),f("ngIf",(null==o.Notes?null:o.Notes.length)>1||(null==o.Notes[0]?null:o.Notes[0].length)>20),m(),f("ngIf",a.notesToggle[r])("ngIfElse",e)}}function Hoe(t,n){if(1&t&&(d(0,"td",26),y(1,zoe,5,3,"div",29),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.Notes)}}function Uoe(t,n){1&t&&(d(0,"th",19),h(1,"Created At"),l())}function $oe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit,i=C(2);m(),Pe(i.convertDateTime(e.CreateTimestamp))}}function Goe(t,n){1&t&&D(0,"th",19)}function qoe(t,n){if(1&t){const e=_e();d(0,"td",26)(1,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).resumeFromSessionFile(r.VersionId))}),h(2," Resume "),l(),d(3,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).downloadSessionFile(r.VersionId,r.SessionName,r.DatabaseType,r.DatabaseName))}),h(4," Download "),l()()}}function Woe(t,n){1&t&&D(0,"tr",37)}function Koe(t,n){1&t&&D(0,"tr",38)}function Zoe(t,n){if(1&t&&(d(0,"div",5)(1,"table",6),me(2,7),y(3,poe,8,3,"th",8)(4,foe,2,1,"td",9),pe(),me(5,10),y(6,voe,8,3,"th",8)(7,yoe,2,1,"td",9),pe(),me(8,11),y(9,Doe,8,3,"th",8)(10,Soe,2,1,"td",9),pe(),me(11,12),y(12,Ioe,8,3,"th",8)(13,Eoe,2,1,"td",9),pe(),me(14,13),y(15,Roe,8,3,"th",8)(16,Noe,2,1,"td",9),pe(),me(17,14),y(18,Foe,2,0,"th",8)(19,Hoe,2,1,"td",9),pe(),me(20,15),y(21,Uoe,2,0,"th",8)(22,$oe,2,1,"td",9),pe(),me(23,16),y(24,Goe,1,0,"th",8)(25,qoe,5,0,"td",9),pe(),y(26,Woe,1,0,"tr",17)(27,Koe,1,0,"tr",18),l()()),2&t){const e=C();m(),f("dataSource",e.filteredDataSource),m(25),f("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",!0),m(),f("matRowDefColumns",e.displayedColumns)}}function Yoe(t,n){if(1&t){const e=_e();d(0,"div",39),ei(),d(1,"svg",40),D(2,"rect",41)(3,"path",42),l(),pr(),d(4,"button",43),A("click",function(){return ie(e),ne(C().openSpannerConfigDialog())}),h(5," Configure Spanner Details "),l(),d(6,"span"),h(7,"Do not have any previous session to display. "),d(8,"u"),h(9," OR "),l(),D(10,"br"),h(11," Invalid Spanner configuration. "),l()()}}let Qoe=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.router=o,this.clickEvent=r,this.displayedColumns=["SessionName","EditorName","DatabaseType","DatabaseName","Dialect","Notes","CreateTimestamp","Action"],this.notesToggle=[],this.dataSource=[],this.filteredDataSource=[],this.filterColumnsValue={sessionName:"",editorName:"",databaseType:"",databaseName:"",dialect:""},this.displayFilter={sessionName:!1,editorName:!1,databaseType:!1,databaseName:!1,dialect:!1}}ngOnInit(){this.data.getAllSessions(),this.data.sessions.subscribe({next:e=>{null!=e?(this.filteredDataSource=e,this.dataSource=e):(this.filteredDataSource=[],this.dataSource=[])}})}toggleFilterDisplay(e){this.displayFilter[e]=!this.displayFilter[e]}updateFilterValue(e,i){e.stopPropagation(),this.filterColumnsValue[i]=e.target.value,this.applyFilter()}applyFilter(){this.filteredDataSource=this.dataSource.filter(e=>!!e.SessionName.toLowerCase().includes(this.filterColumnsValue.sessionName.toLowerCase())).filter(e=>!!e.EditorName.toLowerCase().includes(this.filterColumnsValue.editorName.toLowerCase())).filter(e=>!!e.DatabaseType.toLowerCase().includes(this.filterColumnsValue.databaseType.toLowerCase())).filter(e=>!!e.DatabaseName.toLowerCase().includes(this.filterColumnsValue.databaseName.toLowerCase())).filter(e=>!!e.Dialect.toLowerCase().includes(this.filterColumnsValue.dialect.toLowerCase()))}downloadSessionFile(e,i,o,r){this.fetch.getConvForSession(e).subscribe(a=>{var s=document.createElement("a");s.href=URL.createObjectURL(a),s.download=`${i}_${o}_${r}.json`,s.click()})}resumeFromSessionFile(e){this.data.resetStore(),this.data.getSchemaConversionFromResumeSession(e),this.data.conv.subscribe(i=>{localStorage.setItem(Wi.Config,e),localStorage.setItem(Wi.Type,Jn.ResumeSession),this.router.navigate(["/workspace"])})}openSpannerConfigDialog(){this.clickEvent.openSpannerConfig()}convertDateTime(e){return(e=(e=new Date(e).toString()).substring(e.indexOf(" ")+1)).substring(0,e.indexOf("("))}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-session-listing"]],decls:8,vars:2,consts:[[1,"sessions-wrapper"],[1,"primary-header"],[1,"summary"],["class","session-container mat-elevation-z3",4,"ngIf"],["class","mat-elevation-z3 warning-container",4,"ngIf"],[1,"session-container","mat-elevation-z3"],["mat-table","",3,"dataSource"],["matColumnDef","SessionName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","EditorName"],["matColumnDef","DatabaseType"],["matColumnDef","DatabaseName"],["matColumnDef","Dialect"],["matColumnDef","Notes"],["matColumnDef","CreateTimestamp"],["matColumnDef","Action"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[1,"table-header-container"],["mat-icon-button","",3,"click"],[4,"ngIf"],["appearance","outline","class","full-width",4,"ngIf"],["appearance","outline",1,"full-width"],["matInput","","autocomplete","off",3,"ngModel","ngModelChange","keyup"],["mat-cell",""],["appearance","outline",4,"ngIf"],["appearance","outline"],["class","notes-wrapper",4,"ngIf"],[1,"notes-wrapper"],["class","notes-toggle-button",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["short",""],[1,"notes-toggle-button",3,"click"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],["mat-header-row",""],["mat-row",""],[1,"mat-elevation-z3","warning-container"],["width","49","height","48","viewBox","0 0 49 48","fill","none","xmlns","http://www.w3.org/2000/svg"],["x","0.907227","width","48","height","48","rx","4","fill","#E6ECFA"],["fill-rule","evenodd","clip-rule","evenodd","d","M17.9072 15C16.8027 15 15.9072 15.8954 15.9072 17V31C15.9072 32.1046 16.8027 33 17.9072 33H31.9072C33.0118 33 33.9072 32.1046 33.9072 31V17C33.9072 15.8954 33.0118 15 31.9072 15H17.9072ZM20.9072 18H18.9072V20H20.9072V18ZM21.9072 18H23.9072V20H21.9072V18ZM20.9072 23H18.9072V25H20.9072V23ZM21.9072 23H23.9072V25H21.9072V23ZM20.9072 28H18.9072V30H20.9072V28ZM21.9072 28H23.9072V30H21.9072V28ZM30.9072 18H24.9072V20H30.9072V18ZM24.9072 23H30.9072V25H24.9072V23ZM30.9072 28H24.9072V30H30.9072V28Z","fill","#3367D6"],["mat-button","","color","primary",1,"spanner-config-button",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Session history"),l(),d(3,"div",2),h(4," Choose a session to resume an existing migration session, or download the session file. "),l(),D(5,"br"),y(6,Zoe,28,4,"div",3)(7,Yoe,12,0,"div",4),l()),2&i&&(m(6),f("ngIf",o.dataSource.length>0),m(),f("ngIf",0===o.dataSource.length))},dependencies:[rn,It,Yt,ba,Mi,Di,xi,qi,Ci,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,Nl],styles:[".session-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.session-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .table-header-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.sessions-wrapper[_ngcontent-%COMP%]{margin-top:20px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:57vh;text-align:center}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-bottom:10px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] .spanner-config-button[_ngcontent-%COMP%]{text-decoration:underline}.mat-mdc-column-Notes[_ngcontent-%COMP%]{max-width:200px;padding-right:10px}.notes-toggle-button[_ngcontent-%COMP%]{float:right;margin-right:32px;background-color:#f5f5f5;border:none;border-radius:2px;padding:0 5px 5px}.notes-toggle-button[_ngcontent-%COMP%]:hover{background-color:#ebe7e7;cursor:pointer}.notes-wrapper[_ngcontent-%COMP%]{margin-top:10px}.mat-mdc-column-SessionName[_ngcontent-%COMP%], .mat-mdc-column-EditorName[_ngcontent-%COMP%], .mat-mdc-column-DatabaseType[_ngcontent-%COMP%], .mat-mdc-column-DatabaseName[_ngcontent-%COMP%], .mat-mdc-column-Dialect[_ngcontent-%COMP%]{width:13vw;min-width:150px}.mat-mdc-column-Action[_ngcontent-%COMP%], .mat-mdc-column-Notes[_ngcontent-%COMP%], .mat-mdc-column-CreateTimestamp[_ngcontent-%COMP%]{width:15vw;min-width:150px}.mat-mdc-form-field[_ngcontent-%COMP%]{width:80%}"]})}return t})(),Xoe=(()=>{class t{constructor(e,i,o){this.dialog=e,this.router=i,this.healthCheckService=o}ngOnInit(){this.healthCheckService.startHealthCheck(),null!=localStorage.getItem(he.IsMigrationInProgress)&&"true"===localStorage.getItem(he.IsMigrationInProgress)&&(this.dialog.open(Uo,{data:{title:"Redirecting to prepare migration page",message:"Another migration already in progress",type:"error"},maxWidth:"500px"}),this.router.navigate(["/prepare-migration"]))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(Rn),_(doe))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-home"]],decls:21,vars:4,consts:[[1,"container"],[1,"primary-header"],[1,"summary","global-font-color","body-font-size"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool#readme","target","_blank"],[1,"btn-source-select"],["mat-raised-button","","color","primary","id","connect-to-database-btn",1,"split-button-left",3,"routerLink"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"routerLink"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Get started with Spanner migration tool"),l(),d(3,"div",2),h(4," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation and migration, using data from an existing PostgreSQL, MySQL, SQL Server, Oracle or DynamoDB database. "),d(5,"a",3),h(6,"Learn More"),l(),h(7,". "),l(),d(8,"div",4)(9,"button",5),h(10," Connect to database "),l(),d(11,"button",6)(12,"mat-icon",7),h(13,"expand_more"),l()(),d(14,"mat-menu",8,9)(16,"button",10),h(17,"Load database dump"),l(),d(18,"button",10),h(19,"Load session file"),l()()(),D(20,"app-session-listing"),l()),2&i){const r=Ft(15);m(9),f("routerLink","/source/direct-connection"),m(2),f("matMenuTriggerFor",r),m(5),f("routerLink","/source/load-dump"),m(2),f("routerLink","/source/load-session")}},dependencies:[qr,Yt,Mi,jl,wa,zl,Qoe],styles:[".container[_ngcontent-%COMP%]{padding:7px 27px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{width:500px;font-weight:lighter}.container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 5px}.container[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-color:#fff;margin-bottom:20px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{margin:20px 0;padding-bottom:5px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}"]})}return t})(),eo=(()=>{class t{constructor(){this.sidenavOpenSub=new pt(!1),this.sidenavComponentSub=new pt(""),this.sidenavRuleTypeSub=new pt(""),this.sidenavAddIndexTableSub=new pt(""),this.setSidenavDatabaseNameSub=new pt(""),this.ruleDataSub=new pt({}),this.displayRuleFlagSub=new pt(!1),this.setMiddleColumn=new pt(!1),this.isSidenav=this.sidenavOpenSub.asObservable(),this.sidenavComponent=this.sidenavComponentSub.asObservable(),this.sidenavRuleType=this.sidenavRuleTypeSub.asObservable(),this.sidenavAddIndexTable=this.sidenavAddIndexTableSub.asObservable(),this.sidenavDatabaseName=this.setSidenavDatabaseNameSub.asObservable(),this.ruleData=this.ruleDataSub.asObservable(),this.displayRuleFlag=this.displayRuleFlagSub.asObservable(),this.setMiddleColumnComponent=this.setMiddleColumn.asObservable()}openSidenav(){this.sidenavOpenSub.next(!0)}closeSidenav(){this.sidenavOpenSub.next(!1)}setSidenavComponent(e){this.sidenavComponentSub.next(e)}setSidenavRuleType(e){this.sidenavRuleTypeSub.next(e)}setSidenavAddIndexTable(e){this.sidenavAddIndexTableSub.next(e)}setSidenavDatabaseName(e){this.setSidenavDatabaseNameSub.next(e)}setRuleData(e){this.ruleDataSub.next(e)}setDisplayRuleFlag(e){this.displayRuleFlagSub.next(e)}setMiddleColComponent(e){this.setMiddleColumn.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),AN=(()=>{class t{constructor(e){this.sidenav=e}ngOnInit(){}closeInstructionSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-instruction"]],decls:150,vars:0,consts:[[1,"instructions-div"],[1,"instruction-header-div"],["mat-icon-button","",3,"click"],["src","../../../assets/icons/google-spanner-logo.png",1,"instructions-icon"],[1,"textCenter"],[1,"instructions-main-heading"],[1,"instructions-sub-heading"],[1,"instructions-command"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool",1,"instructionsLink"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"button",2),A("click",function(){return o.closeInstructionSidenav()}),d(3,"mat-icon"),h(4,"close"),l()()(),D(5,"img",3),d(6,"h1",4),h(7,"Spanner migration tool User Manual"),l(),D(8,"br")(9,"br"),d(10,"h3",5),h(11,"1 \xa0 \xa0 \xa0Introduction"),l(),d(12,"p"),h(13," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation, using data from an existing PostgreSQL or MySQL database. The tool ingests schema and data from either a pg_dump/mysqldump file or directly from the source database, automatically builds a Spanner schema, and creates a new Spanner database populated with data from the source database. "),D(14,"br")(15,"br")(16,"br"),h(17," Spanner migration tool is designed to simplify Spanner evaluation, and in particular to bootstrap the process by getting moderate-size PostgreSQL/MySQL datasets into Spanner (up to a few tens of GB). Many features of PostgreSQL/MySQL, especially those that don't map directly to Spanner features, are ignored, e.g. (non-primary) indexes, functions, and sequences. Types such as integers, floats, char/text, bools, timestamps, and (some) array types, map fairly directly to Spanner, but many other types do not and instead are mapped to Spanner's STRING(MAX). "),l(),D(18,"br"),d(19,"h4",6),h(20,"1.1 \xa0 \xa0 \xa0Spanner migration tool UI"),l(),d(21,"p"),h(22," Spanner migration tool UI is designed to focus on generating spanner schema from either a pg_dump/mysqldump file or directly from the source database and providing edit functionality to the spanner schema and thereby creating a new spanner database populated with new data. UI gives the provision to edit column name, edit data type, edit constraints, drop foreign key and drop secondary index of spanner schema. "),l(),D(23,"br"),d(24,"h3",5),h(25,"2 \xa0 \xa0 \xa0Key Features of UI"),l(),d(26,"ul")(27,"li"),h(28,"Connecting to a new database"),l(),d(29,"li"),h(30,"Load dump file"),l(),d(31,"li"),h(32,"Load session file"),l(),d(33,"li"),h(34,"Storing session for each conversion"),l(),d(35,"li"),h(36,"Edit data type globally for each table in schema"),l(),d(37,"li"),h(38,"Edit data type, column name, constraint for a particular table"),l(),d(39,"li"),h(40,"Edit foreign key and secondary index name"),l(),d(41,"li"),h(42,"Drop a column from a table"),l(),d(43,"li"),h(44,"Drop foreign key from a table"),l(),d(45,"li"),h(46,"Drop secondary index from a table"),l(),d(47,"li"),h(48,"Convert foreign key into interleave table"),l(),d(49,"li"),h(50,"Search a table"),l(),d(51,"li"),h(52,"Download schema, report and session files"),l()(),D(53,"br"),d(54,"h3",5),h(55,"3 \xa0 \xa0 \xa0UI Setup"),l(),d(56,"ul")(57,"li"),h(58,"Install go in local"),l(),d(59,"li"),h(60," Clone Spanner migration tool project and run following command in the terminal: "),D(61,"br"),d(62,"span",7),h(63,"go run main.go --web"),l()(),d(64,"li"),h(65,"Open "),d(66,"span",7),h(67,"http://localhost:8080"),l(),h(68,"in browser"),l()(),D(69,"br"),d(70,"h3",5),h(71," 4 \xa0 \xa0 \xa0Different modes to select source database "),l(),d(72,"h4",6),h(73,"4.1 \xa0 \xa0 \xa0Connect to Database"),l(),d(74,"ul")(75,"li"),h(76,"Enter database details in connect to database dialog box"),l(),d(77,"li"),h(78," Input Fields: database type, database host, database port, database user, database name, database password "),l()(),d(79,"h4",6),h(80,"4.2 \xa0 \xa0 \xa0Load Database Dump"),l(),d(81,"ul")(82,"li"),h(83,"Enter dump file path in load database dialog box"),l(),d(84,"li"),h(85,"Input Fields: database type, file path"),l()(),d(86,"h4",6),h(87,"4.3 \xa0 \xa0 \xa0Import Schema File"),l(),d(88,"ul")(89,"li"),h(90,"Enter session file path in load session dialog box"),l(),d(91,"li"),h(92,"Input Fields: database type, session file path"),l()(),d(93,"h3",5),h(94,"5 \xa0 \xa0 \xa0Session Table"),l(),d(95,"ul")(96,"li"),h(97,"Session table is used to store the previous sessions of schema conversion"),l()(),d(98,"h3",5),h(99,"6 \xa0 \xa0 \xa0Edit Global Data Type"),l(),d(100,"ul")(101,"li"),h(102,"Click on edit global data type button on the screen"),l(),d(103,"li"),h(104,"Select required spanner data type from the dropdown available for each source data type"),l(),d(105,"li"),h(106,"Click on next button after making all the changes"),l()(),d(107,"h3",5),h(108," 7 \xa0 \xa0 \xa0Edit Spanner Schema for a particular table "),l(),d(109,"ul")(110,"li"),h(111,"Expand any table"),l(),d(112,"li"),h(113,"Click on edit spanner schema button"),l(),d(114,"li"),h(115,"Edit column name/ data type/ constraint of spanner schema"),l(),d(116,"li"),h(117,"Edit name of secondary index or foreign key"),l(),d(118,"li"),h(119,"Select to convert foreign key to interleave or use as is (if option is available)"),l(),d(120,"li"),h(121,"Drop a column by unselecting any checkbox"),l(),d(122,"li"),h(123," Drop a foreign key or secondary index by expanding foreign keys or secondary indexes tab inside table "),l(),d(124,"li"),h(125,"Click on save changes button to save the changes"),l(),d(126,"li"),h(127," If current table is involved in foreign key/secondary indexes relationship with other table then user will be prompt to delete foreign key or secondary indexes and then proceed with save changes "),l()(),d(128,"p"),h(129,"- Warning before deleting secondary index from a table"),l(),d(130,"p"),h(131,"- Error on saving changes"),l(),d(132,"p"),h(133,"- Changes saved successfully after resolving all errors"),l(),d(134,"h3",5),h(135,"8 \xa0 \xa0 \xa0Download Session File"),l(),d(136,"ul")(137,"li"),h(138,"Save all the changes done in spanner schema table wise or globally"),l(),d(139,"li"),h(140,"Click on download session file button on the top right corner"),l(),d(141,"li"),h(142,"Save the generated session file with all the changes in local machine"),l()(),d(143,"h3",5),h(144,"9 \xa0 \xa0 \xa0How to use Session File"),l(),d(145,"p"),h(146," Please refer below link to get more information on how to use session file with Spanner migration tool "),l(),d(147,"a",8),h(148,"Refer this to use Session File"),l(),D(149,"br"),l())},dependencies:[ba,Mi],styles:[".instructions-div[_ngcontent-%COMP%]{padding:5px 20px 20px}.instructions-div[_ngcontent-%COMP%] .instruction-header-div[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.instructions-icon[_ngcontent-%COMP%]{height:200px;display:block;margin-left:auto;margin-right:auto}.textCenter[_ngcontent-%COMP%]{text-align:center}.instructions-main-heading[_ngcontent-%COMP%]{font-size:1.25rem;color:#4285f4;font-weight:700}.instructions-sub-heading[_ngcontent-%COMP%]{font-size:1rem;color:#4285f4;font-weight:700}.instructions-command[_ngcontent-%COMP%]{background-color:#8080806b;border-radius:5px;padding:0 5px}.instructions-img-width[_ngcontent-%COMP%]{width:800px}.instructionsLink[_ngcontent-%COMP%]{color:#4285f4;text-decoration:underline}"]})}return t})();const Joe=["determinateSpinner"];function ere(t,n){if(1&t&&(ei(),d(0,"svg",11),D(1,"circle",12),l()),2&t){const e=C();Xe("viewBox",e._viewBox()),m(),Sn("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Xe("r",e._circleRadius())}}const tre=is(class{constructor(t){this._elementRef=t}},"primary"),ire=new se("mat-progress-spinner-default-options",{providedIn:"root",factory:function nre(){return{diameter:PN}}}),PN=100;let sd=(()=>{class t extends tre{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=PN,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,yi(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=yi(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=yi(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ui,8),_(ire))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&vt(Joe,5),2&i){let r;Oe(r=Ae())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(i,o){2&i&&(Xe("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Sn("width",o.diameter,"px")("height",o.diameter,"px")("--mdc-circular-progress-size",o.diameter+"px")("--mdc-circular-progress-active-indicator-width",o.diameter+"px"),et("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[ve],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,o){if(1&i&&(y(0,ere,2,8,"ng-template",null,0,br),d(2,"div",1,2),ei(),d(4,"svg",3),D(5,"circle",4),l()(),pr(),d(6,"div",5)(7,"div",6)(8,"div",7),ro(9,8),l(),d(10,"div",9),ro(11,8),l(),d(12,"div",10),ro(13,8),l()()()),2&i){const r=Ft(1);m(4),Xe("viewBox",o._viewBox()),m(),Sn("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Xe("r",o._circleRadius()),m(4),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r)}},dependencies:[kp],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}return t})(),rre=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt]})}return t})();function are(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function sre(t,n){1&t&&D(0,"mat-spinner",18),2&t&&f("diameter",25)}function cre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"check_circle"),l())}function lre(t,n){1&t&&(d(0,"mat-icon",20),h(1,"cancel"),l())}function dre(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let ure=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysqldump",[ee.required]),filePath:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysqldump",displayName:"MySQL"},{value:"pg_dump",displayName:"PostgreSQL"}],this.dialect=DN,this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromDump(){this.clickEvent.openDatabaseLoader("dump",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i,dialect:o}=this.connectForm.value,s={Config:{Driver:e,Path:i},SpannerDetails:{Dialect:o}};this.getSchemaRequest=this.data.getSchemaConversionFromDump(s),this.data.conv.subscribe(c=>{localStorage.setItem(Wi.Config,JSON.stringify(s)),localStorage.setItem(Wi.Type,Jn.DumpFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-dump"]],decls:36,vars:8,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["matSelect","","name","dialect","formControlName","dialect","appearance","outline"],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromDump()}),d(3,"h3",3),h(4,"Load from database dump"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,are,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Dump File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,sre,1,1,"mat-spinner",8)(17,cre,2,0,"mat-icon",9)(18,lre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"h3",3),h(25,"Spanner Dialect"),l(),d(26,"mat-form-field",4)(27,"mat-label"),h(28,"Select a spanner dialect"),l(),d(29,"mat-select",14),y(30,dre,2,2,"mat-option",6),l()(),D(31,"br"),d(32,"button",15),h(33," Convert "),l(),d(34,"button",16),h(35,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(12),f("ngForOf",o.dialect),m(2),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function hre(t,n){if(1&t&&(d(0,"mat-option",16),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function mre(t,n){1&t&&D(0,"mat-spinner",17),2&t&&f("diameter",25)}function pre(t,n){1&t&&(d(0,"mat-icon",18),h(1,"check_circle"),l())}function fre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"cancel"),l())}let gre=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysql",[ee.required]),filePath:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromSessionFile(){this.clickEvent.openDatabaseLoader("session",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i}=this.connectForm.value,o={driver:e,filePath:i};this.getSchemaRequest=this.data.getSchemaConversionFromSession(o),this.data.conv.subscribe(r=>{localStorage.setItem(Wi.Config,JSON.stringify(o)),localStorage.setItem(Wi.Type,Jn.SessionFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-session"]],decls:28,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromSessionFile()}),d(3,"h3",3),h(4,"Load from session"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,hre,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Session File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,mre,1,1,"mat-spinner",8)(17,pre,2,0,"mat-icon",9)(18,fre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"button",14),h(25," Convert "),l(),d(26,"button",15),h(27,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(6),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function _re(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Reading schema for ",e.databaseName," database. Please wait...")}}function bre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool will read the information schema at source and automatically map it to Cloud Spanner"),l())}function vre(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Testing connection to ",e.databaseName," database...")}}function yre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool is attempting to ping the source database, it will retry a couple of times before timing out."),l())}function Cre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the dump file..."),l())}function wre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the session file..."),l())}let xre=(()=>{class t{constructor(e,i){this.router=e,this.clickEvent=i,this.loaderType="",this.databaseName="",this.timeElapsed=0,this.timeElapsedInterval=setInterval(()=>{this.timeElapsed+=1},1e3)}ngOnInit(){this.timeElapsed=0}ngOnDestroy(){clearInterval(this.timeElapsedInterval)}cancelDbLoad(){this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/"])}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-database-loader"]],inputs:{loaderType:"loaderType",databaseName:"databaseName"},decls:12,vars:7,consts:[[1,"container","content-height"],["src","../../../assets/gifs/database-loader.gif","alt","database-loader-gif",1,"loader-gif"],[4,"ngIf"],["mat-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"img",1),y(2,_re,2,1,"h3",2)(3,bre,2,0,"h4",2)(4,vre,2,1,"h3",2)(5,yre,2,0,"h4",2)(6,Cre,2,0,"h3",2)(7,wre,2,0,"h3",2),d(8,"h5"),h(9),l(),d(10,"button",3),A("click",function(){return o.cancelDbLoad()}),h(11,"Cancel"),l()()),2&i&&(m(2),f("ngIf","direct"===o.loaderType),m(),f("ngIf","direct"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","dump"===o.loaderType),m(),f("ngIf","session"===o.loaderType),m(2),xe("",o.timeElapsed," seconds have elapsed"))},dependencies:[It,Yt],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .loader-gif[_ngcontent-%COMP%]{width:10rem;height:10rem}"]})}return t})();function Dre(t,n){1&t&&(d(0,"div"),D(1,"router-outlet"),l())}function Sre(t,n){if(1&t&&(d(0,"div"),D(1,"app-database-loader",1),l()),2&t){const e=C();m(),f("loaderType",e.loaderType)("databaseName",e.databaseName)}}let kre=(()=>{class t{constructor(e){this.clickevent=e,this.isDatabaseLoading=!1,this.loaderType="",this.databaseName=""}ngOnInit(){this.clickevent.databaseLoader.subscribe(e=>{this.loaderType=e.type,this.databaseName=e.databaseName,this.isDatabaseLoading=""!==this.loaderType})}static#e=this.\u0275fac=function(i){return new(i||t)(_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-selection"]],decls:2,vars:2,consts:[[4,"ngIf"],[3,"loaderType","databaseName"]],template:function(i,o){1&i&&y(0,Dre,2,0,"div",0)(1,Sre,2,2,"div",0),2&i&&(f("ngIf",!o.isDatabaseLoading),m(),f("ngIf",o.isDatabaseLoading))},dependencies:[It,Cg,xre],styles:[".mat-card-class[_ngcontent-%COMP%]{padding:0 20px}"]})}return t})();var RN=Re(304);function Mre(t,n){if(1&t){const e=_e();d(0,"mat-chip-row",16),A("removed",function(){const r=ie(e).$implicit;return ne(C().removeFilter(r))}),h(1),d(2,"button",17)(3,"mat-icon"),h(4,"cancel"),l()()()}if(2&t){const e=n.$implicit;m(),xe(" ",e," ")}}function Tre(t,n){if(1&t){const e=_e();d(0,"mat-option",18),A("click",function(){const r=ie(e).$implicit;return ne(C().addFilter(r))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function Ire(t,n){1&t&&(d(0,"mat-icon",31),h(1," error "),l())}function Ere(t,n){1&t&&(d(0,"mat-icon",32),h(1," warning "),l())}function Ore(t,n){1&t&&(d(0,"mat-icon",33),h(1," wb_incandescent "),l())}function Are(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function Pre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as read"),l()()}}function Rre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as unread"),l()()}}function Nre(t,n){if(1&t&&(d(0,"section",21)(1,"div",2)(2,"div",3),y(3,Ire,2,0,"mat-icon",22)(4,Ere,2,0,"mat-icon",23)(5,Ore,2,0,"mat-icon",24)(6,Are,2,0,"mat-icon",25),l(),d(7,"div",26),h(8),l(),d(9,"div",6)(10,"mat-icon",27),h(11,"more_vert"),l(),d(12,"mat-menu",28,29),y(14,Pre,3,0,"button",30)(15,Rre,3,0,"button",30),l()()()()),2&t){const e=n.$implicit,i=Ft(13);m(3),f("ngIf","error"==e.type),m(),f("ngIf","warning"==e.type),m(),f("ngIf","suggestion"==e.type),m(),f("ngIf","note"==e.type),m(2),Pe(e.content),m(2),f("matMenuTriggerFor",i),m(4),f("ngIf",!e.isRead),m(),f("ngIf",e.isRead)}}function Fre(t,n){if(1&t&&(d(0,"div",19),y(1,Nre,16,8,"section",20),l()),2&t){const e=C();m(),f("ngForOf",e.filteredSummaryRows)}}function Lre(t,n){1&t&&(d(0,"div",36)(1,"div",37),ei(),d(2,"svg",38),D(3,"path",39),l()(),pr(),d(4,"div",40),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l()())}let Bre=(()=>{class t{constructor(e,i){this.data=e,this.clickEvent=i,this.changeIssuesLabel=new Ne,this.summaryRows=[],this.summary=new Map,this.filteredSummaryRows=[],this.separatorKeysCodes=[],this.summaryCount=0,this.totalNoteCount=0,this.totalWarningCount=0,this.totalSuggestionCount=0,this.totalErrorCount=0,this.filterInput=new U,this.options=["read","unread","warning","suggestion","note","error"],this.obsFilteredOptions=new li,this.searchFilters=["unread","warning","note","suggestion","error"],this.currentObject=null}ngOnInit(){this.data.summary.subscribe({next:e=>{if(this.summary=e,this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.initialiseSummaryCollectionForAllTables(this.summary),this.summaryCount=this.totalNoteCount+this.totalErrorCount+this.totalSuggestionCount+this.totalWarningCount,this.changeIssuesLabel.emit(this.summaryCount)}}),this.registerAutoCompleteChange()}initialiseSummaryCollectionForAllTables(e){this.summaryRows=[],this.totalErrorCount=0,this.totalNoteCount=0,this.totalSuggestionCount=0,this.totalWarningCount=0;for(const i of e.values())this.initiateSummaryCollection(i);this.applyFilters()}ngOnChanges(e){if(this.currentObject=e?.currentObject?.currentValue||this.currentObject,this.summaryRows=[],this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.summaryCount=0,this.changeIssuesLabel.emit(0)}initiateSummaryCollection(e){this.totalErrorCount+=e.ErrorsCount,this.totalNoteCount+=e.NotesCount,this.totalWarningCount+=e.WarningsCount,this.totalSuggestionCount+=e.SuggestionsCount,e.Errors.forEach(i=>{this.summaryRows.push({type:"error",content:i.description,isRead:!1})}),e.Warnings.forEach(i=>{this.summaryRows.push({type:"warning",content:i.description,isRead:!1})}),e.Suggestions.forEach(i=>{this.summaryRows.push({type:"suggestion",content:i.description,isRead:!1})}),e.Notes.forEach(i=>{this.summaryRows.push({type:"note",content:i.description,isRead:!1})})}applyFilters(){let e=[],i=[];this.searchFilters.includes("read")&&i.push(o=>o.isRead),this.searchFilters.includes("unread")&&i.push(o=>!o.isRead),this.searchFilters.includes("warning")&&e.push(o=>"warning"==o.type),this.searchFilters.includes("note")&&e.push(o=>"note"==o.type),this.searchFilters.includes("suggestion")&&e.push(o=>"suggestion"==o.type),this.searchFilters.includes("error")&&e.push(o=>"error"==o.type),this.filteredSummaryRows=this.summaryRows.filter(o=>(!i.length||i.some(r=>r(o)))&&(!e.length||e.some(r=>r(o))))}addFilter(e){e&&!this.searchFilters.includes(e)&&this.searchFilters.push(e),this.applyFilters(),this.registerAutoCompleteChange()}removeFilter(e){const i=this.searchFilters.indexOf(e);i>=0&&this.searchFilters.splice(i,1),this.applyFilters()}toggleRead(e){e.isRead=!e.isRead,this.applyFilters()}registerAutoCompleteChange(){this.obsFilteredOptions=this.filterInput.valueChanges.pipe(an(""),nt(e=>this.autoCompleteOnChangeFilter(e)))}autoCompleteOnChangeFilter(e){return this.options.filter(i=>i.toLowerCase().includes(e))}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-summary"]],inputs:{currentObject:"currentObject"},outputs:{changeIssuesLabel:"changeIssuesLabel"},features:[fi],decls:29,vars:11,consts:[[1,"container"],[1,"filter"],[1,"columns"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],[1,"chip-list"],["chipGrid",""],["class","primary",3,"removed",4,"ngFor","ngForOf"],["placeholder","New Filter...",3,"formControl","matChipInputFor","matChipInputSeparatorKeyCodes","matChipInputAddOnBlur","matAutocomplete"],["auto","matAutocomplete"],[3,"value","click",4,"ngFor","ngForOf"],[1,"header"],["class","content",4,"ngIf"],["class","no-issue-container",4,"ngIf"],[1,"primary",3,"removed"],["matChipRemove",""],[3,"value","click"],[1,"content"],["class","summary-row",4,"ngFor","ngForOf"],[1,"summary-row"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above","class","danger",4,"ngIf"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above","class","warning",4,"ngIf"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above","class","suggestion",4,"ngIf"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above","class","success",4,"ngIf"],[1,"middle"],[3,"matMenuTriggerFor"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click",4,"ngIf"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above",1,"success"],["mat-menu-item","",3,"click"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div")(2,"div",1)(3,"div",2)(4,"div",3)(5,"span",4),h(6,"filter_list"),l(),d(7,"span",5),h(8,"Filter"),l()(),d(9,"div",6)(10,"mat-form-field",7)(11,"mat-chip-grid",null,8),y(13,Mre,5,1,"mat-chip-row",9),l(),D(14,"input",10),d(15,"mat-autocomplete",null,11),y(17,Tre,2,2,"mat-option",12),lu(18,"async"),l()()()()(),d(19,"div",13)(20,"div",2)(21,"div",3)(22,"span"),h(23," Status "),l()(),d(24,"div",6)(25,"span"),h(26," Summary "),l()()()(),y(27,Fre,2,1,"div",14)(28,Lre,8,0,"div",15),l()()),2&i){const r=Ft(12),a=Ft(16);m(13),f("ngForOf",o.searchFilters),m(),f("formControl",o.filterInput)("matChipInputFor",r)("matChipInputSeparatorKeyCodes",o.separatorKeysCodes)("matChipInputAddOnBlur",!1)("matAutocomplete",a),m(3),f("ngForOf",du(18,9,o.obsFilteredOptions)),m(10),f("ngIf",0!==o.summaryCount),m(),f("ngIf",0===o.summaryCount)}},dependencies:[rn,It,Mi,Di,Tn,Ci,_i,Fl,jl,wa,zl,MP,TP,DP,IC,vn,Kee,_R,x2],styles:[".container[_ngcontent-%COMP%]{height:calc(100vh - 271px);position:relative;overflow-y:auto;background-color:#fff}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%]{width:100%;position:absolute;top:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}h3[_ngcontent-%COMP%]{margin-bottom:0;padding-left:15px}.filter[_ngcontent-%COMP%]{display:flex;flex:1;min-height:65px;padding:0 15px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{order:1;position:relative;padding-top:20px;width:100px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{position:absolute;font-size:20px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-text[_ngcontent-%COMP%]{position:absolute;margin-left:30px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{order:2;width:100%}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;min-height:22px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-chip-input[_ngcontent-%COMP%]{height:24px;flex:0}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;opacity:.4}.filter[_ngcontent-%COMP%] .mat-mdc-form-field-underline{display:none}.filter[_ngcontent-%COMP%] .mat-mdc-chip[_ngcontent-%COMP%]{min-height:24px;font-weight:lighter}.header[_ngcontent-%COMP%]{display:flex;flex:1;padding:5px 0;background-color:#f5f5f5;text-align:center}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%]{display:flex;flex:1;padding:10px 0;border-bottom:1px solid #ccc}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1;text-align:center;padding-top:5px}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:30px;order:3;cursor:pointer}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:18px}.chip-list[_ngcontent-%COMP%]{width:100%}.mat-mdc-standard-chip[_ngcontent-%COMP%]{--mdc-chip-label-text-color: #fff}"]})}return t})();function Vre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Skip ",e.eligibleTables.length," table(s)?")}}function jre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Restore ",e.eligibleTables.length," table(s) and all associated indexes?")}}function zre(t,n){1&t&&(d(0,"span",9),h(1," Confirm skip by typing the following below: "),d(2,"b"),h(3,"SKIP"),l(),D(4,"br"),l())}function Hre(t,n){1&t&&(d(0,"span",9),h(1," Confirm restoration by typing the following below: "),d(2,"b"),h(3,"RESTORE"),l(),D(4,"br"),l())}function Ure(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already skipped tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be skipped since they are already skipped."),m(4),xe(" ",e.ineligibleTables," ")}}function $re(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already active tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be restored since they are already active."),m(4),xe(" ",e.ineligibleTables," ")}}let NN=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.eligibleTables=[],this.ineligibleTables=[];let o="";"SKIP"==this.data.operation?(o="SKIP",this.data.tables.forEach(r=>{r.isDeleted?this.ineligibleTables.push(r.TableName):this.eligibleTables.push(r.TableName)})):(o="RESTORE",this.data.tables.forEach(r=>{r.isDeleted?this.eligibleTables.push(r.TableName):this.ineligibleTables.push(r.TableName)})),this.confirmationInput=new U("",[ee.required,ee.pattern(o)]),i.disableClose=!0}confirm(){this.dialogRef.close(this.data.operation)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-bulk-drop-restore-table-dialog"]],decls:19,vars:8,consts:[["mat-dialog-content",""],[4,"ngIf"],[1,"form-container"],["class","form-custom-label",4,"ngIf"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"form-custom-label"]],template:function(i,o){1&i&&(d(0,"div",0),y(1,Vre,2,1,"h2",1)(2,jre,2,1,"h2",1),d(3,"mat-dialog-content")(4,"div",2)(5,"form"),y(6,zre,5,0,"span",3)(7,Hre,5,0,"span",3),d(8,"mat-form-field",4)(9,"mat-label"),h(10,"Confirm"),l(),D(11,"input",5),l(),y(12,Ure,8,3,"div",1)(13,$re,8,3,"div",1),l()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.confirm()}),h(18," Confirm "),l()()()),2&i&&(m(),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("formControl",o.confirmationInput),m(),f("ngIf","SKIP"==o.data.operation&&0!=o.ineligibleTables.length),m(),f("ngIf","RESTORE"==o.data.operation&&0!=o.ineligibleTables.length),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Gre(t,n){if(1&t&&(d(0,"mat-option",13),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}let FN=(()=>{class t{constructor(e,i,o,r){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.selectedSequenceKind="",this.sequenceKinds=[],this.addNewSequenceForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],sequenceKind:["",ee.required],skipRangeMin:["",ee.pattern("^[0-9]+$")],skipRangeMax:["",ee.pattern("^[0-9]+$")],startWithCounter:["",ee.pattern("^[0-9]+$")]},{validator:EN("skipRangeMin","skipRangeMax")}),this.fetchSerice.getSequenceKind().subscribe(a=>{this.sequenceKinds=a})}ngOnInit(){}addNewSequence(){let e=this.addNewSequenceForm.value;this.dataService.addSequence({Name:e.name,SequenceKind:this.selectedSequenceKind,SkipRangeMin:e.skipRangeMin,SkipRangeMax:e.skipRangeMax,StartWithCounter:e.startWithCounter}),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-sequence"]],decls:35,vars:4,consts:[["mat-dialog-content",""],[1,"add-new-sequence-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Sequence Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","sequenceKind","required","true",1,"input-field",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","Skip Range Min","type","text","formControlName","skipRangeMin"],["matInput","","placeholder","Skip Range Max","type","text","formControlName","skipRangeMax"],["matInput","","placeholder","Start With Counter","type","text","formControlName","startWithCounter"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Sequence Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Sequence Type"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedSequenceKind,a)||(o.selectedSequenceKind=a),a}),y(13,Gre,2,2,"mat-option",6),l()(),D(14,"br"),d(15,"mat-form-field",2)(16,"mat-label"),h(17,"Skip Range Minimum"),l(),D(18,"input",7),l(),D(19,"br"),d(20,"mat-form-field",2)(21,"mat-label"),h(22,"Skip Range Maximum"),l(),D(23,"input",8),l(),D(24,"br"),d(25,"mat-form-field",2)(26,"mat-label"),h(27,"Start With Counter"),l(),D(28,"input",9),l(),D(29,"br"),l(),d(30,"div",10)(31,"button",11),h(32,"CANCEL"),l(),d(33,"button",12),A("click",function(){return o.addNewSequence()}),h(34," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewSequenceForm),m(11),dn("ngModel",o.selectedSequenceKind),m(),f("ngForOf",o.sequenceKinds),m(20),f("disabled",!o.addNewSequenceForm.valid))},dependencies:[rn,Yt,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko]})}return t})();const LN=t=>({"blue-font-color":t});function qre(t,n){if(1&t&&(d(0,"span",25),h(1),l()),2&t){const e=C();f("ngClass",hi(2,LN,"source"===e.selectedTab)),m(),xe(" ",e.srcDbName.toUpperCase()," ")}}function Wre(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function Kre(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function Zre(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function Yre(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function Qre(t,n){if(1&t&&(d(0,"td",27),y(1,Kre,2,0,"svg",28)(2,Zre,2,0,"mat-icon",29)(3,Yre,2,0,"mat-icon",30),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status)}}function Xre(t,n){1&t&&(d(0,"mat-icon",38),h(1,"arrow_upward"),l())}function Jre(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function eae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function tae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().srcTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,Xre,2,0,"mat-icon",36)(5,Jre,2,0,"mat-icon",37)(6,eae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.srcSortOrder),m(),f("ngIf","asc"===e.srcSortOrder),m(),f("ngIf","desc"===e.srcSortOrder)}}function iae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function nae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function oae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function rae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function aae(t,n){if(1&t&&(d(0,"span",56)(1,"mat-icon",57),h(2,"more_vert"),l(),d(3,"mat-menu",null,58)(5,"button",59)(6,"span"),h(7,"Add Index"),l()()()()),2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function sae(t,n){if(1&t){const e=_e();d(0,"td",40)(1,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().srcTreeControl.toggle(r))}),y(2,iae,2,0,"svg",42)(3,nae,2,0,"ng-template",null,43,br),l(),d(5,"span",44),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(6,"span"),y(7,oae,2,0,"svg",45)(8,rae,2,0,"svg",46),d(9,"span"),h(10),l()(),y(11,aae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(4),o=C();m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.srcTreeControl.isExpanded(e))("ngIfElse",i),m(5),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)&&e.isSpannerNode)}}function cae(t,n){1&t&&D(0,"tr",60)}const BN=t=>({"selected-row":t});function lae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}function dae(t,n){if(1&t&&(d(0,"span",25),h(1," SPANNER DRAFT "),l()),2&t){const e=C();f("ngClass",hi(1,LN,"spanner"===e.selectedTab))}}function uae(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function hae(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function mae(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function pae(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function fae(t,n){1&t&&(d(0,"mat-icon",63),h(1," delete "),l())}function gae(t,n){if(1&t&&(d(0,"td",27),y(1,hae,2,0,"svg",28)(2,mae,2,0,"mat-icon",29)(3,pae,2,0,"mat-icon",30)(4,fae,2,0,"mat-icon",62),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status),m(),f("ngIf","DARK"===e.status||1==e.isDeleted)}}function _ae(t,n){1&t&&(d(0,"mat-icon",65),h(1,"arrow_upward"),l())}function bae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function vae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function yae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().spannerTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,_ae,2,0,"mat-icon",64)(5,bae,2,0,"mat-icon",37)(6,vae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.spannerSortOrder),m(),f("ngIf","asc"===e.spannerSortOrder),m(),f("ngIf","desc"===e.spannerSortOrder)}}function Cae(t,n){if(1&t){const e=_e();d(0,"mat-checkbox",70),A("change",function(){ie(e);const o=C().$implicit;return ne(C().selectionToggle(o))}),l()}if(2&t){const e=C().$implicit;f("checked",C().checklistSelection.isSelected(e))}}function wae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function xae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function Dae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function Sae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function kae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",71),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){ie(e);const o=C().$implicit;return ne(C().openAddIndexForm(o.parent))}),d(6,"span"),h(7,"Add Index"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Mae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",74),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){return ie(e),ne(C(2).openAddSequenceForm())}),d(6,"span"),h(7,"Add Sequence"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Tae=()=>({sidebar_link:!0}),Iae=t=>({"gray-out":t});function Eae(t,n){if(1&t){const e=_e();d(0,"td",66),y(1,Cae,1,1,"mat-checkbox",67),d(2,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().treeControl.toggle(r))}),y(3,wae,2,0,"svg",42)(4,xae,2,0,"ng-template",null,43,br),l(),d(6,"span",68),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(7,"span"),y(8,Dae,2,0,"svg",45)(9,Sae,2,0,"svg",46),d(10,"span",69),h(11),l()(),y(12,kae,8,1,"span",47)(13,Mae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(5),o=C();f("ngClass",No(14,Tae)),m(),f("ngIf",o.isTableLikeNode(e)),m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.treeControl.isExpanded(e))("ngIfElse",i),m(3),f("ngClass",hi(15,Iae,e.isDeleted)),m(2),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)),m(),f("ngIf",o.isSequenceNode(e.type))}}function Oae(t,n){1&t&&D(0,"tr",60)}function Aae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}const ww=t=>[t];let Pae=(()=>{class t{constructor(e,i,o,r,a){this.conversion=e,this.dialog=i,this.data=o,this.sidenav=r,this.clickEvent=a,this.isLeftColumnCollapse=!1,this.currentSelectedObject=null,this.srcSortOrder="",this.spannerSortOrder="",this.srcSearchText="",this.spannerSearchText="",this.selectedTab="spanner",this.selectedDatabase=new Ne,this.selectObject=new Ne,this.updateSpannerTable=new Ne,this.updateSrcTable=new Ne,this.leftCollaspe=new Ne,this.updateSidebar=new Ne,this.spannerTree=[],this.srcTree=[],this.srcDbName="",this.selectedIndex=1,this.transformer=(s,c)=>({expandable:!!s.children&&s.children.length>0,name:s.name,status:s.status,type:s.type,parent:s.parent,parentId:s.parentId,pos:s.pos,isSpannerNode:s.isSpannerNode,level:c,isDeleted:!!s.isDeleted,id:s.id}),this.treeControl=new EP(s=>s.level,s=>s.expandable),this.srcTreeControl=new EP(s=>s.level,s=>s.expandable),this.treeFlattener=new LX(this.transformer,s=>s.level,s=>s.expandable,s=>s.children),this.dataSource=new AP(this.treeControl,this.treeFlattener),this.srcDataSource=new AP(this.srcTreeControl,this.treeFlattener),this.checklistSelection=new qu(!0,[]),this.displayedColumns=["status","name"]}ngOnInit(){this.clickEvent.tabToSpanner.subscribe({next:e=>{this.setSpannerTab()}})}ngOnChanges(e){let i=e?.spannerTree?.currentValue,o=e?.srcTree?.currentValue;o&&(this.srcDataSource.data=o,this.srcTreeControl.expand(this.srcTreeControl.dataNodes[0]),this.srcTreeControl.expand(this.srcTreeControl.dataNodes[1])),i&&(this.dataSource.data=i,this.treeControl.expand(this.treeControl.dataNodes[0]),this.treeControl.expand(this.treeControl.dataNodes[1]))}filterSpannerTable(){this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}filterSrcTable(){this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}srcTableSort(){this.srcSortOrder=""===this.srcSortOrder?"asc":"asc"===this.srcSortOrder?"desc":"",this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}spannerTableSort(){this.spannerSortOrder=""===this.spannerSortOrder?"asc":"asc"===this.spannerSortOrder?"desc":"",this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}objectSelected(e){this.currentSelectedObject=e,(e.type===jt.Index||e.type===jt.Table||e.type===jt.Sequence)&&this.selectObject.emit(e)}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse,this.leftCollaspe.emit()}isTableNode(e){return new RegExp("^tables").test(e)}isIndexNode(e){return new RegExp("^indexes").test(e)}isSequenceNode(e){return new RegExp("^sequences").test(e)}isIndexLikeNode(e){return e.type==jt.Index||e.type==jt.Indexes}isTableLikeNode(e){return e.type==jt.Table||e.type==jt.Tables}isSequenceLikeNode(e){return e.type==jt.Sequence||e.type==jt.Sequences}openAddIndexForm(e){this.sidenav.setSidenavAddIndexTable(e),this.sidenav.setSidenavRuleType("addIndex"),this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("rule"),this.sidenav.setRuleData([]),this.sidenav.setDisplayRuleFlag(!1)}openAddSequenceForm(){this.dialog.open(FN,MN)}shouldHighlight(e){return e.name===this.currentSelectedObject?.name&&(e.type===jt.Table||e.type===jt.Index)}onTabChanged(){"spanner"==this.selectedTab?(this.selectedTab="source",this.selectedIndex=0):(this.selectedTab="spanner",this.selectedIndex=1),this.selectedDatabase.emit(this.selectedTab),this.currentSelectedObject=null,this.selectObject.emit(void 0)}setSpannerTab(){this.selectedIndex=1}checkDropSelection(){return 0!=this.countSelectionByCategory().eligibleForDrop}checkRestoreSelection(){return 0!=this.countSelectionByCategory().eligibleForRestore}countSelectionByCategory(){let i=0,o=0;return this.checklistSelection.selected.forEach(r=>{r.isDeleted?o+=1:i+=1}),{eligibleForDrop:i,eligibleForRestore:o}}dropSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",maxHeight:"90vh",data:{tables:i,operation:"SKIP"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"SKIP"==a&&(this.data.dropTables(r).pipe(Pt(1)).subscribe(s=>{""===s&&(this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.checklistSelection.clear())})}restoreSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{tables:i,operation:"RESTORE"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"RESTORE"==a&&(this.data.restoreTables(r).pipe(Pt(1)).subscribe(s=>{this.data.getConversionRate(),this.data.getDdl()}),this.checklistSelection.clear())})}selectionToggle(e){this.checklistSelection.toggle(e);const i=this.treeControl.getDescendants(e);this.checklistSelection.isSelected(e)?this.checklistSelection.select(...i):this.checklistSelection.deselect(...i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(pc),_(Hr),_(Hi),_(eo),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-object-explorer"]],inputs:{spannerTree:"spannerTree",srcTree:"srcTree",srcDbName:"srcDbName"},outputs:{selectedDatabase:"selectedDatabase",selectObject:"selectObject",updateSpannerTable:"updateSpannerTable",updateSrcTable:"updateSrcTable",leftCollaspe:"leftCollaspe",updateSidebar:"updateSidebar"},features:[fi],decls:59,vars:20,consts:[[1,"container"],[3,"ngClass","selectedIndex","selectedTabChange"],["mat-tab-label",""],[1,"filter-wrapper"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],["placeholder","Filter by table name",3,"ngModel","ngModelChange"],[1,"explorer-table"],["mat-table","",3,"dataSource"],["matColumnDef","status"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","name"],["mat-header-cell","","class","mat-header-cell-name cursor-pointer",3,"click",4,"matHeaderCellDef"],["mat-cell","","class","sidebar_link",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"ngClass",4,"matRowDef","matRowDefColumns"],["clas","delete-selected-btn"],["mat-button","","color","primary",1,"icon","drop",3,"disabled","click"],["clas","restore-selected-btn"],["mat-table","","id","schema-object-list",3,"dataSource"],["mat-cell","",3,"ngClass",4,"matCellDef"],["id","left-column-toggle-button",3,"click"],[3,"ngClass"],["mat-header-cell",""],["mat-cell",""],["class","icon success","matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",4,"ngIf"],["class","work","matTooltip","Requires minimal conversion changes","matTooltipPosition","above",4,"ngIf"],["class","work_history","matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",4,"ngIf"],["matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",1,"icon","success"],["d","m10.4 17.6-2-4.4-4.4-2 4.4-2 2-4.4 2 4.4 4.4 2-4.4 2Zm6.4 1.6-1-2.2-2.2-1 2.2-1 1-2.2 1 2.2 2.2 1-2.2 1Z"],["matTooltip","Requires minimal conversion changes","matTooltipPosition","above",1,"work"],["matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",1,"work_history"],["mat-header-cell","",1,"mat-header-cell-name","cursor-pointer",3,"click"],["class","src-unsorted-icon sort-icon",4,"ngIf"],["class","sort-icon",4,"ngIf"],[1,"src-unsorted-icon","sort-icon"],[1,"sort-icon"],["mat-cell","",1,"sidebar_link"],["mat-icon-button","",3,"click"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf","ngIfElse"],["collaps",""],[1,"sidebar_link",3,"click"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["class","actions",4,"ngIf"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M12 0L0 0L6 6L12 0Z","fill","black","fill-opacity","0.54"],["width","6","height","12","viewBox","0 0 6 12","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M-5.24537e-07 2.62268e-07L0 12L6 6L-5.24537e-07 2.62268e-07Z","fill","black","fill-opacity","0.54"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M0 0V18H18V0H0ZM16 2V6H2V2H16ZM7.33 11V8H10.66V11H7.33ZM10.67 13V16H7.34V13H10.67ZM5.33 11H2V8H5.33V11ZM12.67 8H16V11H12.67V8ZM2 13H5.33V16H2V13ZM12.67 16V13H16V16H12.67Z","fill","black","fill-opacity","0.54"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.005 14C11.555 14 12 13.554 12 13.002V5L10 3V12H2V14H11.005ZM0 0.996C0 0.446 0.438 0 1.003 0H7L9 2.004V10.004C9 10.554 8.554 11 8.002 11H0.998C0.867035 11.0003 0.737304 10.9747 0.616233 10.9248C0.495162 10.8748 0.385128 10.8015 0.292428 10.709C0.199729 10.6165 0.126186 10.5066 0.0760069 10.3856C0.0258282 10.2646 -2.64036e-07 10.135 0 10.004V0.996ZM6 1L5 5.5H2L6 1ZM3 10L4 5.5H7L3 10Z","fill","black","fill-opacity","0.54"],[1,"actions"],[3,"matMenuTriggerFor"],["menu","matMenu"],["mat-menu-item",""],["mat-header-row",""],["mat-row","",3,"ngClass"],["class","icon dark","matTooltip","Deleted","matTooltipPosition","above",4,"ngIf"],["matTooltip","Deleted","matTooltipPosition","above",1,"icon","dark"],["class","spanner-unsorted-icon sort-icon",4,"ngIf"],[1,"spanner-unsorted-icon","sort-icon"],["mat-cell","",3,"ngClass"],["class","checklist-node",3,"checked","change",4,"ngIf"],[1,"sidebar_link",3,"ngClass","click"],[1,"object-name"],[1,"checklist-node",3,"checked","change"],[1,"add-index-icon",3,"matMenuTriggerFor"],["xPosition","before"],["mat-menu-item","",3,"click"],[1,"add-sequence-icon",3,"matMenuTriggerFor"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-tab-group",1),A("selectedTabChange",function(){return o.onTabChanged()}),d(2,"mat-tab"),y(3,qre,2,4,"ng-template",2),d(4,"div",3)(5,"div",4)(6,"span",5),h(7,"filter_list"),l(),d(8,"span",6),h(9,"Filter"),l()(),d(10,"div",7)(11,"input",8),un("ngModelChange",function(a){return kn(o.srcSearchText,a)||(o.srcSearchText=a),a}),A("ngModelChange",function(){return o.filterSrcTable()}),l()()(),d(12,"div",9)(13,"table",10),me(14,11),y(15,Wre,2,0,"th",12)(16,Qre,4,3,"td",13),pe(),me(17,14),y(18,tae,7,3,"th",15)(19,sae,12,10,"td",16),pe(),y(20,cae,1,0,"tr",17)(21,lae,1,3,"tr",18),l()()(),d(22,"mat-tab"),y(23,dae,2,3,"ng-template",2),d(24,"div",3)(25,"div",4)(26,"span",5),h(27,"filter_list"),l(),d(28,"span",6),h(29,"Filter"),l()(),d(30,"div",7)(31,"input",8),un("ngModelChange",function(a){return kn(o.spannerSearchText,a)||(o.spannerSearchText=a),a}),A("ngModelChange",function(){return o.filterSpannerTable()}),l()(),d(32,"div",19)(33,"button",20),A("click",function(){return o.dropSelected()}),d(34,"mat-icon"),h(35,"delete"),l(),d(36,"span"),h(37,"SKIP"),l()()(),d(38,"div",21)(39,"button",20),A("click",function(){return o.restoreSelected()}),d(40,"mat-icon"),h(41,"undo"),l(),d(42,"span"),h(43,"RESTORE"),l()()()(),d(44,"div",9)(45,"table",22),me(46,11),y(47,uae,2,0,"th",12)(48,gae,5,4,"td",13),pe(),me(49,14),y(50,yae,7,3,"th",15)(51,Eae,14,17,"td",23),pe(),y(52,Oae,1,0,"tr",17)(53,Aae,1,3,"tr",18),l()()()(),d(54,"button",24),A("click",function(){return o.leftColumnToggle()}),d(55,"mat-icon",25),h(56,"first_page"),l(),d(57,"mat-icon",25),h(58,"last_page"),l()()()),2&i&&(m(),f("ngClass",hi(14,ww,o.isLeftColumnCollapse?"hidden":"display"))("selectedIndex",o.selectedIndex),m(10),dn("ngModel",o.srcSearchText),m(2),f("dataSource",o.srcDataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(10),dn("ngModel",o.spannerSearchText),m(2),f("disabled",!o.checkDropSelection()),m(6),f("disabled",!o.checkRestoreSelection()),m(6),f("dataSource",o.dataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(2),f("ngClass",hi(16,ww,o.isLeftColumnCollapse?"hidden":"display")),m(2),f("ngClass",hi(18,ww,o.isLeftColumnCollapse?"display":"hidden")))},dependencies:[yr,It,Yt,ba,Mi,Ci,_i,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,FC,eg,BC,vn,og,Nl],styles:[".container[_ngcontent-%COMP%]{position:relative;background-color:#fff}.container[_ngcontent-%COMP%] .filter-wrapper[_ngcontent-%COMP%]{padding:0 10px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]{height:35px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .src-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .src-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%]{font-size:1.1rem;vertical-align:middle}.selected-row[_ngcontent-%COMP%]{background-color:#61b3ff4a}.explorer-table[_ngcontent-%COMP%]{height:calc(100vh - 320px);width:100%;overflow:auto}.mdc-data-table__cell[_ngcontent-%COMP%], .mdc-data-table__header-cell[_ngcontent-%COMP%]{padding:0 0 0 16px}.mat-mdc-table[_ngcontent-%COMP%]{width:100%;border:inset}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;height:40px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-right:10px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{height:40px;margin-left:14px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .add-index-icon[_ngcontent-%COMP%]{margin-top:7px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%], .mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-row[_ngcontent-%COMP%]{height:29px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{font-family:Roboto;font-size:13px;font-style:normal;font-weight:500;line-height:18px;background:#f5f5f5}.mat-mdc-table[_ngcontent-%COMP%] .mat-column-status[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:medium}.mat-mdc-table[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{margin-right:20px}.filter-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;height:48px}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:30%;display:flex;align-items:center}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{margin-right:5px}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:70%}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:70%;border:none;outline:none;background-color:transparent}#left-column-toggle-button[_ngcontent-%COMP%]{z-index:100;position:absolute;right:4px;top:10px;border:none;background-color:inherit}#left-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer}.mat-mdc-column-status[_ngcontent-%COMP%]{width:80px} .column-left .mat-mdc-tab-label-container{margin-right:40px} .column-left .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-left .mat-mdc-tab-header-pagination-after{margin-right:40px}"]})}return t})();function Rae(t,n){1&t&&(d(0,"div",9)(1,"mat-icon"),h(2,"warning"),l(),d(3,"span"),h(4,"This operation cannot be undone"),l()())}let xw=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.ObjectDetailNodeType=ys,this.confirmationInput=new U("",[ee.required,ee.pattern(`^${e.name}$`)]),i.disableClose=!0}delete(){this.dialogRef.close(this.data.type)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-drop-index-dialog"]],decls:19,vars:7,consts:[["mat-dialog-content",""],["class","alert-container",4,"ngIf"],[1,"form-container"],[1,"form-custom-label"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"alert-container"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2),l(),y(3,Rae,5,0,"div",1),d(4,"div",2)(5,"form")(6,"span",3),h(7," Confirm deletion by typing the following below: "),d(8,"b"),h(9),l()(),d(10,"mat-form-field",4)(11,"mat-label"),h(12),l(),D(13,"input",5),l()()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.delete()}),h(18," Confirm "),l()()),2&i&&(m(2),_l("Skip ",o.data.type," (",o.data.name,")?"),m(),f("ngIf","Index"===o.data.type),m(6),Pe(o.data.name),m(3),xe("",o.data.type==o.ObjectDetailNodeType.Table?"Table":"Index"," Name"),m(),f("formControl",o.confirmationInput),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Nae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Fae(t,n){1&t&&(d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Length"),l(),D(4,"input",13),l(),D(5,"br"),l())}function Lae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Bae(t,n){if(1&t&&(me(0),y(1,Lae,2,2,"mat-option",16),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Vae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function jae(t,n){if(1&t&&(d(0,"mat-optgroup",18),y(1,Vae,2,2,"mat-option",6),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function zae(t,n){if(1&t&&(me(0),y(1,jae,2,2,"mat-optgroup",17),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Hae(t,n){if(1&t&&(me(0),y(1,zae,2,1,"ng-container",15),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf;m(),f("ngForOf",du(2,1,e))}}function Uae(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Auto Generated"),l(),d(4,"mat-select",14),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedAutoGen,o)||(r.selectedAutoGen=o),ne(o)}),y(5,Bae,2,1,"ng-container",15)(6,Hae,3,3,"ng-container",7),l()(),D(7,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedAutoGen),m(),f("ngForOf",e.autoGenMap[e.selectedDatatype]),m(),f("ngIf",e.processedAutoGenMap[e.selectedDatatype])}}function $ae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let Gae=(()=>{class t{constructor(e,i,o,r,a){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.data=a,this.dialect="",this.datatypes=[],this.selectedDatatype="",this.tableId="",this.selectedNull=!0,this.dataTypesWithColLen=In.DataTypes,this.autoGenMap={},this.selectedAutoGen={Name:"",GenerationType:""},this.processedAutoGenMap={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.autoGenSupportedDbs=["MySQL"],this.autGenSupported=!1,this.isColumnNullable=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=a.dialect,this.tableId=a.tableId,this.addNewColumnForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],datatype:["",ee.required],length:["",ee.pattern("^[0-9]+$")],isNullable:[],autoGen:[{Name:"",GenerationType:""}]}),this.fetchSerice.getAutoGenMap().subscribe(s=>{this.autoGenMap=s,this.processedAutoGenMap=IN(this.autoGenMap)}),this.autGenSupported=this.autoGenSupportedDbs.includes(this.srcDbName)}ngOnInit(){this.datatypes="google_standard_sql"==this.dialect?SN_GoogleStandardSQL:SN_PostgreSQL}changeValidator(){this.addNewColumnForm.controls.length.clearValidators(),"BYTES"===this.selectedDatatype?this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.ByteMaxLength)]):("VARCHAR"===this.selectedDatatype||"STRING"===this.selectedDatatype)&&this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.StringMaxLength)]),this.addNewColumnForm.controls.length.updateValueAndValidity()}addNewColumn(){let e=this.addNewColumnForm.value,i={Name:e.name,Datatype:this.selectedDatatype,Length:parseInt(e.length),IsNullable:this.selectedNull,AutoGen:this.selectedAutoGen};this.dataService.addColumn(this.tableId,i),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-column"]],decls:27,vars:8,consts:[["mat-dialog-content",""],[1,"add-new-column-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Column Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","datatype","required","true",1,"input-field",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["formControlName","isNullable","required","true",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],["matInput","","placeholder","Length","type","text","formControlName","length"],["formControlName","autoGen",1,"input-field",3,"ngModel","ngModelChange"],[4,"ngFor","ngForOf"],[3,"value",4,"ngIf"],[3,"label",4,"ngIf"],[3,"label"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Column Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Datatype"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedDatatype,a)||(o.selectedDatatype=a),a}),A("selectionChange",function(){return o.changeValidator()}),y(13,Nae,2,2,"mat-option",6),l()(),D(14,"br"),y(15,Fae,6,0,"div",7)(16,Uae,8,3,"div",7),d(17,"mat-form-field",4)(18,"mat-label"),h(19,"IsNullable"),l(),d(20,"mat-select",8),un("ngModelChange",function(a){return kn(o.selectedNull,a)||(o.selectedNull=a),a}),y(21,$ae,2,2,"mat-option",6),l()()(),d(22,"div",9)(23,"button",10),h(24,"CANCEL"),l(),d(25,"button",11),A("click",function(){return o.addNewColumn()}),h(26," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewColumnForm),m(11),dn("ngModel",o.selectedDatatype),m(),f("ngForOf",o.datatypes),m(2),f("ngIf",o.dataTypesWithColLen.indexOf(o.selectedDatatype)>-1),m(),f("ngIf",""!=o.selectedDatatype&&o.autoGenMap[o.selectedDatatype].length>1&&o.autGenSupported),m(4),dn("ngModel",o.selectedNull),m(),f("ngForOf",o.isColumnNullable),m(4),f("disabled",!o.addNewColumnForm.valid))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,TE,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,ay]})}return t})();function qae(t,n){1&t&&(d(0,"span"),h(1," To view and modify an object details, click on the object name on the Spanner draft panel. "),l())}function Wae(t,n){if(1&t&&(d(0,"span"),h(1),l()),2&t){const e=C(2);m(),xe(" To view an object details, click on the object name on the ",e.srcDbName," panel. ")}}const Tg=t=>[t];function Kae(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"div",3)(2,"h3",4),h(3,"OBJECT VIEWER"),l(),d(4,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(5,"mat-icon",6),h(6,"first_page"),l(),d(7,"mat-icon",6),h(8,"last_page"),l()()(),D(9,"mat-divider"),d(10,"div",7)(11,"div",8),ei(),d(12,"svg",9),D(13,"path",10),l()(),pr(),d(14,"div",11),y(15,qae,2,0,"span",12)(16,Wae,2,1,"span",12),l()()()}if(2&t){const e=C();m(5),f("ngClass",hi(4,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(6,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(8),f("ngIf","spanner"==e.currentDatabase),m(),f("ngIf","source"==e.currentDatabase)}}function Zae(t,n){1&t&&(d(0,"mat-icon",24),h(1," table_chart"),l())}function Yae(t,n){1&t&&(ei(),d(0,"svg",25),D(1,"path",26),l())}function Qae(t,n){if(1&t&&(d(0,"span"),h(1),lu(2,"uppercase"),l()),2&t){const e=C(2);m(),xe("( TABLE: ",du(2,1,e.currentObject.parent)," ) ")}}function Xae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropIndex())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP INDEX"),l()()}}function Jae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropSequence())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"DELETE SEQUENCE"),l()()}}function ese(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreIndex())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE INDEX"),l()()}}function tse(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropTable())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP TABLE"),l()()}}function ise(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreSpannerTable())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE TABLE"),l()()}}function nse(t,n){if(1&t&&(d(0,"div",28),h(1," Interleaved: "),d(2,"div",29),h(3),l()()),2&t){const e=C(2);m(3),xe(" ",e.interleaveParentName," ")}}function ose(t,n){1&t&&(d(0,"span"),h(1,"COLUMNS "),l())}function rse(t,n){if(1&t&&(d(0,"th",82),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function ase(t,n){1&t&&(d(0,"th",83),h(1,"S No."),l())}function sse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function cse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function lse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function dse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function use(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function hse(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function mse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColMaxLength").value," ")}}function pse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function fse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function gse(t,n){1&t&&(me(0,85),y(1,pse,2,0,"th",42)(2,fse,2,1,"td",39),pe())}function _se(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function bse(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function vse(t,n){if(1&t&&(d(0,"td",84),y(1,bse,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function yse(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Cse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function wse(t,n){1&t&&D(0,"tr",88)}function xse(t,n){1&t&&D(0,"tr",88)}const Dse=t=>({"scr-column-data-edit-mode":t});function Sse(t,n){if(1&t&&D(0,"tr",89),2&t){const e=C(3);f("ngClass",hi(1,Dse,e.isEditMode))}}function kse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).toggleEdit())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," EDIT "),l()}}function Mse(t,n){if(1&t&&(d(0,"div"),y(1,kse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Tse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewColumn())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD COLUMN "),l()}}function Ise(t,n){if(1&t&&(d(0,"div"),y(1,Tse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ese(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewSequence())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD SEQUENCE "),l()}}function Ose(t,n){if(1&t&&(d(0,"div"),y(1,Ese,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ase(t,n){if(1&t&&(d(0,"th",90)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,Mse,2,1,"div",12)(5,Ise,2,1,"div",12)(6,Ose,2,1,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted&&e.autoGenSupported)}}function Pse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Rse(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spColName"))("matTooltipDisabled",!(null!=(i=e.get("spColName"))&&i.hasError("pattern")))}}function Nse(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function Fse(t,n){if(1&t&&(d(0,"td",84),y(1,Rse,2,2,"div",12)(2,Nse,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode||""===e.get("srcId").value)}}function Lse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Bse(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Vse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayT),m(),xe(" ",e.DisplayT," ")}}function jse(t,n){1&t&&(d(0,"mat-option",107),h(1," STRING "),l())}function zse(t,n){1&t&&(d(0,"mat-option",108),h(1," VARCHAR "),l())}function Hse(t,n){if(1&t){const e=_e();d(0,"mat-form-field",100)(1,"mat-select",101,102),A("selectionChange",function(){ie(e);const o=Ft(2),r=C().index;return ne(C(3).spTableEditSuggestionHandler(r,o.value))}),y(3,Vse,2,2,"mat-option",103)(4,jse,2,0,"mat-option",104)(5,zse,2,0,"mat-option",105),l()()}if(2&t){const e=C().$implicit,i=C(3);m(),f("formControl",e.get("spDataType")),m(2),f("ngForOf",i.typeMap[e.get("srcDataType").value]),m(),f("ngIf",""==e.get("srcDataType").value&&!i.isPostgreSQLDialect),m(),f("ngIf",""==e.get("srcDataType").value&&i.isPostgreSQLDialect)}}function Use(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spDataType").value)}}function $se(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Bse,2,1,"span",97)(3,Hse,6,4,"mat-form-field",98)(4,Use,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spDataType").value),m(),f("ngIf",o.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!o.isEditMode||""===e.get("srcId").value)}}function Gse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function qse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Wse(t,n){if(1&t&&(me(0),y(1,qse,2,2,"mat-option",114),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Kse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function Zse(t,n){if(1&t&&(d(0,"mat-optgroup",116),y(1,Kse,2,2,"mat-option",103),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function Yse(t,n){if(1&t&&(me(0),y(1,Zse,2,2,"mat-optgroup",115),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Qse(t,n){if(1&t&&(me(0),y(1,Yse,2,1,"ng-container",113),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf,i=C(6);m(),f("ngForOf",du(2,1,i.processedAutoGenMap[e]))}}function Xse(t,n){if(1&t&&(me(0),d(1,"mat-form-field",100)(2,"mat-select",111,112),y(4,Wse,2,1,"ng-container",113)(5,Qse,3,3,"ng-container",12),l()(),pe()),2&t){const e=C().$implicit,i=C(4);m(2),f("formControl",e.get("spAutoGen"))("compareWith",i.compareAutoGen),m(2),f("ngForOf",i.autoGenMap[e.get("spDataType").value]),m(),f("ngIf",e.get("spDataType").value)}}function Jse(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function ece(t,n){if(1&t&&(d(0,"td",84)(1,"div",110),y(2,Xse,6,4,"ng-container",12)(3,Jse,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(4);m(2),f("ngIf",i.isEditMode&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode)}}function tce(t,n){1&t&&(me(0,109),y(1,Gse,2,0,"th",42)(2,ece,4,2,"td",39),pe())}function ice(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function nce(t,n){if(1&t&&(d(0,"div"),D(1,"input",117),l()),2&t){const e=C(2).$implicit;m(),f("formControl",e.get("spColMaxLength"))}}function oce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),xe(" ",e.get("spColMaxLength").value," ")}}function rce(t,n){if(1&t&&(d(0,"div"),y(1,nce,2,1,"div",12)(2,oce,2,1,"p",12),l()),2&t){const e=C().$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!=e.get("srcDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function ace(t,n){if(1&t&&(d(0,"td",84),y(1,rce,3,2,"div",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.dataTypesWithColLen.indexOf(e.get("spDataType").value)>-1)}}function sce(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function cce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function lce(t,n){if(1&t&&(d(0,"td",84),y(1,cce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function dce(t,n){1&t&&(d(0,"span"),h(1,"Not Null"),l())}function uce(t,n){1&t&&(d(0,"span"),h(1,"Nullable"),l())}function hce(t,n){if(1&t&&(d(0,"th",83),y(1,dce,2,0,"span",12)(2,uce,2,0,"span",12),l()),2&t){const e=C(3);m(),f("ngIf",e.isEditMode),m(),f("ngIf",!e.isEditMode)}}function mce(t,n){if(1&t&&(d(0,"div"),D(1,"mat-checkbox",119),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spIsNotNull"))}}function pce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function fce(t,n){if(1&t&&(d(0,"td",84)(1,"div",118),y(2,mce,2,1,"div",12)(3,pce,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function gce(t,n){1&t&&D(0,"th",83)}function _ce(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropColumn(o))}),d(6,"span"),h(7,"Drop Column"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Ig=t=>({"drop-button-left-border":t});function bce(t,n){if(1&t&&(d(0,"td",120),y(1,_ce,8,1,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isEditMode)),m(),f("ngIf",i.isEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol)}}function vce(t,n){1&t&&D(0,"tr",88)}function yce(t,n){1&t&&D(0,"tr",88)}function Cce(t,n){1&t&&D(0,"tr",127)}function wce(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function xce(t,n){if(1&t){const e=_e();d(0,"div",128)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setColumn(o.value))}),y(5,wce,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).restoreColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," RESTORE COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addColumnForm),m(5),f("ngForOf",e.droppedSourceColumns)}}function Dce(t,n){1&t&&(d(0,"span"),h(1,"PRIMARY KEY "),l())}function Sce(t,n){if(1&t&&(d(0,"th",132),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function kce(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).togglePkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Mce(t,n){if(1&t&&(d(0,"th",133)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,kce,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isPkEditMode&&e.pkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function Tce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Ice(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function Ece(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Oce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function Ace(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Pce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function Rce(t,n){1&t&&(d(0,"th",83),h(1,"PK"),l())}function Nce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function Fce(t,n){if(1&t&&(d(0,"td",84),y(1,Nce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function Lce(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Bce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function Vce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function jce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function zce(t,n){1&t&&(me(0,85),y(1,Vce,2,0,"th",42)(2,jce,2,1,"td",39),pe())}function Hce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Uce(t,n){if(1&t&&(d(0,"div"),D(1,"input",134),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spOrder"))("matTooltipDisabled",!(null!=(i=e.get("spOrder"))&&i.hasError("pattern")))}}function $ce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Gce(t,n){if(1&t&&(d(0,"td",84),y(1,Uce,2,2,"div",12)(2,$ce,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isPkEditMode&&""!==e.get("spColName").value),m(),f("ngIf",!i.isPkEditMode)}}function qce(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Wce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.get("spColName").value)}}function Kce(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Zce(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Yce(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Zce,2,1,"span",97),d(3,"p"),h(4),l()()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spColName").value),m(2),Pe(e.get("spDataType").value)}}function Qce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function Xce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function Jce(t,n){1&t&&(me(0,109),y(1,Qce,2,0,"th",42)(2,Xce,3,1,"td",39),pe())}function ele(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function tle(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function ile(t,n){if(1&t&&(d(0,"td",84),y(1,tle,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function nle(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function ole(t,n){if(1&t&&(d(0,"td",84)(1,"div",118)(2,"p"),h(3),l()()()),2&t){const e=n.$implicit;m(3),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function rle(t,n){1&t&&D(0,"th",83)}function ale(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropPk(o))}),d(6,"span"),h(7,"Remove primary key"),l()()()()}if(2&t){const e=Ft(4),i=C(4);m(),f("matMenuTriggerFor",e),m(4),f("disabled",!i.isPkEditMode)}}function sle(t,n){if(1&t&&(d(0,"td",120),y(1,ale,8,2,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isPkEditMode)),m(),f("ngIf",i.isPkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spColName").value)}}function cle(t,n){1&t&&D(0,"tr",88)}function lle(t,n){1&t&&D(0,"tr",88)}function dle(t,n){1&t&&D(0,"tr",127)}function ule(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function hle(t,n){if(1&t){const e=_e();d(0,"div",136)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setPkColumn(o.value))}),y(5,ule,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).addPkColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," ADD COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addPkColumnForm),m(5),f("ngForOf",e.pkColumnNames)}}function mle(t,n){1&t&&(d(0,"span"),h(1,"FOREIGN KEY"),l())}function ple(t,n){if(1&t&&(d(0,"th",137),h(1),l()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?6:4),m(),Pe(e.srcDbName)}}function fle(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleFkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function gle(t,n){if(1&t&&(d(0,"th",137)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,fle,5,0,"div",12),l()()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?7:5),m(4),f("ngIf",!e.isFkEditMode&&e.fkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function _le(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcName").value," ")}}function vle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function yle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColumns").value," ")}}function Cle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function wle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferTable").value," ")}}function xle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function Dle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferColumns").value," ")}}function Sle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function kle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnDelete").value," ")}}function Mle(t,n){1&t&&(me(0,138),y(1,Sle,2,0,"th",38)(2,kle,2,1,"td",39),pe())}function Tle(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Ile(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnUpdate").value," ")}}function Ele(t,n){1&t&&(me(0,139),y(1,Tle,2,0,"th",38)(2,Ile,2,1,"td",39),pe())}function Ole(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ale(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spName"))("matTooltipDisabled",!(null!=(i=e.get("spName"))&&i.hasError("pattern")))}}function Ple(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spName").value)}}function Rle(t,n){if(1&t&&(d(0,"td",84),y(1,Ale,2,2,"div",12)(2,Ple,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isFkEditMode&&""!==e.get("spReferTable").value),m(),f("ngIf",!i.isFkEditMode)}}function Nle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function Fle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spColumns").value," ")}}function Lle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function Ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spReferTable").value," ")}}function Vle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function jle(t,n){if(1&t&&(d(0,"td",84)(1,"div",140),h(2),l()()),2&t){const e=n.$implicit;m(2),xe(" ",e.get("spReferColumns").value," ")}}function zle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function Hle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnDelete").value," ")}}function Ule(t,n){1&t&&(me(0,141),y(1,zle,2,0,"th",38)(2,Hle,2,1,"td",39),pe())}function $le(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Gle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnUpdate").value," ")}}function qle(t,n){1&t&&(me(0,142),y(1,$le,2,0,"th",38)(2,Gle,2,1,"td",39),pe())}function Wle(t,n){1&t&&D(0,"th",83)}function Kle(t,n){if(1&t){const e=_e();d(0,"button",135),A("click",function(){return ie(e),ne(C(5).setInterleave())}),d(1,"span"),h(2,"Convert to interleave"),l()()}2&t&&f("disabled",""===C(2).$implicit.get("spName").value)}function Zle(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropFk(o))}),d(6,"span"),h(7,"Drop Foreign Key"),l()(),y(8,Kle,3,1,"button",143),l()()}if(2&t){const e=Ft(4),i=C().$implicit,o=C(3);m(),f("matMenuTriggerFor",e),m(4),f("disabled",""===i.get("spName").value),m(3),f("ngIf",o.interleaveStatus.tableInterleaveStatus&&o.interleaveStatus.tableInterleaveStatus.Possible)}}function Yle(t,n){if(1&t&&(d(0,"td",120),y(1,Zle,9,3,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isFkEditMode)),m(),f("ngIf",i.isFkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spReferTable").value)}}function Qle(t,n){1&t&&D(0,"tr",88)}function Xle(t,n){1&t&&D(0,"tr",88)}function Jle(t,n){1&t&&D(0,"tr",127)}function ede(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).setInterleave())}),h(1," Convert to Interleave "),l()}}function tde(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).removeInterleave())}),h(1," Convert Back to Foreign Key "),l()}}function ide(t,n){if(1&t&&(d(0,"div"),h(1," This table is interleaved with "),d(2,"span",148),h(3),l(),h(4,". Click on the above button to convert back to foreign key. "),l()),2&t){const e=C(4);m(3),Pe(e.interleaveParentName)}}function nde(t,n){if(1&t&&(d(0,"mat-tab",144)(1,"div",145),y(2,ede,2,0,"button",146)(3,tde,2,0,"button",146),D(4,"br"),y(5,ide,5,1,"div",12),l()()),2&t){const e=C(3);m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible&&null===e.interleaveParentName),m(),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName),m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)}}function ode(t,n){1&t&&(d(0,"span"),h(1,"SQL"),l())}function rde(t,n){if(1&t&&(d(0,"mat-tab"),y(1,ode,2,0,"ng-template",31),d(2,"div",149)(3,"pre")(4,"code"),h(5),l()()()()),2&t){const e=C(3);m(5),Pe(e.ddlStmts[e.currentObject.id])}}const ade=t=>({"height-on-edit":t}),sde=()=>["srcDatabase"],VN=()=>["spDatabase"],Dw=()=>["srcDatabase","spDatabase"];function cde(t,n){if(1&t){const e=_e();d(0,"mat-tab-group",30),A("selectedTabChange",function(o){return ie(e),ne(C(2).tabChanged(o))}),d(1,"mat-tab"),y(2,ose,2,0,"ng-template",31),d(3,"div",32)(4,"div",33)(5,"table",34),me(6,35),y(7,rse,2,1,"th",36),pe(),me(8,37),y(9,ase,2,0,"th",38)(10,sse,2,1,"td",39),pe(),me(11,40),y(12,cse,2,0,"th",38)(13,lse,2,1,"td",39),pe(),me(14,41),y(15,dse,2,0,"th",42)(16,use,2,1,"td",39),pe(),me(17,43),y(18,hse,2,0,"th",42)(19,mse,2,1,"td",39),pe(),y(20,gse,3,0,"ng-container",44),me(21,45),y(22,_se,2,0,"th",38)(23,vse,2,1,"td",39),pe(),me(24,46),y(25,yse,2,0,"th",42)(26,Cse,2,1,"td",39),pe(),y(27,wse,1,0,"tr",47)(28,xse,1,0,"tr",47)(29,Sse,1,3,"tr",48),l(),d(30,"table",34),me(31,49),y(32,Ase,7,3,"th",50),pe(),me(33,51),y(34,Pse,2,0,"th",42)(35,Fse,3,2,"td",39),pe(),me(36,52),y(37,Lse,2,0,"th",42)(38,$se,5,3,"td",39),pe(),y(39,tce,3,0,"ng-container",53),me(40,54),y(41,ice,2,0,"th",42)(42,ace,2,1,"td",39),pe(),me(43,55),y(44,sce,2,0,"th",38)(45,lce,2,1,"td",39),pe(),me(46,56),y(47,hce,3,2,"th",42)(48,fce,4,2,"td",39),pe(),me(49,57),y(50,gce,1,0,"th",42)(51,bce,2,4,"td",58),pe(),y(52,vce,1,0,"tr",47)(53,yce,1,0,"tr",47)(54,Cce,1,0,"tr",59),l()(),y(55,xce,10,2,"div",60),l()(),d(56,"mat-tab"),y(57,Dce,2,0,"ng-template",31),d(58,"div",61)(59,"table",34),me(60,35),y(61,Sce,2,1,"th",62),pe(),me(62,49),y(63,Mce,5,1,"th",63),pe(),me(64,37),y(65,Tce,2,0,"th",38)(66,Ice,2,1,"td",39),pe(),me(67,40),y(68,Ece,2,0,"th",38)(69,Oce,2,1,"td",39),pe(),me(70,41),y(71,Ace,2,0,"th",42)(72,Pce,2,1,"td",39),pe(),me(73,45),y(74,Rce,2,0,"th",38)(75,Fce,2,1,"td",39),pe(),me(76,46),y(77,Lce,2,0,"th",42)(78,Bce,2,1,"td",39),pe(),y(79,zce,3,0,"ng-container",44),me(80,64),y(81,Hce,2,0,"th",38)(82,Gce,3,2,"td",39),pe(),me(83,51),y(84,qce,2,0,"th",42)(85,Wce,3,1,"td",39),pe(),me(86,52),y(87,Kce,2,0,"th",42)(88,Yce,5,2,"td",39),pe(),y(89,Jce,3,0,"ng-container",53),me(90,55),y(91,ele,2,0,"th",38)(92,ile,2,1,"td",39),pe(),me(93,56),y(94,nle,2,0,"th",42)(95,ole,4,1,"td",39),pe(),me(96,57),y(97,rle,1,0,"th",42)(98,sle,2,4,"td",58),pe(),y(99,cle,1,0,"tr",47)(100,lle,1,0,"tr",47)(101,dle,1,0,"tr",59),l(),y(102,hle,10,2,"div",65),l()(),d(103,"mat-tab"),y(104,mle,2,0,"ng-template",31),d(105,"div",66)(106,"table",34),me(107,35),y(108,ple,2,2,"th",67),pe(),me(109,49),y(110,gle,5,2,"th",67),pe(),me(111,68),y(112,_le,2,0,"th",38)(113,ble,2,1,"td",39),pe(),me(114,69),y(115,vle,2,0,"th",38)(116,yle,2,1,"td",39),pe(),me(117,70),y(118,Cle,2,0,"th",38)(119,wle,2,1,"td",39),pe(),me(120,71),y(121,xle,2,0,"th",38)(122,Dle,2,1,"td",39),pe(),y(123,Mle,3,0,"ng-container",72)(124,Ele,3,0,"ng-container",73),me(125,74),y(126,Ole,2,0,"th",42)(127,Rle,3,2,"td",39),pe(),me(128,75),y(129,Nle,2,0,"th",38)(130,Fle,2,1,"td",39),pe(),me(131,76),y(132,Lle,2,0,"th",38)(133,Ble,2,1,"td",39),pe(),me(134,77),y(135,Vle,2,0,"th",38)(136,jle,3,1,"td",39),pe(),y(137,Ule,3,0,"ng-container",78)(138,qle,3,0,"ng-container",79),me(139,80),y(140,Wle,1,0,"th",42)(141,Yle,2,4,"td",58),pe(),y(142,Qle,1,0,"tr",47)(143,Xle,1,0,"tr",47)(144,Jle,1,0,"tr",59),l()()(),y(145,nde,6,3,"mat-tab",81)(146,rde,6,1,"mat-tab",12),l()}if(2&t){const e=C(2);f("ngClass",hi(29,ade,e.isEditMode||e.isPkEditMode||e.isFkEditMode)),m(5),f("dataSource",e.srcDataSource),m(15),f("ngIf",e.autoGenSupported),m(7),f("matHeaderRowDef",No(31,sde)),m(),f("matHeaderRowDef",e.srcDisplayedColumns),m(),f("matRowDefColumns",e.srcDisplayedColumns),m(),f("dataSource",e.spDataSource),m(9),f("ngIf",e.autoGenSupported),m(13),f("matHeaderRowDef",No(32,VN)),m(),f("matHeaderRowDef",e.spDisplayedColumns),m(),f("matRowDefColumns",e.spDisplayedColumns),m(),f("ngIf",e.isEditMode&&0!=e.droppedSourceColumns.length),m(4),f("dataSource",e.pkDataSource),m(20),f("ngIf",e.autoGenSupported),m(10),f("ngIf",e.autoGenSupported),m(10),f("matHeaderRowDef",No(33,Dw)),m(),f("matHeaderRowDef",e.displayedPkColumns),m(),f("matRowDefColumns",e.displayedPkColumns),m(),f("ngIf",e.isPkEditMode),m(4),f("dataSource",e.fkDataSource),m(17),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(13),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(4),f("matHeaderRowDef",No(34,Dw)),m(),f("matHeaderRowDef",e.displayedFkColumns),m(),f("matRowDefColumns",e.displayedFkColumns),m(),f("ngIf",(e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)&&e.currentObject.isSpannerNode),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function lde(t,n){if(1&t&&(d(0,"th",161),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function dde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleIndexEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function ude(t,n){if(1&t&&(d(0,"th",162)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,dde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isIndexEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function hde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function mde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function pde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function fde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function gde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function _de(t,n){if(1&t&&(d(0,"td",84),y(1,fde,2,0,"p",12)(2,gde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcDesc").value),m(),f("ngIf",!1===e.get("srcDesc").value)}}function bde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function vde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function yde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function Cde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function wde(t,n){if(1&t&&(d(0,"td",84),y(1,Cde,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spColName").value)}}function xde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function Dde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function Sde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function kde(t,n){if(1&t&&(d(0,"td",84),y(1,Dde,2,0,"p",12)(2,Sde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spDesc").value),m(),f("ngIf",!1===e.get("spDesc").value)}}function Mde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function Tde(t,n){if(1&t&&(d(0,"div"),D(1,"input",163),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spOrder"))}}function Ide(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Ede(t,n){if(1&t&&(d(0,"td",84),y(1,Tde,2,1,"div",12)(2,Ide,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value),m(),f("ngIf",!i.isIndexEditMode)}}function Ode(t,n){1&t&&D(0,"th",83)}function Ade(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().index;return ne(C(3).dropIndexKey(o))}),d(6,"span"),h(7,"Drop Index Key"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Pde(t,n){if(1&t&&(d(0,"td",120),y(1,Ade,8,1,"div",12),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isIndexEditMode)),m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value)}}function Rde(t,n){1&t&&D(0,"tr",88)}function Nde(t,n){1&t&&D(0,"tr",88)}function Fde(t,n){1&t&&D(0,"tr",164)}function Lde(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Bde(t,n){if(1&t){const e=_e();d(0,"div",165)(1,"mat-form-field",166)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",167),y(5,Lde,2,2,"mat-option",103),l()(),d(6,"mat-form-field",168)(7,"mat-label"),h(8,"Sort By"),l(),d(9,"mat-select",169)(10,"mat-option",170),h(11,"Ascending"),l(),d(12,"mat-option",171),h(13,"Descending"),l()()(),d(14,"button",172),A("click",function(){return ie(e),ne(C(3).addIndexKey())}),d(15,"mat-icon"),h(16,"add"),l(),d(17,"span"),h(18," ADD COLUMN"),l()()()}if(2&t){const e=C(3);f("formGroup",e.addIndexKeyForm),m(5),f("ngForOf",e.indexColumnNames),m(9),f("disabled",!e.addIndexKeyForm.valid)}}function Vde(t,n){if(1&t&&(d(0,"div",150)(1,"table",34),me(2,35),y(3,lde,2,1,"th",151),pe(),me(4,49),y(5,ude,5,1,"th",152),pe(),me(6,153),y(7,hde,2,0,"th",38)(8,mde,2,1,"td",39),pe(),me(9,154),y(10,pde,2,0,"th",42)(11,_de,3,2,"td",39),pe(),me(12,155),y(13,bde,2,0,"th",38)(14,vde,2,1,"td",39),pe(),me(15,156),y(16,yde,2,0,"th",42)(17,wde,2,1,"td",39),pe(),me(18,157),y(19,xde,2,0,"th",42)(20,kde,3,2,"td",39),pe(),me(21,158),y(22,Mde,2,0,"th",38)(23,Ede,3,2,"td",39),pe(),me(24,57),y(25,Ode,1,0,"th",42)(26,Pde,2,4,"td",58),pe(),y(27,Rde,1,0,"tr",47)(28,Nde,1,0,"tr",47)(29,Fde,1,0,"tr",159),l(),y(30,Bde,19,3,"div",160),l()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(26),f("matHeaderRowDef",No(5,Dw)),m(),f("matHeaderRowDef",e.indexDisplayedColumns),m(),f("matRowDefColumns",e.indexDisplayedColumns),m(),f("ngIf",e.isIndexEditMode&&e.indexColumnNames.length>0)}}function jde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleSequenceEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function zde(t,n){if(1&t&&(d(0,"th",132)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,jde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isSequenceEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function Hde(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ude(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSeqName").value)}}function $de(t,n){if(1&t&&(d(0,"td",84),y(1,Ude,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spSeqName").value)}}function Gde(t,n){1&t&&(d(0,"th",83),h(1,"Sequence Type"),l())}function qde(t,n){if(1&t&&(me(0),d(1,"mat-option",106),h(2),l(),pe()),2&t){const e=n.$implicit;m(),f("value",e),m(),xe(" ",e," ")}}function Wde(t,n){if(1&t&&(me(0),d(1,"mat-form-field",181)(2,"mat-select",182,183),y(4,qde,3,2,"ng-container",113),l()(),pe()),2&t){const e=C().$implicit,i=C(3);m(2),f("formControl",e.get("spSequenceKind")),m(2),f("ngForOf",i.sequenceKinds)}}function Kde(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(e.get("spSequenceKind").value)}}function Zde(t,n){if(1&t&&(d(0,"td",84)(1,"div",180),y(2,Wde,5,2,"ng-container",12)(3,Kde,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isSequenceEditMode&&""!==e.get("spSequenceKind").value),m(),f("ngIf",!i.isSequenceEditMode)}}function Yde(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Min"),l())}function Qde(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMin"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMin"))&&i.hasError("pattern")))}}function Xde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMin").value)}}function Jde(t,n){if(1&t&&(d(0,"td",84),y(1,Qde,2,2,"div",12)(2,Xde,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMin").value)}}function eue(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Max"),l())}function tue(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMax"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMax"))&&i.hasError("pattern")))}}function iue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMax").value)}}function nue(t,n){if(1&t&&(d(0,"td",84),y(1,tue,2,2,"div",12)(2,iue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMax").value)}}function oue(t,n){1&t&&(d(0,"th",83),h(1,"Start With Counter"),l())}function rue(t,n){if(1&t&&(d(0,"div"),D(1,"input",185),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spStartWithCounter"))("matTooltipDisabled",!(null!=(i=e.get("spStartWithCounter"))&&i.hasError("pattern")))}}function aue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spStartWithCounter").value)}}function sue(t,n){if(1&t&&(d(0,"td",84),y(1,rue,2,2,"div",12)(2,aue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spStartWithCounter").value)}}function cue(t,n){1&t&&D(0,"tr",88)}function lue(t,n){1&t&&D(0,"tr",88)}function due(t,n){1&t&&D(0,"tr",186)}function uue(t,n){if(1&t&&(d(0,"div",173)(1,"table",34),me(2,49),y(3,zde,5,1,"th",62),pe(),me(4,174),y(5,Hde,2,0,"th",42)(6,$de,2,1,"td",39),pe(),me(7,175),y(8,Gde,2,0,"th",42)(9,Zde,4,2,"td",39),pe(),me(10,176),y(11,Yde,2,0,"th",42)(12,Jde,3,2,"td",39),pe(),me(13,177),y(14,eue,2,0,"th",42)(15,nue,3,2,"td",39),pe(),me(16,178),y(17,oue,2,0,"th",42)(18,sue,3,2,"td",39),pe(),y(19,cue,1,0,"tr",47)(20,lue,1,0,"tr",47)(21,due,1,0,"tr",179),l()()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(18),f("matHeaderRowDef",No(4,VN)),m(),f("matHeaderRowDef",e.sequenceDisplayedColumns),m(),f("matRowDefColumns",e.sequenceDisplayedColumns)}}function hue(t,n){1&t&&D(0,"mat-divider")}function mue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleEdit())}),h(1," CANCEL "),l()}}function pue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveColumnTable())}),h(2," SAVE & CONVERT "),l(),y(3,mue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function fue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).togglePkEdit())}),h(1," CANCEL "),l()}}function gue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).savePk())}),h(2," SAVE & CONVERT "),l(),y(3,fue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.pkArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function _ue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleFkEdit())}),h(1," CANCEL "),l()}}function bue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveFk())}),h(2,"SAVE & CONVERT"),l(),y(3,_ue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function vue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleIndexEdit())}),h(1," CANCEL "),l()}}function yue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveIndex())}),h(2,"SAVE & CONVERT"),l(),y(3,vue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function Cue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleSequenceEdit())}),h(1," CANCEL "),l()}}function wue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveSequence())}),h(2," SAVE & CONVERT "),l(),y(3,Cue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function xue(t,n){if(1&t){const e=_e();d(0,"div",13)(1,"div",3)(2,"span")(3,"h3",4),y(4,Zae,2,0,"mat-icon",14)(5,Yae,2,0,"svg",15),d(6,"span",16),h(7),l(),y(8,Qae,3,3,"span",12)(9,Xae,5,0,"button",17)(10,Jae,5,0,"button",17)(11,ese,5,0,"button",17)(12,tse,5,0,"button",17)(13,ise,5,0,"button",17),l(),y(14,nse,4,1,"div",18),l(),d(15,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(16,"mat-icon",6),h(17,"first_page"),l(),d(18,"mat-icon",6),h(19,"last_page"),l()()(),y(20,cde,147,35,"mat-tab-group",19)(21,Vde,31,6,"div",20)(22,uue,22,5,"div",21),d(23,"div",22),y(24,hue,1,0,"mat-divider",12)(25,pue,4,2,"div",23)(26,gue,4,2,"div",23)(27,bue,4,1,"div",23)(28,yue,4,1,"div",23)(29,wue,4,2,"div",23),l()()}if(2&t){const e=C();m(4),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Index||e.currentObject.type===e.ObjectExplorerNodeType.Sequence),m(2),Pe(" "+e.currentObject.name+" "),m(),f("ngIf",""!=e.currentObject.parent),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"indexName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"sequenceName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Index),m(),f("ngIf",e.currentObject.isSpannerNode&&"indexName"!==e.currentObject.type&&"sequenceName"!==e.currentObject.type&&!e.currentObject.isDeleted),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.interleaveParentName&&e.currentObject.isSpannerNode),m(2),f("ngClass",hi(21,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(23,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(2),f("ngIf","tableName"===e.currentObject.type),m(),f("ngIf","indexName"===e.currentObject.type),m(),f("ngIf","sequenceName"===e.currentObject.type&&e.autoGenSupported),m(2),f("ngIf",e.isEditMode||e.isPkEditMode||e.isFkEditMode),m(),f("ngIf",e.isEditMode&&0===e.currentTabIndex),m(),f("ngIf",e.isPkEditMode&&1===e.currentTabIndex),m(),f("ngIf",e.isFkEditMode&&2===e.currentTabIndex),m(),f("ngIf",e.isIndexEditMode&&-1===e.currentTabIndex),m(),f("ngIf",e.isSequenceEditMode&&-1===e.currentTabIndex)}}let Due=(()=>{class t{constructor(e,i,o,r,a,s,c,u){this.data=e,this.dialog=i,this.snackbar=o,this.conversion=r,this.sidenav=a,this.tableUpdatePubSub=s,this.fb=c,this.fetchSerice=u,this.currentObject=null,this.typeMap={},this.defaultTypeMap={},this.autoGenMap={},this.ddlStmts={},this.fkData=[],this.tableData=[],this.currentDatabase="spanner",this.indexData=[],this.sequenceData={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.updateSidebar=new Ne,this.ObjectExplorerNodeType=jt,this.conv={},this.interleaveParentName=null,this.localTableData=[],this.localIndexData=[],this.localSequenceData={},this.isMiddleColumnCollapse=!1,this.isPostgreSQLDialect=!1,this.processedAutoGenMap={},this.sequenceKinds=[],this.autoGenSupported=!1,this.foreignKeyActionsSupported=!1,this.srcDisplayedColumns=["srcOrder","srcColName","srcDataType","srcColMaxLength","srcIsPk","srcIsNotNull"],this.spDisplayedColumns=["spColName","spDataType","spColMaxLength","spIsPk","spIsNotNull","dropButton"],this.displayedFkColumns=["srcName","srcColumns","srcReferTable","srcReferColumns","spName","spColumns","spReferTable","spReferColumns","dropButton"],this.displayedPkColumns=["srcOrder","srcColName","srcDataType","srcIsPk","srcIsNotNull","spOrder","spColName","spDataType","spIsPk","spIsNotNull","dropButton"],this.indexDisplayedColumns=["srcIndexColName","srcSortBy","srcIndexOrder","spIndexColName","spSortBy","spIndexOrder","dropButton"],this.sequenceDisplayedColumns=["spSeqName","spSequenceKind","spSkipRangeMin","spSkipRangeMax","spStartWithCounter"],this.spDataSource=[],this.srcDataSource=[],this.fkDataSource=[],this.pkDataSource=[],this.pkData=[],this.isPkEditMode=!1,this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isObjectSelected=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.pkArray=this.fb.array([]),this.fkArray=this.fb.array([]),this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.currentTabIndex=0,this.addedColumnName="",this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.indexColumnNames=[],this.shardIdCol="",this.addColumnForm=new ti({columnName:new U("",[ee.required])}),this.addIndexKeyForm=new ti({columnName:new U("",[ee.required]),ascOrDesc:new U("",[ee.required])}),this.addedPkColumnName="",this.addPkColumnForm=new ti({columnName:new U("",[ee.required])}),this.pkObj={},this.dataTypesWithColLen=In.DataTypes,this.spColspan=6,this.srcColspan=6}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),this.autoGenSupported=kN.includes(this.srcDbName),(this.srcDbName==ir.MySQL||this.srcDbName==ir.Postgres)&&(this.foreignKeyActionsSupported=!0)}ngOnChanges(e){this.fkData=e.fkData?.currentValue||this.fkData,this.currentObject=e.currentObject?.currentValue||this.currentObject,this.tableData=e.tableData?.currentValue||this.tableData,this.indexData=e.indexData?.currentValue||this.indexData,this.sequenceData=e.sequenceData?.currentValue||this.sequenceData,this.currentDatabase=e.currentDatabase?.currentValue||this.currentDatabase,this.currentTabIndex=this.currentObject?.type===jt.Index||this.currentObject?.type===jt.Sequence?-1:0,this.isObjectSelected=!!this.currentObject,this.pkData=this.conversion.getPkMapping(this.tableData),this.interleaveParentName=this.getInterleaveParentFromConv(),this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isPkEditMode=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.interleaveParentName=this.getInterleaveParentFromConv(),this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.localIndexData=JSON.parse(JSON.stringify(this.indexData)),this.localSequenceData=JSON.parse(JSON.stringify(this.sequenceData)),this.srcDbName==ir.MySQL&&!this.spDisplayedColumns.includes("spAutoGen")&&(this.spDisplayedColumns.splice(2,0,"spAutoGen"),this.displayedPkColumns.splice(8,0,"spAutoGen"),this.srcDisplayedColumns.splice(2,0,"srcAutoGen"),this.displayedPkColumns.splice(2,0,"srcAutoGen"),this.spColspan++,this.srcColspan++),this.foreignKeyActionsSupported&&!this.displayedFkColumns.includes("srcOnDelete")&&(this.displayedFkColumns.splice(4,0,"srcOnDelete","srcOnUpdate"),this.displayedFkColumns.splice(10,0,"spOnDelete","spOnUpdate")),this.currentObject?.type===jt.Table?(this.checkIsInterleave(),this.interleaveObj=this.data.tableInterleaveStatus.subscribe(i=>{this.interleaveStatus=i}),this.setSrcTableRows(),this.setSpTableRows(),this.setColumnsToAdd(),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.setFkRows(),this.updateSpTableSuggestion(),this.setShardIdColumn(),this.processedAutoGenMap=IN(this.autoGenMap)):this.currentObject?.type===jt.Index?(this.indexOrderValidation(),this.setIndexRows()):this.currentObject?.type===jt.Sequence&&(this.setSequence(),this.fetchSerice.getSequenceKind().subscribe(i=>{this.sequenceKinds=i})),this.data.getSummary()}setSpTableRows(){this.spRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(e.spOrder){let i=new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength,[ee.required]),spAutoGen:new U(e.spAutoGen)});this.dataTypesWithColLen.indexOf(e.spDataType.toString())>-1?(i.get("spColMaxLength")?.setValidators([ee.required,ee.pattern("([1-9][0-9]*|MAX)")]),(void 0===e.spColMaxLength||"MAX"!==e.spColMaxLength&&(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.ByteMaxLength))&&i.get("spColMaxLength")?.setValue("MAX")):i.controls.spColMaxLength.clearValidators(),i.controls.spColMaxLength.updateValueAndValidity(),this.spRowArray.push(i)}}),this.spDataSource=this.spRowArray.controls}setSrcTableRows(){this.srcRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(""!=e.spColName)this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.spOrder),spColName:new U(e.spColName),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength),spAutoGen:new U(e.spAutoGen)}));else{let i="",o=e.srcColMaxLength;void 0===this.defaultTypeMap[e.srcDataType]?(i="STRING",o="MAX"):i=this.defaultTypeMap[e.srcDataType].Name,""==o&&("STRING"==i||"BYTES"==i)&&(o="MAX"),this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.srcColName),spDataType:new U(i),spIsPk:new U(e.srcIsPk),spIsNotNull:new U(e.srcIsNotNull),spColMaxLength:new U(o),spAutoGen:new U(e.spAutoGen)}))}}),this.srcDataSource=this.srcRowArray.controls}setColumnsToAdd(){this.localTableData.forEach(e=>{e.spColName||this.srcRowArray.value.forEach(i=>{e.srcColName==i.srcColName&&""!=i.srcColName&&(this.droppedColumns.push(i),this.droppedSourceColumns.push(i.srcColName))})})}toggleEdit(){this.currentTabIndex=0,this.isEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.setSpTableRows(),this.isEditMode=!1):this.isEditMode=!0}saveColumnTable(){this.isEditMode=!1;let i,e={UpdateCols:{}};this.conversion.pgSQLToStandardTypeTypeMap.subscribe(o=>{i=o}),this.spRowArray.value.forEach((o,r)=>{for(let a=0;aIn.StringMaxLength||"BYTES"===o.spDataType&&"number"==typeof o.spColMaxLength&&o.spColMaxLength>In.ByteMaxLength)&&(o.spColMaxLength="MAX"),"number"==typeof o.spColMaxLength&&(o.spColMaxLength=o.spColMaxLength.toString()),"STRING"!=o.spDataType&&"BYTES"!=o.spDataType&&"VARCHAR"!=o.spDataType&&(o.spColMaxLength=""),o.srcId==this.tableData[a].srcId&&""!=this.tableData[a].srcId){e.UpdateCols[this.tableData[a].srcId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen};break}o.spId==this.tableData[a].spId&&(e.UpdateCols[this.tableData[a].spId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen})}}),this.droppedColumns.forEach(o=>{e.UpdateCols[o.spId]={Add:!1,Rename:"",NotNull:"",Removed:!0,ToType:"",MaxColLength:"",AutoGen:{Name:"",GenerationType:""}}}),this.data.reviewTableUpdate(this.currentObject.id,e).subscribe({next:o=>{""==o?(this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("reviewChanges"),this.tableUpdatePubSub.setTableUpdateDetail({tableName:this.currentObject.name,tableId:this.currentObject.id,updateDetail:e}),this.isEditMode=!0):(this.dialog.open(Uo,{data:{message:o,type:"error"},maxWidth:"500px"}),this.isEditMode=!0)}})}addNewColumn(){this.dialog.open(Gae,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{dialect:this.conv.SpDialect,tableId:this.currentObject?.id}})}addNewSequence(){this.dialog.open(FN,MN),this.updateSidebar.emit(!0)}setColumn(e){this.addedColumnName=e}restoreColumn(){let e=this.tableData.map(r=>r.srcColName).indexOf(this.addedColumnName),i=this.droppedColumns.map(r=>r.srcColName).indexOf(this.addedColumnName);this.localTableData[e].spColName=this.droppedColumns[i].spColName,this.localTableData[e].spDataType=this.droppedColumns[i].spDataType,this.localTableData[e].spOrder=-1,this.localTableData[e].spIsPk=this.droppedColumns[i].spIsPk,this.localTableData[e].spIsNotNull=this.droppedColumns[i].spIsNotNull,this.localTableData[e].spColMaxLength=this.droppedColumns[i].spColMaxLength,this.localTableData[e].spAutoGen=this.droppedColumns[i].spAutoGen;let o=this.droppedColumns.map(r=>r.spColName).indexOf(this.addedColumnName);o>-1&&(this.droppedColumns.splice(o,1),this.droppedSourceColumns.indexOf(this.addedColumnName)>-1&&this.droppedSourceColumns.splice(this.droppedSourceColumns.indexOf(this.addedColumnName),1)),this.setSpTableRows()}dropColumn(e){let i=e.get("srcColName").value,o=e.get("srcId").value,r=e.get("spId").value,a=""!=o?o:r,s=e.get("spColName").value,c=this.getAssociatedIndexs(a);if(this.checkIfPkColumn(a)||0!=c.length){let u="",p="",g="";this.checkIfPkColumn(a)&&(u=" Primary key"),0!=c.length&&(p=` Index ${c}`),""!=u&&""!=p&&(g=" and"),this.dialog.open(Uo,{data:{message:`Column ${s} is a part of${u}${g}${p}. Remove the dependencies from respective tabs before dropping the Column. `,type:"error"},maxWidth:"500px"})}else this.spRowArray.value.forEach((u,p)=>{u.spId===r&&this.droppedColumns.push(u)}),this.dropColumnFromUI(r),""!==i&&this.droppedSourceColumns.push(i)}checkIfPkColumn(e){let i=!1;return null!=this.conv.SpSchema[this.currentObject.id].PrimaryKeys&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(o=>o.ColId).includes(e)&&(i=!0),i}setShardIdColumn(){void 0!==this.conv.SpSchema[this.currentObject.id]&&(this.shardIdCol=this.conv.SpSchema[this.currentObject.id].ShardIdColumn)}getAssociatedIndexs(e){let i=[];return null!=this.conv.SpSchema[this.currentObject.id].Indexes&&this.conv.SpSchema[this.currentObject.id].Indexes.forEach(o=>{o.Keys.map(r=>r.ColId).includes(e)&&i.push(o.Name)}),i}dropColumnFromUI(e){this.localTableData.forEach((i,o)=>{i.spId==e&&(i.spColName="",i.spDataType="",i.spIsNotNull=!1,i.spIsPk=!1,i.spOrder="",i.spColMaxLength="",i.spAutoGen={Name:"",GenerationType:""})}),this.setSpTableRows()}updateSpTableSuggestion(){this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.localTableData.forEach(e=>{const i=e.srcDataType,o=e.spDataType;let r="";this.typeMap[i]?.forEach(a=>{o==a.DiplayT&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay.push(""!==r),this.spTableSuggestion.push(r)})}spTableEditSuggestionHandler(e,i){let r="";this.typeMap[this.localTableData[e].srcDataType].forEach(a=>{i==a.T&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay[e]=""!==r,this.spTableSuggestion[e]=r}compareAutoGen(e,i){return e&&i?e.Name===i.Name&&e.GenerationType===i.GenerationType:e===i}setPkRows(){this.pkArray=this.fb.array([]),this.pkOrderValidation();var e=new Array,i=new Array;this.pkData.forEach(o=>{o.srcIsPk&&e.push({srcColName:o.srcColName,srcDataType:o.srcDataType,srcIsNotNull:o.srcIsNotNull,srcIsPk:o.srcIsPk,srcOrder:o.srcOrder,srcId:o.srcId,srcAutoGen:o.srcAutoGen}),o.spIsPk&&i.push({spColName:o.spColName,spDataType:o.spDataType,spIsNotNull:o.spIsNotNull,spIsPk:o.spIsPk,spOrder:o.spOrder,spId:o.spId,spAutoGen:o.spAutoGen})}),i.sort((o,r)=>o.spOrder-r.spOrder);for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);or.spColName).indexOf(this.addedPkColumnName),i=this.localTableData[e],o=1;this.localTableData[e].spIsPk=!0,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),e=this.pkData.findIndex(r=>r.srcId===i.srcId||r.spId==i.spId),this.pkArray.value.forEach(r=>{r.spIsPk&&(o+=1);for(let a=0;a{i.spIsPk&&e.push(i.spColName)});for(let i=0;i{if(this.pkData[i].spId===this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].ColId)this.pkData[i].spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].Order;else{let o=this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);e.spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[o]?.Order}}:(e,i)=>{let o=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);-1!==o&&(e.spOrder=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys[o].Order)})}pkOrderValidation(){let e=this.pkData.filter(i=>i.spIsPk).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.pkData.forEach(r=>{r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{"number"==typeof o.spOrder&&o.spOrder{o.spIsPk&&i.push({ColId:o.spId,Desc:typeof this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId)<"u"&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId).Desc,Order:parseInt(o.spOrder)})}),this.pkObj.TableId=e,this.pkObj.Columns=i}togglePkEdit(){this.currentTabIndex=1,this.isPkEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.pkData=this.conversion.getPkMapping(this.tableData),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.isPkEditMode=!1):this.isPkEditMode=!0}savePk(){if(this.pkArray.value.forEach(e=>{for(let i=0;i{o&&this.data.removeInterleave(""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.currentObject.id:this.conv.SpSchema[e].Id).pipe(Pt(1)).subscribe(a=>{this.updatePk()})}):this.updatePk()}}updatePk(){this.isPkEditMode=!1,this.data.updatePk(this.pkObj).subscribe({next:e=>{""==e?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:e,type:"error"},maxWidth:"500px"}),this.isPkEditMode=!0)}})}dropPk(e){let i=this.localTableData.map(a=>a.spColName).indexOf(e.value.spColName);this.localTableData[i].spId==(this.conv.SyntheticPKeys[this.currentObject.id]?this.conv.SyntheticPKeys[this.currentObject.id].ColId:"")?this.dialog.open(Uo,{data:{message:"Removing this synthetic id column from primary key will drop the column from the table",title:"Confirm removal of synthetic id",type:"warning"},maxWidth:"500px"}).afterClosed().subscribe(s=>{s&&this.dropPkHelper(i,e.value.spOrder)}):this.dropPkHelper(i,e.value.spOrder)}dropPkHelper(e,i){this.localTableData[e].spIsPk=!1,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),this.pkArray.value.forEach(o=>{for(let r=0;r{"number"==typeof o.spOrder&&o.spOrder>i&&(o.spOrder=Number(o.spOrder)-1)}),this.setAddPkColumnList(),this.setPkRows()}setFkRows(){this.fkArray=this.fb.array([]);var e=new Array,i=new Array;this.fkData.forEach(o=>{e.push({srcName:o.srcName,srcColumns:o.srcColumns,srcRefTable:o.srcReferTable,srcRefColumns:o.srcReferColumns,srcOnDelete:o.srcOnDelete,srcOnUpdate:o.srcOnUpdate,Id:o.srcFkId}),""!=o.spName&&i.push({spName:o.spName,spColumns:o.spColumns,spRefTable:o.spReferTable,spRefColumns:o.spReferColumns,spOnDelete:o.spOnDelete,spOnUpdate:o.spOnUpdate,Id:o.spFkId,spColIds:o.spColIds,spReferColumnIds:o.spReferColumnIds,spReferTableId:o.spReferTableId})});for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);o{e.push({Name:i.spName,ColIds:i.spColIds,ReferTableId:i.spReferTableId,ReferColumnIds:i.spReferColumnIds,OnDelete:i.spOnDelete,OnUpdate:i.spOnUpdate,Id:i.spFkId})}),this.data.updateFkNames(this.currentObject.id,e).subscribe({next:i=>{""==i?this.isFkEditMode=!1:this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"})}})}dropFk(e){this.fkData.forEach(i=>{i.spName==e.get("spName").value&&(i.spName="",i.spColumns=[],i.spReferTable="",i.spReferColumns=[],i.spColIds=[],i.spReferColumnIds=[],i.spReferTableId="",i.spOnDelete="",i.spOnUpdate="")}),this.setFkRows()}getRemovedFkIndex(e){let i=-1;return this.fkArray.value.forEach((o,r)=>{o.spName===e.get("spName").value&&(i=r)}),i}removeInterleave(){this.data.removeInterleave(this.currentObject.id).pipe(Pt(1)).subscribe(i=>{""===i&&this.snackbar.openSnackBar("Interleave removed and foreign key restored successfully","Close",5)})}checkIsInterleave(){this.currentObject&&!this.currentObject?.isDeleted&&this.currentObject?.isSpannerNode&&this.data.getInterleaveConversionForATable(this.currentObject.id)}setInterleave(){this.data.setInterleave(this.currentObject.id)}getInterleaveParentFromConv(){return this.currentObject?.type===jt.Table&&this.currentObject.isSpannerNode&&!this.currentObject.isDeleted&&""!=this.conv.SpSchema[this.currentObject.id].ParentId?this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentId]?.Name:null}setIndexRows(){this.spRowArray=this.fb.array([]);const e=this.localIndexData.map(i=>i.spColName?i.spColName:"").filter(i=>""!=i);this.indexColumnNames=this.conv.SpSchema[this.currentObject.parentId]?.ColIds?.filter(i=>!e.includes(this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name)).map(i=>this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name),this.localIndexData.forEach(i=>{this.spRowArray.push(new ti({srcOrder:new U(i.srcOrder),srcColName:new U(i.srcColName),srcDesc:new U(i.srcDesc),spOrder:new U(i.spOrder),spColName:new U(i.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDesc:new U(i.spDesc)}))}),this.spDataSource=this.spRowArray.controls}setIndexOrder(){this.spRowArray.value.forEach(e=>{for(let i=0;i""!=i.spColName).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.localIndexData.forEach(r=>{""!=r.spColName&&r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{o.spOrder!!i.spColId).map(i=>({ColId:i.spColId,Desc:i.spDesc,Order:i.spOrder})),Id:this.currentObject.id}),0==e[0].Keys.length?this.dropIndex():(this.data.updateIndex(this.currentObject?.parentId,e).subscribe({next:i=>{""==i?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"}),this.isIndexEditMode=!0)}}),this.addIndexKeyForm.controls.columnName.setValue(""),this.addIndexKeyForm.controls.ascOrDesc.setValue(""),this.addIndexKeyForm.markAsUntouched(),this.data.getSummary(),this.isIndexEditMode=!1)}saveSequence(){this.spRowArray.value.forEach(e=>{this.data.updateSequence({Name:e.spSeqName?e.spSeqName:"",Id:this.currentObject.id,SequenceKind:e.spSequenceKind?e.spSequenceKind:"",SkipRangeMax:e.spSkipRangeMax?e.spSkipRangeMax:"",SkipRangeMin:e.spSkipRangeMin?e.spSkipRangeMin:"",StartWithCounter:e.spStartWithCounter?e.spStartWithCounter:""}).pipe(Pt(1)).subscribe(()=>{})}),this.isSequenceEditMode=!1}dropIndex(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Index}}).afterClosed().subscribe(i=>{i===ys.Index&&(this.data.dropIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}dropSequence(){let e=Jne;e.data={name:this.currentObject?.name,type:ys.Sequence},this.dialog.open(xw,e).afterClosed().subscribe(o=>{o===ys.Sequence&&(this.data.dropSequence(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}restoreIndex(){this.data.restoreIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1)}),this.currentObject=null}dropIndexKey(e){this.localIndexData[e].srcColName?(this.localIndexData[e].spColName="",this.localIndexData[e].spColId="",this.localIndexData[e].spDesc="",this.localIndexData[e].spOrder=""):this.localIndexData.splice(e,1),this.setIndexRows()}addIndexKey(){let e=0;this.localIndexData.forEach(i=>{i.spColName&&(e+=1)}),this.localIndexData.push({spColName:this.addIndexKeyForm.value.columnName,spDesc:"desc"===this.addIndexKeyForm.value.ascOrDesc,spOrder:e+1,srcColName:"",srcDesc:void 0,srcOrder:"",srcColId:void 0,spColId:this.currentObject?this.conversion.getColIdFromSpannerColName(this.addIndexKeyForm.value.columnName,this.currentObject.parentId,this.conv):""}),this.setIndexRows()}restoreSpannerTable(){this.data.restoreTable(this.currentObject.id).pipe(Pt(1)).subscribe(e=>{""===e&&(this.isObjectSelected=!1),this.data.getConversionRate(),this.data.getDdl()}),this.currentObject=null}dropTable(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Table}}).afterClosed().subscribe(i=>{i===ys.Table&&(this.data.dropTable(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.currentObject=null)})}tabChanged(e){this.currentTabIndex=e.index}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse,this.sidenav.setMiddleColComponent(this.isMiddleColumnCollapse)}tableInterleaveWith(e){if(""!=this.conv.SpSchema[e].ParentId)return this.conv.SpSchema[e].ParentId;let i="";return Object.keys(this.conv.SpSchema).forEach(o=>{""!=this.conv.SpSchema[o].ParentId&&this.conv.SpSchema[o].ParentId==e&&(i=o)}),i}isPKPrefixModified(e,i){let o,r;this.conv.SpSchema[e].ParentId!=i?(o=this.pkObj.Columns,r=this.conv.SpSchema[i].PrimaryKeys):(r=this.pkObj.Columns,o=this.conv.SpSchema[i].PrimaryKeys);for(let a=0;a{class t{constructor(e,i){this.sidenavService=e,this.data=i,this.dataSource=[],this.currentDataSource=[],this.displayedColumns=["order","name","type","objectType","associatedObject","enabled","view"],this.currentObject=null,this.lengthOfRules=new Ne}ngOnInit(){this.dataSource=[],this.data.rule.subscribe({next:e=>{this.currentDataSource=e,this.updateRules()}})}ngOnChanges(){this.updateRules()}updateRules(){if(this.currentDataSource){let e=[],i=[];e=this.currentDataSource.filter(o=>"global_datatype_change"===o?.Type||"add_shard_id_primary_key"===o?.Type||"edit_column_max_length"===o?.Type&&"All table"===o?.AssociatedObjects),this.currentObject&&("tableName"===this.currentObject?.type||"indexName"===this.currentObject?.type)&&(i=this.currentDataSource.filter(o=>o?.AssociatedObjects===this.currentObject?.id||o?.AssociatedObjects===this.currentObject?.parentId||o?.AssociatedObjects===this.currentObject?.name||o?.AssociatedObjects===this.currentObject?.parent).map(o=>{let r="";return"tableName"===this.currentObject?.type?r=this.currentObject.name:"indexName"===this.currentObject?.type&&(r=this.currentObject.parent),o.AssociatedObjects=r,o})),this.dataSource=[...e,...i],this.lengthOfRules.emit(this.dataSource.length)}else this.dataSource=[],this.lengthOfRules.emit(0)}openSidenav(){this.sidenavService.openSidenav(),this.sidenavService.setSidenavComponent("rule"),this.sidenavService.setSidenavRuleType(""),this.sidenavService.setRuleData({}),this.sidenavService.setDisplayRuleFlag(!1)}viewSidenavRule(e){let i=[];for(let o=0;o[t],Kue=(t,n,e,i,o)=>({"middle-column-expand":t,"middle-column-collapse":n,"middle-column-full":e,display:i,hidden:o}),Zue=(t,n,e,i,o,r)=>({"right-column-half-expand":t,"right-column-full-expand":n,"right-column-collapse":e,"middle-column-hide":i,display:o,hidden:r}),jN=t=>({"blue-font-color":t});let Yue=(()=>{class t{constructor(e,i,o,r,a,s,c){this.data=e,this.conversion=i,this.dialog=o,this.sidenav=r,this.router=a,this.clickEvent=s,this.fetch=c,this.fkData=[],this.tableData=[],this.indexData=[],this.sequenceData={},this.typeMap=!1,this.defaultTypeMap=!1,this.conversionRates={},this.autoGenMap=!1,this.isLeftColumnCollapse=!1,this.isRightColumnCollapse=!0,this.isMiddleColumnCollapse=!0,this.isOfflineStatus=!1,this.spannerTree=[],this.srcTree=[],this.issuesAndSuggestionsLabel="ISSUES AND SUGGESTIONS",this.rulesLabel="RULES (0)",this.objectExplorerInitiallyRender=!1,this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0},this.currentDatabase="spanner",this.dialect="",this.currentObject=null}ngOnInit(){this.conversion.getStandardTypeToPGSQLTypemap(),this.conversion.getPGSQLToStandardTypeTypemap(),this.ddlsumconvObj=this.data.getRateTypemapAndSummary(),this.typemapObj=this.data.typeMap.subscribe(e=>{this.typeMap=e}),this.defaultTypemapObj=this.data.defaultTypeMap.subscribe(e=>{this.defaultTypeMap=e}),this.ddlObj=this.data.ddl.subscribe(e=>{this.ddlStmts=e}),this.sidenav.setMiddleColumnComponent.subscribe(e=>{this.isMiddleColumnCollapse=!e}),this.data.autoGenMap&&(this.autoGenMapObj=this.data.autoGenMap.subscribe(e=>{this.autoGenMap=e})),this.data.treeUpdate&&(this.rerenderObj=this.data.treeUpdate.subscribe(()=>{this.reRenderObjectExplorerSpanner()})),this.convObj=this.data.conv.subscribe(e=>{Object.keys(e.SrcSchema).length<=0&&this.router.navigate(["/"]);const i=this.isIndexAddedOrRemoved(e);e&&this.conv&&Object.keys(e?.SpSchema).length!=Object.keys(this.conv?.SpSchema).length&&(this.conv=e,this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc()),this.conv=e,this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),i&&this.conversionRates&&this.reRenderObjectExplorerSpanner(),!this.objectExplorerInitiallyRender&&this.conversionRates&&(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0),this.currentObject&&this.currentObject.type===jt.Table&&(this.fkData=this.currentObject?this.conversion.getFkMapping(this.currentObject.id,e):[],this.tableData=this.currentObject?this.conversion.getColumnMapping(this.currentObject.id,e):[]),this.currentObject&&this.currentObject?.type===jt.Index&&!i&&(this.indexData=this.conversion.getIndexMapping(this.currentObject.parentId,this.conv,this.currentObject.id)),this.dialect="postgresql"===this.conv.SpDialect?"PostgreSQL":"Google Standard SQL"}),this.converObj=this.data.conversionRate.subscribe(e=>{this.conversionRates=e,this.updateConversionRatePercentages(),this.conv?(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0):this.objectExplorerInitiallyRender=!1}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}})}ngOnDestroy(){this.typemapObj.unsubscribe(),this.convObj.unsubscribe(),this.ddlObj.unsubscribe(),this.ddlsumconvObj.unsubscribe(),this.autoGenMapObj&&this.autoGenMapObj.unsubscribe(),this.rerenderObj&&this.rerenderObj.unsubscribe()}updateConversionRatePercentages(){let e=Object.keys(this.conversionRates).length;this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0};for(const i in this.conversionRates)"NONE"===this.conversionRates[i]||"EXCELLENT"===this.conversionRates[i]?this.conversionRateCount.good+=1:"GOOD"===this.conversionRates[i]||"OK"===this.conversionRates[i]?this.conversionRateCount.ok+=1:this.conversionRateCount.bad+=1;if(e>0)for(let i in this.conversionRatePercentages)this.conversionRatePercentages[i]=Number((this.conversionRateCount[i]/e*100).toFixed(2))}reRenderObjectExplorerSpanner(){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates)}reRenderObjectExplorerSrc(){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates)}changeCurrentObject(e){e.type===jt.Table?(this.currentObject=e,this.tableData=this.conversion.getColumnMapping(this.currentObject.id,this.conv),this.fkData=[],this.fkData=this.conversion.getFkMapping(this.currentObject.id,this.conv)):e.type===jt.Index?(this.currentObject=e,this.indexData=this.conversion.getIndexMapping(e.parentId,this.conv,e.id)):e.type===jt.Sequence?(this.currentObject=e,this.sequenceData=this.conversion.getSequenceMapping(e.id,this.conv)):this.currentObject=null}changeCurrentDatabase(e){this.currentDatabase=e}updateIssuesLabel(e){setTimeout(()=>{this.issuesAndSuggestionsLabel=`ISSUES AND SUGGESTIONS (${e})`})}updateRulesLabel(e){setTimeout(()=>{this.rulesLabel=`RULES (${e})`})}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse}rightColumnToggle(){this.isRightColumnCollapse=!this.isRightColumnCollapse}openAssessment(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("assessment");let e="";if(localStorage.getItem(Wi.Type)==Jn.DirectConnect){let r=JSON.parse(localStorage.getItem(Wi.Config));e=r?.hostName+" : "+r?.port}else e=this.conv.DatabaseName;this.clickEvent.setViewAssesmentData({srcDbType:this.srcDbName,connectionDetail:e,conversionRates:this.conversionRateCount})}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}downloadArtifacts(){let e=new RN,i=`${this.conv.DatabaseName}`;this.fetch.getDStructuredReport().subscribe({next:o=>{let r=JSON.stringify(o).replace(/9223372036854776000/g,"9223372036854775807");e.file(i+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(i+"_migration_textReport.txt",s),this.fetch.getDSpannerDDL().subscribe({next:c=>{e.file(i+"_spannerDDL.txt",c);let u=JSON.stringify(this.conv).replace(/9223372036854776000/g,"9223372036854775807");e.file(`${this.conv.SessionName}_${this.conv.DatabaseType}_${i}.json`,u),e.generateAsync({type:"blob"}).then(g=>{var b=document.createElement("a");b.href=URL.createObjectURL(g),b.download=`${i}_artifacts`,b.click()})}})}})}})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),e.download=`${this.conv.DatabaseName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_migration_textReport.txt`,e.click()}})}downloadDDL(){var e=document.createElement("a");this.fetch.getDSpannerDDL().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_spannerDDL.txt`,e.click()}})}updateSpannerTable(e){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates,e.text,e.order)}updateSrcTable(e){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates,e.text,e.order)}isIndexAddedOrRemoved(e){if(this.conv){let i=0,o=0;return Object.entries(this.conv.SpSchema).forEach(r=>{i+=r[1].Indexes?r[1].Indexes.length:0}),Object.entries(e.SpSchema).forEach(r=>{o+=r[1].Indexes?r[1].Indexes.length:0}),i!==o}return!1}prepareMigration(){this.fetch.getTableWithErrors().subscribe({next:e=>{if(null!=e&&0!=e.length){let i="Please fix the errors for the following tables to move ahead: "+e.map(o=>o.Name).join(", ");this.dialog.open(Uo,{data:{message:i,type:"error",title:"Error in Spanner Draft"},maxWidth:"500px"})}else this.isOfflineStatus?this.dialog.open(Uo,{data:{message:"Please configure spanner project id and instance id to proceed",type:"error",title:"Configure Spanner"},maxWidth:"500px"}):0==Object.keys(this.conv.SpSchema).length?this.dialog.open(Uo,{data:{message:"Please restore some table(s) to proceed with the migration",type:"error",title:"All tables skipped"},maxWidth:"500px"}):this.router.navigate(["/prepare-migration"])}})}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(pc),_(Hr),_(eo),_(Rn),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-workspace"]],decls:57,vars:61,consts:[[1,"header"],[1,"breadcrumb","vertical-center"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],[1,"header_action"],["matTooltip","Connect to a spanner instance to run migration",3,"matTooltipDisabled"],["mat-button","",3,"click"],["mat-button","",3,"click",4,"ngIf"],[1,"artifactsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],[1,"container"],[1,"summary"],[1,"spanner-tab-link",3,"click"],[1,"columns"],[1,"column-left",3,"ngClass"],[3,"spannerTree","srcTree","srcDbName","selectedDatabase","selectObject","updateSpannerTable","updateSrcTable","leftCollaspe","middleCollapse"],[1,"column-middle",3,"ngClass"],[3,"currentObject","tableData","indexData","sequenceData","typeMap","autoGenMap","ddlStmts","fkData","currentDatabase","defaultTypeMap","updateSidebar"],[1,"column-right",3,"ngClass"],[3,"ngClass","label"],[3,"currentObject","changeIssuesLabel"],[3,"currentObject","lengthOfRules"],["id","right-column-toggle-button",3,"click"],[3,"ngClass"]],template:function(i,o){if(1&i&&(d(0,"div")(1,"div",0)(2,"div",1)(3,"a",2),h(4,"Select Source"),l(),d(5,"span"),h(6,">"),l(),d(7,"a",3)(8,"b"),h(9),l()()(),d(10,"div",4)(11,"span",5)(12,"button",6),A("click",function(){return o.prepareMigration()}),h(13," PREPARE MIGRATION "),l()(),d(14,"button",6),A("click",function(){return o.openAssessment()}),h(15,"VIEW ASSESSMENT"),l(),y(16,Wue,2,0,"button",7),d(17,"span",8)(18,"button",9),A("click",function(){return o.downloadArtifacts()}),h(19," DOWNLOAD ARTIFACTS "),l(),d(20,"button",10)(21,"mat-icon",11),h(22,"expand_more"),l()(),d(23,"mat-menu",12,13)(25,"button",14),A("click",function(){return o.downloadTextReport()}),h(26,"Download Text Report"),l(),d(27,"button",14),A("click",function(){return o.downloadStructuredReport()}),h(28,"Download Structured Report"),l(),d(29,"button",14),A("click",function(){return o.downloadSession()}),h(30,"Download Session File"),l(),d(31,"button",14),A("click",function(){return o.downloadDDL()}),h(32,"Download Spanner DDL"),l()()()()(),d(33,"div",15)(34,"div",16),h(35),D(36,"br"),h(37," To make schema changes go to "),d(38,"a",17),A("click",function(){return o.spannerTab()}),h(39,"Spanner Draft"),l(),h(40," pane. "),l()(),d(41,"div",18)(42,"div",19)(43,"app-object-explorer",20),A("selectedDatabase",function(a){return o.changeCurrentDatabase(a)})("selectObject",function(a){return o.changeCurrentObject(a)})("updateSpannerTable",function(a){return o.updateSpannerTable(a)})("updateSrcTable",function(a){return o.updateSrcTable(a)})("leftCollaspe",function(){return o.leftColumnToggle()})("middleCollapse",function(){return o.middleColumnToggle()}),l()(),d(44,"div",21)(45,"app-object-detail",22),A("updateSidebar",function(){return o.reRenderObjectExplorerSpanner()}),l()(),d(46,"div",23)(47,"mat-tab-group")(48,"mat-tab",24)(49,"app-summary",25),A("changeIssuesLabel",function(a){return o.updateIssuesLabel(a)}),l()(),d(50,"mat-tab",24)(51,"app-rule",26),A("lengthOfRules",function(a){return o.updateRulesLabel(a)}),l()()(),d(52,"button",27),A("click",function(){return o.rightColumnToggle()}),d(53,"mat-icon",28),h(54,"first_page"),l(),d(55,"mat-icon",28),h(56,"last_page"),l()()()()()),2&i){const r=Ft(24);m(3),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(2),xe("Configure Schema (",o.dialect," Dialect)"),m(2),f("matTooltipDisabled",!o.isOfflineStatus),m(5),f("ngIf",!o.isOfflineStatus),m(4),f("matMenuTriggerFor",r),m(15),wv(" Estimation for ",o.srcDbName.toUpperCase()," to Spanner conversion: ",o.conversionRatePercentages.good,"% of tables can be converted automatically, ",o.conversionRatePercentages.ok,"% requires minimal conversion changes and ",o.conversionRatePercentages.bad,"% requires high complexity conversion changes. "),m(7),f("ngClass",hi(34,Dh,o.isLeftColumnCollapse?"left-column-collapse":"left-column-expand")),m(),f("spannerTree",o.spannerTree)("srcTree",o.srcTree)("srcDbName",o.srcDbName),m(),f("ngClass",function UM(t,n,e,i,o,r,a,s){const c=no()+t,u=be(),p=Wo(u,c,e,i,o,r);return tn(u,c+4,a)||p?Nr(u,c+5,s?n.call(s,e,i,o,r,a):n(e,i,o,r,a)):Xd(u,c+5)}(36,Kue,o.isLeftColumnCollapse,!o.isLeftColumnCollapse,!o.isMiddleColumnCollapse,o.isRightColumnCollapse,!o.isRightColumnCollapse)),m(),f("currentObject",o.currentObject)("tableData",o.tableData)("indexData",o.indexData)("sequenceData",o.sequenceData)("typeMap",o.typeMap)("autoGenMap",o.autoGenMap)("ddlStmts",o.ddlStmts)("fkData",o.fkData)("currentDatabase",o.currentDatabase)("defaultTypeMap",o.defaultTypeMap),m(),f("ngClass",function $M(t,n,e,i,o,r,a,s,c){const u=no()+t,p=be(),g=Wo(p,u,e,i,o,r);return js(p,u+4,a,s)||g?Nr(p,u+6,c?n.call(c,e,i,o,r,a,s):n(e,i,o,r,a,s)):Xd(p,u+6)}(42,Zue,!o.isRightColumnCollapse&&!o.isLeftColumnCollapse,!o.isRightColumnCollapse&&o.isLeftColumnCollapse,o.isRightColumnCollapse,!o.isMiddleColumnCollapse,o.isMiddleColumnCollapse,!o.isMiddleColumnCollapse)),m(2),f("ngClass",hi(51,jN,hi(49,Dh,o.updateIssuesLabel)))("label",o.issuesAndSuggestionsLabel),m(),f("currentObject",o.currentObject),m(),f("ngClass",hi(55,jN,hi(53,Dh,o.updateRulesLabel)))("label",o.rulesLabel),m(),f("currentObject",o.currentObject),m(2),f("ngClass",hi(57,Dh,o.isRightColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(59,Dh,o.isRightColumnCollapse?"hidden":"display"))}},dependencies:[yr,It,qr,zE,Yt,Mi,jl,wa,zl,eg,BC,vn,Bre,Pae,Due,que],styles:["app-object-detail[_ngcontent-%COMP%]{height:100%}.vertical-center[_ngcontent-%COMP%]{display:flex;align-items:center}.columns[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;border-top:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3;height:calc(100vh - 222px)}.artifactsButtons[_ngcontent-%COMP%]{white-space:nowrap}.container[_ngcontent-%COMP%]{padding:7px 20px;margin-bottom:20px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{font-weight:lighter}.container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 5px}.column-left[_ngcontent-%COMP%]{overflow:auto}.column-middle[_ngcontent-%COMP%]{width:48%;border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3;overflow:auto}.column-right[_ngcontent-%COMP%]{width:26%;position:relative;overflow:auto}.left-column-collapse[_ngcontent-%COMP%]{width:3%}.left-column-expand[_ngcontent-%COMP%]{width:26%}.middle-column-collapse[_ngcontent-%COMP%]{width:48%}.middle-column-expand[_ngcontent-%COMP%]{width:71%}.right-column-half-expand[_ngcontent-%COMP%]{width:80%}.right-column-collapse[_ngcontent-%COMP%]{width:26%}.right-column-full-expand[_ngcontent-%COMP%]{width:97%}.middle-column-hide[_ngcontent-%COMP%]{width:0%}.middle-column-full[_ngcontent-%COMP%]{width:100%}#right-column-toggle-button[_ngcontent-%COMP%]{border:none;background-color:inherit;position:absolute;top:10px;right:7px;z-index:100}#right-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer} .column-right .mat-mdc-tab-label .mat-mdc-tab-label-content{font-size:.8rem} .column-right .mat-mdc-tab-label{min-width:25px!important;padding:10px} .column-right .mat-mdc-tab-label.mat-mdc-tab-label-active{min-width:25px!important;padding:7px} .column-right .mat-mdc-tab-label-container{margin-right:40px} .column-right .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-right .mat-mdc-tab-header-pagination-after{margin-right:40px}.split-button-left[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:none;padding-right:1px}.split-button-right[_ngcontent-%COMP%]{box-shadow:none;width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;margin-right:7px}"]})}return t})(),Que=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.dialogRef=i,this.data=o,this.region="",this.spannerInstance="",this.dialect="",this.region=o.Region,this.spannerInstance=o.Instance,this.dialect=o.Dialect,this.targetDetailsForm=this.formBuilder.group({targetDb:["",[ee.required,ee.pattern("^[a-z][a-z0-9-_]{0,28}[a-z0-9]$")]]}),this.targetDetailsForm.setValue({targetDb:localStorage.getItem(yt.TargetDB)})}ngOnInit(){}updateTargetDetails(){let e=this.targetDetailsForm.value;localStorage.setItem(yt.TargetDB,e.targetDb),localStorage.setItem(yt.Dialect,e.dialect),localStorage.setItem(he.IsTargetDetailSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-target-details-form"]],decls:35,vars:5,consts:[["mat-dialog-content",""],[1,"target-detail-form",3,"formGroup"],["matTooltip","Schema & Schema and data migration: Specify new database name or existing database with empty schema. Data migration: Specify existing database with tables already created",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Target Database","type","text","formControlName","targetDb","ng-value","targetDetails.TargetDB"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Spanner Database Details"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"Spanner Database"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Min. 2 characters and Max. 30 characters. "),d(13,"a",6),h(14,"More Details"),l()()()(),D(15,"br")(16,"br"),d(17,"b"),h(18,"Region:"),l(),h(19),D(20,"br")(21,"br"),d(22,"b"),h(23,"Spanner Instance:"),l(),h(24),D(25,"br")(26,"br"),d(27,"b"),h(28,"Dialect:"),l(),h(29),l(),d(30,"div",7)(31,"button",8),h(32,"Cancel"),l(),d(33,"button",9),A("click",function(){return o.updateTargetDetails()}),h(34," Save "),l()()()),2&i&&(m(),f("formGroup",o.targetDetailsForm),m(18),xe(" ",o.region," "),m(5),xe(" ",o.spannerInstance," "),m(5),xe(" ",o.dialect," "),m(4),f("disabled",!o.targetDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.container[_ngcontent-%COMP%]{white-space:nowrap;overflow:auto;text-overflow:ellipsis}"]})}return t})();function Xue(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",10),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Jue(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function ehe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Select connection profile"),l(),d(4,"mat-select",12),y(5,Jue,2,2,"mat-option",13),l()()()),2&t){const e=C();m(5),f("ngForOf",e.profileList)}}function the(t,n){1&t&&(d(0,"div")(1,"mat-form-field",15)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",16),l()())}function ihe(t,n){1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Replication slot"),l(),D(4,"input",17),l(),D(5,"br"),d(6,"mat-form-field",11)(7,"mat-label"),h(8,"Publication name"),l(),D(9,"input",18),l()())}function nhe(t,n){if(1&t&&(d(0,"li",24)(1,"span",25),h(2),l(),d(3,"span")(4,"mat-icon",26),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function ohe(t,n){if(1&t&&(d(0,"div",27)(1,"span",25),h(2,"Test connection failed"),l(),d(3,"mat-icon",28),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorMsg)}}function rhe(t,n){1&t&&(d(0,"mat-icon",29),h(1," check_circle "),l())}function ahe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",19),h(5,"Learn More"),l()(),D(6,"br"),y(7,nhe,6,2,"li",20)(8,ohe,5,1,"div",21),D(9,"br"),d(10,"button",22),A("click",function(){return ie(e),ne(C(2).testConnection())}),h(11,"Test Connection"),l(),y(12,rhe,2,0,"mat-icon",23),l()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorMsg),m(2),f("disabled",!e.connectionProfileForm.valid),m(2),f("ngIf",e.testSuccess)}}function she(t,n){if(1&t&&(d(0,"div"),y(1,ahe,13,4,"div",6),l()),2&t){const e=C();m(),f("ngIf",e.isSource)}}let che=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.formBuilder=o,this.dialogRef=r,this.data=a,this.selectedProfile="",this.profileType="Source",this.profileList=[],this.ipList=[],this.selectedOption="new",this.profileOptions=[{value:"new",display:"Create a new connection profile"},{value:"existing",display:"Choose an existing connection profile"}],this.profileName="",this.errorMsg="",this.isSource=!1,this.sourceDatabaseType="",this.testSuccess=!1,this.testingSourceConnection=!1,this.isSource=a.IsSource,this.sourceDatabaseType=a.SourceDatabaseType,this.isSource||(this.profileType="Target"),this.connectionProfileForm=this.formBuilder.group({profileOption:["",ee.required],newProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingProfile:[],replicationSlot:[],publication:[]}),"postgres"==this.sourceDatabaseType&&this.isSource&&(this.connectionProfileForm.get("replicationSlot")?.addValidators([ee.required]),this.connectionProfileForm.controls.replicationSlot.updateValueAndValidity(),this.connectionProfileForm.get("publication")?.addValidators([ee.required]),this.connectionProfileForm.controls.publication.updateValueAndValidity()),this.getConnectionProfilesAndIps()}onItemChange(e){this.selectedOption=e,"new"==this.selectedOption?(this.connectionProfileForm.get("newProfile")?.setValidators([ee.required]),this.connectionProfileForm.controls.existingProfile.clearValidators(),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity()):(this.connectionProfileForm.controls.newProfile.clearValidators(),this.connectionProfileForm.get("existingProfile")?.addValidators([ee.required]),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity())}testConnection(){this.testingSourceConnection=!0,this.fetch.createConnectionProfile({Id:this.connectionProfileForm.value.newProfile,IsSource:this.isSource,ValidateOnly:!0}).subscribe({next:()=>{this.testingSourceConnection=!1,this.testSuccess=!0},error:o=>{this.testingSourceConnection=!1,this.testSuccess=!1,this.errorMsg=o.error}})}createConnectionProfile(){let e=this.connectionProfileForm.value;this.isSource&&(localStorage.setItem(yt.ReplicationSlot,e.replicationSlot),localStorage.setItem(yt.Publication,e.publication)),"new"===this.selectedOption?this.fetch.createConnectionProfile({Id:e.newProfile,IsSource:this.isSource,ValidateOnly:!1}).subscribe({next:()=>{this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.newProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.newProfile)),this.dialogRef.close()},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.dialogRef.close()}}):(this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.existingProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.existingProfile)),this.dialogRef.close())}ngOnInit(){}getConnectionProfilesAndIps(){this.fetch.getConnectionProfiles(this.isSource).subscribe({next:e=>{this.profileList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.isSource&&this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-connection-profile-form"]],decls:19,vars:9,consts:[["mat-dialog-content",""],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h3","header-title"],[1,"radio-button-container"],["formControlName","profileOption",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value","change"],["appearance","outline"],["formControlName","existingProfile","required","true","ng-value","selectedProfile",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter.",1,"new-connection-profile-input"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newProfile","required","true"],["matInput","","placeholder","Replication slot","type","text","formControlName","replicationSlot","required","true"],["matInput","","placeholder","Publication name","type","text","formControlName","publication","required","true"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists"],["class","connection-form-container",4,"ngFor","ngForOf"],["class","failure",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"span",2),h(3),l(),D(4,"br"),d(5,"div",3)(6,"mat-radio-group",4),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(7,Xue,2,2,"mat-radio-button",5),l()(),D(8,"br"),y(9,ehe,6,1,"div",6)(10,the,5,0,"div",6),D(11,"br"),y(12,ihe,10,0,"div",6)(13,she,2,1,"div",6),d(14,"div",7)(15,"button",8),h(16,"Cancel"),l(),d(17,"button",9),A("click",function(){return o.createConnectionProfile()}),h(18," Save "),l()()()()),2&i&&(m(),f("formGroup",o.connectionProfileForm),m(2),xe("",o.profileType," Connection Profile"),m(3),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.profileOptions),m(2),f("ngIf","existing"===o.selectedOption),m(),f("ngIf","new"===o.selectedOption),m(2),f("ngIf",o.isSource&&"postgres"==o.sourceDatabaseType),m(),f("ngIf","new"===o.selectedOption),m(4),f("disabled",!o.connectionProfileForm.valid||!o.testSuccess&&"new"===o.selectedOption&&o.isSource))},dependencies:[rn,It,Yt,Mi,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,vn,cg,lg,KC],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}"]})}return t})();function lhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",6),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function dhe(t,n){1&t&&D(0,"mat-spinner",19),2&t&&f("diameter",25)}function uhe(t,n){1&t&&(d(0,"mat-icon",20),h(1,"check_circle"),l())}function hhe(t,n){1&t&&(d(0,"mat-icon",21),h(1,"cancel"),l())}function mhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function phe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDump())}),d(2,"h4",8),h(3,"Load from database dump"),l(),h(4," Dump File "),d(5,"mat-form-field",9)(6,"mat-label"),h(7,"File path"),l(),d(8,"input",10),A("click",function(){return ie(e),ne(Ft(13).click())}),l(),y(9,dhe,1,1,"mat-spinner",11)(10,uhe,2,0,"mat-icon",12)(11,hhe,2,0,"mat-icon",13),l(),d(12,"input",14,15),A("change",function(o){return ie(e),ne(C().handleFileInput(o))}),l(),D(14,"br"),d(15,"button",16),h(16,"CANCEL"),l(),d(17,"button",17),h(18," SAVE "),l(),y(19,mhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.dumpFileForm),m(8),f("ngIf",e.uploadStart&&!e.uploadSuccess&&!e.uploadFail),m(),f("ngIf",e.uploadStart&&e.uploadSuccess),m(),f("ngIf",e.uploadStart&&e.uploadFail),m(6),f("disabled",!e.dumpFileForm.valid||!e.uploadSuccess),m(2),f("ngIf",""!=e.errorMsg)}}function fhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function ghe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDirectConnect())}),d(2,"h4",8),h(3,"Connect to Source Database"),l(),h(4," Connection Detail "),d(5,"mat-form-field",25)(6,"mat-label"),h(7,"Hostname"),l(),D(8,"input",26),l(),d(9,"mat-form-field",25)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",27),d(13,"mat-error"),h(14," Only numbers are allowed. "),l()(),D(15,"br"),d(16,"mat-form-field",25)(17,"mat-label"),h(18,"User name"),l(),D(19,"input",28),l(),d(20,"mat-form-field",25)(21,"mat-label"),h(22,"Password"),l(),D(23,"input",29),l(),D(24,"br"),d(25,"mat-form-field",25)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",30),l(),D(29,"br"),d(30,"button",16),h(31,"CANCEL"),l(),d(32,"button",17),h(33," SAVE "),l(),y(34,fhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.directConnectForm),m(31),f("disabled",!e.directConnectForm.valid),m(2),f("ngIf",""!=e.errorMsg)}}let _he=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.dataService=i,this.snack=o,this.dialogRef=r,this.data=a,this.inputOptions=[{value:Jn.DumpFile,display:"Connect via dump file"},{value:Jn.DirectConnect,display:"Connect via direct connection"}],this.selectedOption=Jn.DirectConnect,this.sourceDatabaseEngine="",this.errorMsg="",this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.dumpFileForm=new ti({filePath:new U("",[ee.required])}),this.directConnectForm=new ti({hostName:new U("",[ee.required]),port:new U("",[ee.required]),userName:new U("",[ee.required]),dbName:new U("",[ee.required]),password:new U("")}),this.sourceDatabaseEngine=a}ngOnInit(){}setSourceDBDetailsForDump(){const{filePath:e}=this.dumpFileForm.value;this.fetch.setSourceDBDetailsForDump({Driver:this.sourceDatabaseEngine,Path:e}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}setSourceDBDetailsForDirectConnect(){const{hostName:e,port:i,userName:o,password:r,dbName:a}=this.directConnectForm.value;this.fetch.setSourceDBDetailsForDirectConnect({dbEngine:this.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:c=>{this.errorMsg=c.error}})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.dumpFileForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.dataService.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}onItemChange(e){this.selectedOption=e,this.errorMsg=""}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-details-form"]],decls:7,vars:4,consts:[[1,"radio-button-container"],[1,"radio-button-group",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[1,"connect-load-database-container"],[1,"form-container"],[4,"ngIf"],[3,"value","change"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["hidden","","type","file",3,"change"],["file",""],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["class","failure",4,"ngIf"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-radio-group",1),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(2,lhe,2,2,"mat-radio-button",2),l()(),d(3,"div",3)(4,"div",4),y(5,phe,20,6,"div",5)(6,ghe,35,3,"div",5),l()()),2&i&&(m(),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.inputOptions),m(3),f("ngIf","dumpFile"===o.selectedOption),m(),f("ngIf","directConnect"===o.selectedOption))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,nC,qi,_n,Ci,_i,Bi,wi,zi,zn,vn,Nl,cg,lg,sd]})}return t})();function bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",7),D(3,"mat-spinner",8),l(),d(4,"span",9),h(5,"Cleaning up resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}let vhe=(()=>{class t{constructor(e,i,o,r){this.data=e,this.fetch=i,this.snack=o,this.dialogRef=r,this.sourceAndTargetDetails={SpannerDatabaseName:"",SpannerDatabaseUrl:"",SourceDatabaseName:"",SourceDatabaseType:""},this.cleaningUp=!1,this.sourceAndTargetDetails={SourceDatabaseName:e.SourceDatabaseName,SourceDatabaseType:e.SourceDatabaseType,SpannerDatabaseName:e.SpannerDatabaseName,SpannerDatabaseUrl:e.SpannerDatabaseUrl}}ngOnInit(){}cleanUpJobs(){this.cleaningUp=!0,this.fetch.cleanUpStreamingJobs().subscribe({next:()=>{this.cleaningUp=!1,this.snack.openSnackBar("Dataflow and datastream jobs will be cleaned up","Close"),this.dialogRef.close()},error:e=>{this.cleaningUp=!1,this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(En),_(nr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-end-migration"]],decls:46,vars:7,consts:[[1,"end-migration-dialog"],["target","_blank",3,"href"],["href","https://github.com/GoogleCloudPlatform/professional-services-data-validator","target","_blank"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close","",3,"disabled"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"End Migration"),l(),d(3,"div")(4,"b"),h(5,"Source database:"),l(),h(6),D(7,"br"),d(8,"b"),h(9,"Spanner database:"),l(),d(10,"a",1),h(11),l()(),D(12,"br"),d(13,"div")(14,"b"),h(15,"Please follow these steps to complete the migration:"),l(),d(16,"ol")(17,"li"),h(18,"Validate that the schema has been created on Spanner as per the configuration"),l(),d(19,"li"),h(20,"Validate the data has been copied from the Source to Spanner. You can use the "),d(21,"a",2),h(22,"Data Validation Tool"),l(),h(23," to help with this process."),l(),d(24,"li"),h(25,"Stop the writes to the source database. "),d(26,"b"),h(27,"This will initiate a period of downtime."),l()(),d(28,"li"),h(29,"Wait for any incremental writes on source since the validation started on Spanner to catch up with the source. This can be done by periodically checking the Spanner Database for the most recent updates on source."),l(),d(30,"li"),h(31,"Once the Source and Spanner are in sync, start the application with Spanner as the Database."),l(),d(32,"li"),h(33,"Perform smoke tests on your application to ensure it is working properly on Spanner"),l(),d(34,"li"),h(35,"Cutover the traffic to the application with Spanner as the Database. "),d(36,"b"),h(37,"This marks the end of the period of downtime"),l()(),d(38,"li"),h(39,"Cleanup the migration jobs by clicking the button below."),l()()(),y(40,bhe,7,1,"div",3),d(41,"div",4)(42,"button",5),h(43,"Cancel"),l(),d(44,"button",6),A("click",function(){return o.cleanUpJobs()}),h(45,"Clean Up"),l()()()),2&i&&(m(6),_l(" ",o.sourceAndTargetDetails.SourceDatabaseName,"(",o.sourceAndTargetDetails.SourceDatabaseType,") "),m(4),f("href",o.sourceAndTargetDetails.SpannerDatabaseUrl,qo),m(),Pe(o.sourceAndTargetDetails.SpannerDatabaseName),m(29),f("ngIf",o.cleaningUp),m(2),f("disabled",o.cleaningUp),m(2),f("disabled",o.cleaningUp))},dependencies:[It,Yt,zn,ko,sd]})}return t})(),yhe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.disablePresetFlags=!0,this.tunableFlagsForm=new ti({vpcHostProjectId:new U(e.GCPProjectID,ee.required),network:new U(""),subnetwork:new U(""),maxWorkers:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$")]),numWorkers:new U("1",[ee.required,ee.pattern("^[1-9][0-9]*$")]),machineType:new U("n1-standard-2",[ee.required]),serviceAccountEmail:new U(""),additionalUserLabels:new U("",[ee.pattern('^{("([0-9a-zA-Z_-]+)":"([0-9a-zA-Z_-]+)",?)+}$')]),kmsKeyName:new U("",[ee.pattern("^projects\\/[^\\n\\r]+\\/locations\\/[^\\n\\r]+\\/keyRings\\/[^\\n\\r]+\\/cryptoKeys\\/[^\\n\\r]+$")]),customJarPath:new U("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")]),customClassName:new U(""),customParameter:new U("")}),this.presetFlagsForm=new ti({dataflowProjectId:new U(e.GCPProjectID),dataflowLocation:new U(""),gcsTemplatePath:new U("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")])}),this.presetFlagsForm.disable()}ngOnInit(){}updateDataflowDetails(){let e=this.tunableFlagsForm.value;localStorage.setItem("network",e.network),localStorage.setItem("subnetwork",e.subnetwork),localStorage.setItem("vpcHostProjectId",e.vpcHostProjectId),localStorage.setItem("maxWorkers",e.maxWorkers),localStorage.setItem("numWorkers",e.numWorkers),localStorage.setItem("serviceAccountEmail",e.serviceAccountEmail),localStorage.setItem("machineType",e.machineType),localStorage.setItem("additionalUserLabels",e.additionalUserLabels),localStorage.setItem("kmsKeyName",e.kmsKeyName),localStorage.setItem("dataflowProjectId",this.presetFlagsForm.value.dataflowProjectId),localStorage.setItem("dataflowLocation",this.presetFlagsForm.value.dataflowLocation),localStorage.setItem("gcsTemplatePath",this.presetFlagsForm.value.gcsTemplatePath),localStorage.setItem("isDataflowConfigSet","true"),localStorage.setItem("customClassName",e.customClassName),localStorage.setItem("customJarPath",e.customJarPath),localStorage.setItem("customParameter",e.customParameter),this.dialofRef.close()}enablePresetFlags(){this.disablePresetFlags=!1,this.presetFlagsForm.enable()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-dataflow-form"]],decls:129,vars:19,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["matTooltip","Edit to run custom transformations",1,"mat-row"],["appearance","outline","matTooltip","Specify the GCS path for custom jar",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Custom JAR GCS Path","type","text","formControlName","customJarPath"],["appearance","outline","matTooltip","Specify the fully classified class name",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Fully Classified Class Name","type","text","formControlName","customClassName"],["appearance","outline","matTooltip","Specify the custom parameter required by the JAR",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Custom Parameters","type","text","formControlName","customParameter"],["matTooltip","Edit to run Dataflow in a VPC",1,"mat-row"],["appearance","outline","matTooltip","Specify the host project Id of the VPC network. For shared VPC, this needs to be edited to the correct host project id.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Host ProjectID","type","text","formControlName","vpcHostProjectId"],["href","https://cloud.google.com/vpc/docs/create-modify-vpc-networks#create-auto-network","target","_blank"],["appearance","outline","matTooltip","Specify the network name for the VPC",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Network Name","type","text","formControlName","network"],["appearance","outline","matTooltip","Specify the subnetwork name for the VPC. Provide only the subnetwork name and NOT the full URL for subnetwork.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Subnetwork Name","type","text","formControlName","subnetwork"],["matTooltip","Set performance parameters of the Dataflow job(s)",1,"mat-row"],["appearance","outline","matTooltip","Set maximum workers for the dataflow job(s). Default value: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","50","type","text","formControlName","maxWorkers"],["appearance","outline","matTooltip","Set initial number of workers for the dataflow job(s). Default value: 1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","1","type","text","formControlName","numWorkers"],["appearance","outline","matTooltip","The machine type to use for the job. Default machine type: n1-standard-2.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Machine Type","type","text","formControlName","machineType"],["href","https://cloud.google.com/compute/docs/machine-resource","target","_blank"],["appearance","outline","matTooltip","Set the service account to run the dataflow job(s) as",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Service Account Email","type","text","formControlName","serviceAccountEmail"],["appearance","outline","matTooltip",'Additional user labels to be specified for the job. Enter a json of "key": "value" pairs. Example: {"name": "wrench", "mass": "1kg", "count": "3" }.',1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Additional User Labels","type","text","formControlName","additionalUserLabels"],["appearance","outline","matTooltip","Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings //cryptoKeys/. Omit this field to use Google Managed Encryption Keys.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","KMS Key Name","type","text","formControlName","kmsKeyName"],["mat-button","",1,"edit-button",3,"disabled","click"],["appearance","outline","matTooltip","Specify the project to run the dataflow job in.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Project Id","type","text","formControlName","dataflowProjectId"],["appearance","outline","matTooltip","Specify the region to run the dataflow job in. It is recommended to keep the region same as Spanner region for performance. Example: us-central1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Location","type","text","formControlName","dataflowLocation"],["appearance","outline","matTooltip","Cloud Storage path to the template spec. Use this to run launch dataflow with custom templates. Example: gs://my-bucket/path/to/template",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","GCS Template Path","type","text","formControlName","gcsTemplatePath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Dataflow (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Dataflow."),l(),d(6,"mat-expansion-panel")(7,"mat-expansion-panel-header",2)(8,"span"),h(9,"Custom Transformations"),l()(),d(10,"div")(11,"mat-form-field",3)(12,"mat-label"),h(13,"Custom JAR GCS Path"),l(),D(14,"input",4),l(),D(15,"br"),d(16,"mat-form-field",5)(17,"mat-label"),h(18,"Custom Class Name"),l(),D(19,"input",6),l(),D(20,"br"),d(21,"mat-form-field",7)(22,"mat-label"),h(23,"Custom Parameter"),l(),D(24,"input",8),l()()(),D(25,"br"),d(26,"mat-expansion-panel")(27,"mat-expansion-panel-header",9)(28,"span"),h(29,"Networking"),l()(),d(30,"div")(31,"mat-form-field",10)(32,"mat-label"),h(33,"VPC Host ProjectID"),l(),D(34,"input",11),l(),D(35,"br"),d(36,"h5"),h(37," - Provide "),d(38,"b"),h(39,"ONLY"),l(),h(40," the VPC subnetwork if unsure about what VPC network to use. Dataflow chooses the network for you. "),D(41,"br"),h(42," - If you are using an "),d(43,"a",12),h(44,"auto mode network"),l(),h(45,", provide ONLY the network name and skip the VPC subnetwork. "),l(),d(46,"mat-form-field",13)(47,"mat-label"),h(48,"VPC Network"),l(),D(49,"input",14),l(),D(50,"br"),d(51,"mat-form-field",15)(52,"mat-label"),h(53,"VPC Subnetwork"),l(),D(54,"input",16),l()()(),D(55,"br"),d(56,"mat-expansion-panel")(57,"mat-expansion-panel-header",17)(58,"span"),h(59,"Performance"),l()(),d(60,"div")(61,"mat-form-field",18)(62,"mat-label"),h(63,"Max Workers"),l(),D(64,"input",19),l(),D(65,"br"),d(66,"mat-form-field",20)(67,"mat-label"),h(68,"Initial Number of Workers"),l(),D(69,"input",21),l(),D(70,"br"),d(71,"mat-form-field",22)(72,"mat-label"),h(73,"Machine Type"),l(),D(74,"input",23),l(),d(75,"h5"),h(76,"Find the list of all machine types "),d(77,"a",24),h(78,"here"),l(),h(79,"."),l()()(),D(80,"br"),d(81,"mat-form-field",25)(82,"mat-label"),h(83,"Service Account Email"),l(),D(84,"input",26),l(),D(85,"br"),d(86,"mat-form-field",27)(87,"mat-label"),h(88,"Additional User Labels"),l(),D(89,"input",28),l(),D(90,"br"),d(91,"mat-form-field",29)(92,"mat-label"),h(93,"KMS Key Name"),l(),D(94,"input",30),l()(),D(95,"hr"),d(96,"form",1)(97,"h2"),h(98," Preset Flags "),d(99,"span")(100,"button",31),A("click",function(){return o.enablePresetFlags()}),d(101,"mat-icon"),h(102,"edit"),l(),h(103," EDIT "),l()()(),d(104,"h5"),h(105,"These flags are set by SMT by default and "),d(106,"b"),h(107,"SHOULD NOT BE"),l(),h(108," modified unless running Dataflow in a non-standard configuration. To edit these parameters, click the edit button above."),l(),D(109,"br"),d(110,"mat-form-field",32)(111,"mat-label"),h(112,"Dataflow Project Id"),l(),D(113,"input",33),l(),D(114,"br"),d(115,"mat-form-field",34)(116,"mat-label"),h(117,"Dataflow Location"),l(),D(118,"input",35),l(),D(119,"br"),d(120,"mat-form-field",36)(121,"mat-label"),h(122,"GCS Template Path"),l(),D(123,"input",37),l()(),d(124,"div",38)(125,"button",39),h(126,"Cancel"),l(),d(127,"button",40),A("click",function(){return o.updateDataflowDetails()}),h(128," Save "),l()()()),2&i&&(m(),f("formGroup",o.tunableFlagsForm),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(15),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("formGroup",o.presetFlagsForm),m(4),f("disabled",!o.disablePresetFlags),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(7),f("disabled",o.tunableFlagsForm.invalid||o.presetFlagsForm.invalid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,DC,bP,zn,So,ko,vn],styles:[".edit-button[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function Che(t,n){1&t&&(d(0,"mat-form-field",8)(1,"mat-label"),h(2,"Max Concurrent CDC Tasks"),l(),D(3,"input",9),l()),2&t&&f("matTooltipPosition","right")}let whe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.isCdcTuningSupported=!0,this.datastreamForm=new ti({maxConcurrentBackfillTasks:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)]),maxConcurrentCdcTasks:new U("5",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)])}),this.isCdcTuningSupported=e.sourceType!=ir.Postgres.toLowerCase()}ngOnInit(){}updateDatastreamDetails(){let e=this.datastreamForm.value;localStorage.setItem("maxConcurrentBackfillTasks",e.maxConcurrentBackfillTasks),localStorage.setItem("maxConcurrentCdcTasks",e.maxConcurrentCdcTasks),localStorage.setItem("isDatastreamConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-datastream-form"]],decls:17,vars:4,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream backfill. Default: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent Backfill Tasks","type","text","formControlName","maxConcurrentBackfillTasks"],["class","full-width","appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent CDC Tasks","type","text","formControlName","maxConcurrentCdcTasks"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Datastream (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Datastream."),l(),d(6,"mat-form-field",2)(7,"mat-label"),h(8,"Max Concurrent Backfill Tasks"),l(),D(9,"input",3),l(),D(10,"br"),y(11,Che,4,1,"mat-form-field",4),l(),d(12,"div",5)(13,"button",6),h(14,"Cancel"),l(),d(15,"button",7),A("click",function(){return o.updateDatastreamDetails()}),h(16," Save "),l()()()),2&i&&(m(),f("formGroup",o.datastreamForm),m(5),f("matTooltipPosition","right"),m(5),f("ngIf",o.isCdcTuningSupported),m(4),f("disabled",!o.datastreamForm.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function xhe(t,n){1&t&&(d(0,"mat-form-field",7)(1,"mat-label"),h(2,"TTL in days"),l(),D(3,"input",8),l()),2&t&&f("matTooltipPosition","right")}let Dhe=(()=>{class t{constructor(e){this.dialofRef=e,this.ttlInDaysSet=!1,this.gcsForm=new ti({ttlInDays:new U("",[ee.required,ee.pattern("^([1-9][0-9]*$)"),ee.min(1),ee.max(1e8)])})}ngOnInit(){}updateGcsDetails(){this.ttlInDaysSet?(localStorage.setItem("ttlInDays",this.gcsForm.value.ttlInDays),localStorage.setItem("ttlInDaysSet","true")):(localStorage.setItem("ttlInDays","0"),localStorage.setItem("ttlInDaysSet","false")),localStorage.setItem("isGcsConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-gcs-form"]],decls:15,vars:5,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["color","primary","matTooltip","Set the TTL (in days) for GCS data written by Datastream. This sets the GCS lifecycle to delete the objects after specified number of days.",3,"matTooltipPosition","checked","change"],["class","ttl-input","appearance","outline","matTooltip","Set the TTL in days",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the TTL in days",1,"ttl-input",3,"matTooltipPosition"],["matInput","","type","text","formControlName","ttlInDays"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Google Cloud Storage (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune the Cloud Storage bucket used by Datastream to store Change Records, specified by the destination connection profile"),l(),d(6,"mat-checkbox",2),A("change",function(){return o.ttlInDaysSet=!o.ttlInDaysSet}),h(7," Set TTL for data "),l(),D(8,"br"),y(9,xhe,4,1,"mat-form-field",3),l(),d(10,"div",4)(11,"button",5),h(12,"Cancel"),l(),d(13,"button",6),A("click",function(){return o.updateGcsDetails()}),h(14," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsForm),m(5),f("matTooltipPosition","right")("checked",o.ttlInDaysSet),m(3),f("ngIf",o.ttlInDaysSet),m(4),f("disabled",o.ttlInDaysSet&&o.gcsForm.invalid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn,og],styles:[".ttl-input[_ngcontent-%COMP%]{padding-left:10%}"]})}return t})(),She=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.gcloudCmd=e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-equivalent-gcloud-command"]],decls:12,vars:2,consts:[["mat-dialog-content",""],["matTooltip","This is the gcloud command to launch the dataflow job with the same parameters. Can be used to re-run a dataflow job manually in case of failure.",1,"configure"],[1,"left-text"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","color","primary",3,"cdkCopyToClipboard"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"Equivalent gcloud command line"),d(3,"mat-icon",1),h(4," info"),l()(),d(5,"span",2),h(6),l(),d(7,"div",3)(8,"button",4),h(9,"Close"),l(),d(10,"button",5),h(11,"Copy"),l()()()),2&i&&(m(6),Pe(o.gcloudCmd),m(4),f("cdkCopyToClipboard",o.gcloudCmd))},dependencies:[Yt,Mi,zn,So,ko,vn,KC]})}return t})();function khe(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Mhe(t,n){1&t&&(d(0,"div",15)(1,"mat-form-field",4)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",16,17),l()())}function The(t,n){1&t&&(d(0,"div",18)(1,"mat-form-field",19)(2,"mat-label"),h(3,"Hostname"),l(),D(4,"input",20),l(),d(5,"mat-form-field",19)(6,"mat-label"),h(7,"Port"),l(),D(8,"input",21),d(9,"mat-error"),h(10," Only numbers are allowed. "),l()(),D(11,"br"),d(12,"mat-form-field",19)(13,"mat-label"),h(14,"User name"),l(),D(15,"input",22),l(),d(16,"mat-form-field",19)(17,"mat-label"),h(18,"Password"),l(),D(19,"input",23),l(),D(20,"br"),d(21,"mat-form-field",19)(22,"mat-label"),h(23,"Database Name"),l(),D(24,"input",24),l(),D(25,"br"),d(26,"mat-form-field",19)(27,"mat-label"),h(28,"Shard ID"),l(),D(29,"input",25),l(),D(30,"br"),l())}function Ihe(t,n){if(1&t){const e=_e();d(0,"button",26),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",C().directConnectForm.invalid)}function Ehe(t,n){if(1&t&&(d(0,"div",27)(1,"span",28),h(2),l(),d(3,"mat-icon",29),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let Ohe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.dialogRef=r,this.data=a,this.errorMsg="",this.shardConnDetailsList=[],this.sourceConnDetails={dbConfigs:[],isRestoredSession:""},this.shardSessionDetails={sourceDatabaseEngine:"",isRestoredSession:""},this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.shardSessionDetails={sourceDatabaseEngine:a.sourceDatabaseEngine,isRestoredSession:a.isRestoredSession};let s={dbEngine:"",isSharded:!1,hostName:"",port:"",userName:"",password:"",dbName:""};localStorage.getItem(Wi.Type)==Jn.DirectConnect&&null!=localStorage.getItem(Wi.Config)&&(s=JSON.parse(localStorage.getItem(Wi.Config))),this.directConnectForm=new ti({inputType:new U("form",[ee.required]),textInput:new U(""),hostName:new U(s.hostName,[ee.required]),port:new U(s.port,[ee.required]),userName:new U(s.userName,[ee.required]),dbName:new U(s.dbName,[ee.required]),password:new U(s.password),shardId:new U("",[ee.required])})}ngOnInit(){this.initFromLocalStorage()}initFromLocalStorage(){}setValidators(e){if("text"==e){for(const i in this.directConnectForm.controls)this.directConnectForm.get(i)?.clearValidators(),this.directConnectForm.get(i)?.updateValueAndValidity();this.directConnectForm.get("textInput")?.setValidators([ee.required]),this.directConnectForm.controls.textInput.updateValueAndValidity()}else this.directConnectForm.get("hostName")?.setValidators([ee.required]),this.directConnectForm.controls.hostName.updateValueAndValidity(),this.directConnectForm.get("port")?.setValidators([ee.required]),this.directConnectForm.controls.port.updateValueAndValidity(),this.directConnectForm.get("userName")?.setValidators([ee.required]),this.directConnectForm.controls.userName.updateValueAndValidity(),this.directConnectForm.get("dbName")?.setValidators([ee.required]),this.directConnectForm.controls.dbName.updateValueAndValidity(),this.directConnectForm.get("password")?.setValidators([ee.required]),this.directConnectForm.controls.password.updateValueAndValidity(),this.directConnectForm.get("shardId")?.setValidators([ee.required]),this.directConnectForm.controls.shardId.updateValueAndValidity(),this.directConnectForm.controls.textInput.clearValidators(),this.directConnectForm.controls.textInput.updateValueAndValidity()}determineFormValidity(){return this.shardConnDetailsList.length>0||!!this.directConnectForm.valid}saveDetailsAndReset(){const{hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}),this.directConnectForm=new ti({inputType:new U("form",ee.required),textInput:new U(""),hostName:new U(""),port:new U(""),userName:new U(""),dbName:new U(""),password:new U(""),shardId:new U("")}),this.setValidators("form"),this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}finalizeConnDetails(){if("form"===this.directConnectForm.value.inputType){const{hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}),this.sourceConnDetails.dbConfigs=this.shardConnDetailsList}else{try{this.sourceConnDetails.dbConfigs=JSON.parse(this.directConnectForm.value.textInput)}catch{throw this.errorMsg="Unable to parse JSON",new Error(this.errorMsg)}this.sourceConnDetails.dbConfigs.forEach(i=>{i.dbEngine=this.shardSessionDetails.sourceDatabaseEngine})}this.sourceConnDetails.isRestoredSession=this.shardSessionDetails.isRestoredSession,this.fetch.setShardsSourceDBDetailsForBulk(this.sourceConnDetails).subscribe({next:()=>{localStorage.setItem(he.NumberOfShards,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.NumberOfInstances,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:i=>{this.errorMsg=i.error}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-bulk-source-details-form"]],decls:23,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[1,"shard-bulk-form",3,"formGroup"],[1,"primary-header"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","textInput",4,"ngIf"],["class","formInput",4,"ngIf"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","failure",4,"ngIf"],[3,"value"],[1,"textInput"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],[1,"formInput"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"],["matInput","","name","shardId","type","text","formControlName","shardId"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h4",3),h(4,"Add Data Shard Connection Details"),l(),d(5,"b"),h(6,"Note: Please configure the schema source used for schema conversion if you want Spanner migration tool to migrate data from it as well."),l(),D(7,"br")(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Input Type"),l(),d(12,"mat-select",5,6),A("selectionChange",function(){ie(r);const s=Ft(13);return ne(o.setValidators(s.value))}),y(14,khe,2,2,"mat-option",7),l()(),y(15,Mhe,6,0,"div",8)(16,The,31,0,"div",9),d(17,"button",10),h(18,"CANCEL"),l(),y(19,Ihe,2,1,"button",11),d(20,"button",12),A("click",function(){return o.finalizeConnDetails()}),h(21," FINISH "),l(),y(22,Ehe,5,2,"div",13),l()()()}2&i&&(m(2),f("formGroup",o.directConnectForm),m(12),f("ngForOf",o.inputOptionsList),m(),f("ngIf","text"===o.directConnectForm.value.inputType),m(),f("ngIf","form"===o.directConnectForm.value.inputType),m(3),f("ngIf","form"===o.directConnectForm.value.inputType),m(),f("disabled",!o.determineFormValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,qi,VA,Xn,Tn,_n,Ci,_i,Bi,wi,zi,zn,vn]})}return t})();function Ahe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Phe(t,n){if(1&t&&(d(0,"div",19)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),h(4,"Total Configured Shards"),l(),d(5,"mat-card-subtitle"),h(6),l(),d(7,"mat-card-subtitle"),h(8),l()()()()),2&t){const e=C();m(6),xe("",e.physicalShards," physical instances configured."),m(2),xe("",e.logicalShards," logical shards configured.")}}function Rhe(t,n){1&t&&(d(0,"div",20)(1,"mat-form-field",21)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",22,23),l()())}function Nhe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function Fhe(t,n){if(1&t&&(d(0,"div",20)(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Nhe,6,2,"li",25),l()),2&t){const e=C();m(7),f("ngForOf",e.ipList)}}function Lhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"JSON Verification failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(3),f("matTooltip",e.errorVerMsg)}}function Bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Validating Resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Vhe(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function jhe(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"button",35),A("click",function(){return ie(e),ne(C().verifyTextJson())}),h(2,"VERIFY JSON"),l()()}if(2&t){const e=C();m(),f("disabled",!e.migrationProfileForm.valid||e.verifyingJson)}}function zhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"source"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Hhe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function Uhe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select source connection profile"),l(),d(4,"mat-select",49),y(5,Hhe,2,2,"mat-option",8),l()(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Data Shard Id"),l(),D(9,"input",50),l()()),2&t){const e=C(2);m(5),f("ngForOf",e.sourceProfileList),m(4),f("value",e.inputValue)}}function $he(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Host"),l(),D(4,"input",51),l(),d(5,"mat-form-field",5)(6,"mat-label"),h(7,"User"),l(),D(8,"input",52),l(),d(9,"mat-form-field",5)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",53),l(),d(13,"mat-form-field",5)(14,"mat-label"),h(15,"Password"),l(),D(16,"input",54),l(),d(17,"mat-form-field",55)(18,"mat-label"),h(19,"Connection profile name"),l(),D(20,"input",56),l(),d(21,"mat-form-field",5)(22,"mat-label"),h(23,"Data Shard Id"),l(),D(24,"input",50),l()()),2&t){const e=C(2);m(24),f("value",e.inputValue)}}function Ghe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function qhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"Test connection failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorSrcMsg)}}function Whe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Testing Connection"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Khe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating source connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Zhe(t,n){1&t&&(d(0,"mat-icon",60),h(1," check_circle "),l())}function Yhe(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function Qhe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Ghe,6,2,"li",25)(8,qhe,5,1,"div",11),D(9,"br"),y(10,Whe,7,1,"div",12)(11,Khe,7,1,"div",12)(12,Zhe,2,0,"mat-icon",57),d(13,"button",35),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!0))}),h(14,"TEST CONNECTION"),l(),y(15,Yhe,2,0,"mat-icon",58),d(16,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!1))}),h(17,"CREATE PROFILE"),l()()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorSrcMsg),m(2),f("ngIf",e.testingSourceConnection),m(),f("ngIf",e.creatingSourceConnection),m(),f("ngIf",e.testSuccess),m(),f("disabled",!e.determineConnectionProfileInfoValidity()||e.testingSourceConnection),m(2),f("ngIf",e.createSrcConnSuccess),m(),f("disabled",!e.testSuccess||e.creatingSourceConnection)}}function Xhe(t,n){if(1&t){const e=_e();me(0),d(1,"div",62)(2,"mat-form-field",5)(3,"mat-label"),h(4,"Logical Shard ID"),l(),D(5,"input",63),l(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Source Database Name"),l(),D(9,"input",64),l(),d(10,"mat-icon",65),A("click",function(){const r=ie(e).index;return ne(C(2).deleteRow(r))}),h(11," delete_forever"),l()(),pe()}if(2&t){const e=n.index;m(),f("formGroupName",e)}}function Jhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"target"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function eme(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function tme(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select target connection profile"),l(),d(4,"mat-select",66),y(5,eme,2,2,"mat-option",8),l()()()),2&t){const e=C(2);m(5),f("ngForOf",e.targetProfileList)}}function ime(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating target connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function nme(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function ome(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l()()),2&t){const e=C(3);m(2),Pe(e.errorTgtMsg)}}function rme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",55)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",67),l(),y(5,ime,7,1,"div",12)(6,nme,2,0,"mat-icon",58),d(7,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!1,!1))}),h(8,"CREATE PROFILE"),l(),y(9,ome,3,1,"div",11),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.creatingTargetConnection),m(),f("ngIf",e.createTgtConnSuccess),m(),f("disabled",e.creatingTargetConnection),m(2),f("ngIf",""!=e.errorTgtMsg)}}function ame(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"span",36),h(2,"Configure Source Profile"),l(),d(3,"div",37)(4,"mat-radio-group",38),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedSourceProfileOption,o)||(r.selectedSourceProfileOption=o),ne(o)}),y(5,zhe,2,2,"mat-radio-button",39),l()(),D(6,"br"),y(7,Uhe,10,2,"div",12)(8,$he,25,1,"div",12),D(9,"br"),y(10,Qhe,18,8,"div",12),D(11,"hr"),d(12,"span",36),h(13,"Configure ShardId and Database Names"),l(),d(14,"mat-icon",40),h(15,"info"),l(),D(16,"br")(17,"br"),d(18,"span",41),me(19,42),y(20,Xhe,12,1,"ng-container",43),pe(),l(),d(21,"div",44)(22,"button",45),A("click",function(){return ie(e),ne(C().addRow())}),h(23,"ADD ROW"),l()(),D(24,"br")(25,"hr"),d(26,"span",36),h(27,"Configure Target Profile"),l(),d(28,"div",46)(29,"mat-radio-group",47),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedTargetProfileOption,o)||(r.selectedTargetProfileOption=o),ne(o)}),y(30,Jhe,2,2,"mat-radio-button",39),l()(),D(31,"br"),y(32,tme,6,1,"div",12)(33,rme,10,4,"div",12),D(34,"hr"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedSourceProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedSourceProfileOption),m(),f("ngIf","new"===e.selectedSourceProfileOption),m(2),f("ngIf","new"===e.selectedSourceProfileOption),m(10),f("ngForOf",e.shardMappingTable.controls),m(9),dn("ngModel",e.selectedTargetProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedTargetProfileOption),m(),f("ngIf","new"===e.selectedTargetProfileOption)}}function sme(t,n){if(1&t){const e=_e();d(0,"button",68),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",!C().determineFormValidity())}function cme(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let lme=(()=>{class t{constructor(e,i,o,r,a,s){this.fetch=e,this.snack=i,this.dataService=o,this.formBuilder=r,this.dialogRef=a,this.data=s,this.selectedProfile="",this.profileType="",this.sourceProfileList=[],this.targetProfileList=[],this.definedSrcConnProfileList=[],this.definedTgtConnProfileList=[],this.shardIdToDBMappingTable=[],this.dataShardIdList=[],this.ipList=[],this.selectedSourceProfileOption="existing",this.selectedTargetProfileOption="existing",this.profileOptions=[{value:"existing",display:"Choose an existing connection profile"},{value:"new",display:"Create a new connection profile"}],this.profileName="",this.errorMsg="",this.errorSrcMsg="",this.errorTgtMsg="",this.errorVerMsg="",this.sourceDatabaseType="",this.inputValue="",this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.physicalShards=0,this.logicalShards=0,this.testingSourceConnection=!1,this.creatingSourceConnection=!1,this.creatingTargetConnection=!1,this.verifyingJson=!1,this.prefix="smt-datashard",this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.region=s.Region,this.sourceDatabaseType=s.SourceDatabaseType,localStorage.getItem(Wi.Type)==Jn.DirectConnect&&(this.schemaSourceConfig=JSON.parse(localStorage.getItem(Wi.Config)));let u=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[""],sourceProfileOption:["new",ee.required],targetProfileOption:["new",ee.required],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[this.schemaSourceConfig?.hostName],user:[this.schemaSourceConfig?.userName],port:[this.schemaSourceConfig?.port],password:[this.schemaSourceConfig?.password],dataShardId:[this.inputValue,ee.required],shardMappingTable:this.formBuilder.array([u])}),this.migrationProfile={configType:"dataflow",shardConfigurationDataflow:{schemaSource:{host:this.schemaSourceConfig?.hostName,user:this.schemaSourceConfig?.userName,password:this.schemaSourceConfig?.password,port:this.schemaSourceConfig?.port,dbName:this.schemaSourceConfig?.dbName},dataShards:[]}}}ngOnInit(){this.getConnectionProfiles(!0),this.getConnectionProfiles(!1),this.getDatastreamIPs(),this.initFromLocalStorage()}initFromLocalStorage(){}get shardMappingTable(){return this.migrationProfileForm.controls.shardMappingTable}addRow(){let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.shardMappingTable.push(e)}deleteRow(e){this.shardMappingTable.removeAt(e)}getDatastreamIPs(){this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}getConnectionProfiles(e){this.fetch.getConnectionProfiles(e).subscribe({next:i=>{e?this.sourceProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName)):this.targetProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName))},error:i=>{this.snack.openSnackBar(i.error,"Close")}})}onItemChange(e,i){this.profileType=i,"source"===this.profileType?(this.selectedSourceProfileOption=e,"new"==this.selectedSourceProfileOption?(this.migrationProfileForm.get("newSourceProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingSourceProfile.clearValidators(),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.get("host")?.setValidators([ee.required]),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.get("user")?.setValidators([ee.required]),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.get("port")?.setValidators([ee.required]),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.get("password")?.setValidators([ee.required]),this.migrationProfileForm.controls.password.updateValueAndValidity()):(this.migrationProfileForm.controls.newSourceProfile.clearValidators(),this.migrationProfileForm.get("existingSourceProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.host.clearValidators(),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.controls.user.clearValidators(),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.controls.port.clearValidators(),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.controls.password.clearValidators(),this.migrationProfileForm.controls.password.updateValueAndValidity())):(this.selectedTargetProfileOption=e,"new"==this.selectedTargetProfileOption?(this.migrationProfileForm.get("newTargetProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingTargetProfile.clearValidators(),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()):(this.migrationProfileForm.controls.newTargetProfile.clearValidators(),this.migrationProfileForm.get("existingTargetProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()))}setValidators(e){if("text"===e){for(const o in this.migrationProfileForm.controls)this.migrationProfileForm.controls[o].clearValidators(),this.migrationProfileForm.controls[o].updateValueAndValidity();this.migrationProfileForm.get("shardMappingTable").controls.forEach(o=>{const r=o,a=r.get("logicalShardId"),s=r.get("dbName");a?.clearValidators(),a?.updateValueAndValidity(),s?.clearValidators(),s?.updateValueAndValidity()}),this.migrationProfileForm.controls.textInput.setValidators([ee.required]),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}else this.onItemChange("new","source"),this.onItemChange("new","target"),this.migrationProfileForm.controls.textInput.clearValidators(),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}saveDetailsAndReset(){this.handleConnConfigsFromForm();let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[],sourceProfileOption:[this.selectedSourceProfileOption],targetProfileOption:[this.selectedTargetProfileOption],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[],user:[],port:[],password:[],dataShardId:[this.inputValue],shardMappingTable:this.formBuilder.array([e])}),this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}randomString(e){for(var o="",r=0;r{localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(he.NumberOfShards,this.determineTotalLogicalShardsConfigured().toString()),localStorage.setItem(he.NumberOfInstances,this.migrationProfile.shardConfigurationDataflow.dataShards.length.toString()),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}determineTotalLogicalShardsConfigured(){let e=0;return this.migrationProfile.shardConfigurationDataflow.dataShards.forEach(i=>{e+=i.databases.length}),e}handleConnConfigsFromForm(){let e=this.migrationProfileForm.value;this.dataShardIdList.push(e.dataShardId),this.definedSrcConnProfileList.push("new"===this.selectedSourceProfileOption?{name:e.newSourceProfile,location:this.region}:{name:e.existingSourceProfile,location:this.region}),this.definedTgtConnProfileList.push("new"===this.selectedTargetProfileOption?{name:e.newTargetProfile,location:this.region}:{name:e.existingTargetProfile,location:this.region});let i=[];for(let o of this.shardMappingTable.controls)if(o instanceof ti){const r=o.value;i.push({dbName:r.dbName,databaseId:r.logicalShardId,refDataShardId:e.dataShardId})}this.shardIdToDBMappingTable.push(i),this.physicalShards++,this.logicalShards=this.logicalShards+i.length}determineFormValidity(){return!(!this.migrationProfileForm.valid||"new"===this.selectedSourceProfileOption&&!this.createSrcConnSuccess||"new"===this.selectedTargetProfileOption&&!this.createTgtConnSuccess||"text"===this.migrationProfileForm.value.inputType!==this.verifyJson)}determineFinishValidity(){return this.definedSrcConnProfileList.length>0||this.determineFormValidity()}determineConnectionProfileInfoValidity(){let e=this.migrationProfileForm.value;return null!=e.host&&null!=e.port&&null!=e.user&&null!=e.password&&null!=e.newSourceProfile}verifyTextJson(){this.verifyingJson=!0;let i,e=this.migrationProfileForm.value;try{i=JSON.parse(e.textInput)}catch(o){return o instanceof SyntaxError?(this.errorVerMsg=o.message,this.verifyJson=!1,void(this.verifyingJson=!1)):(this.errorVerMsg=`Unexpected error parsing json ${o}`,this.verifyJson=!1,void(this.verifyingJson=!1))}this.fetch.verifyJsonConfiguration(i).subscribe({next:()=>{this.verifyJson=!0,this.verifyingJson=!1},error:o=>{this.verifyJson=!1,this.verifyingJson=!1,this.errorVerMsg=o.message}})}createOrTestConnection(e,i){i?this.testingSourceConnection=!0:e?this.creatingSourceConnection=!0:this.creatingTargetConnection=!0;let r,o=this.migrationProfileForm.value;r=e?{Id:o.newSourceProfile,IsSource:!0,ValidateOnly:i,Host:o.host,Port:o.port,User:o.user,Password:o.password}:{Id:o.newTargetProfile,IsSource:!1,ValidateOnly:i},this.fetch.createConnectionProfile(r).subscribe({next:()=>{i?(this.testingSourceConnection=!1,this.testSuccess=!0):e?(this.createSrcConnSuccess=!0,this.errorSrcMsg="",this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!0,this.errorTgtMsg="",this.creatingTargetConnection=!1)},error:a=>{i?(this.testingSourceConnection=!1,this.testSuccess=!1,this.errorSrcMsg=a.error):e?(this.createSrcConnSuccess=!1,this.errorSrcMsg=a.error,this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!1,this.errorTgtMsg=a.error,this.creatingTargetConnection=!1)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-dataflow-migration-details-form"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:31,vars:13,consts:[["mat-dialog-content","",1,"connect-load-database-container"],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h2","header-title"],[1,"top"],[1,"top-1"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","top-2",4,"ngIf"],["class","textInput",4,"ngIf"],["class","failure",4,"ngIf"],[4,"ngIf"],["class","success","matTooltip","JSON Verification successful","matTooltipPosition","above",4,"ngIf"],[1,"last-btns"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],[1,"top-2"],[1,"textInput"],["appearance","outline",1,"json-input"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists","target","_blank"],["class","connection-form-container",4,"ngFor","ngForOf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"],["matTooltip","JSON Verification successful","matTooltipPosition","above",1,"success"],["mat-raised-button","","type","button","color","primary",3,"disabled","click"],[1,"mat-h4","header-title"],[1,"source-radio-button-container"],["formControlName","sourceProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],["class","radio-button",3,"value","change",4,"ngFor","ngForOf"],["matTooltip","Logical Shard ID value will be used to populate the migration_shard_id column added as part of sharded database migration",1,"configure"],[1,"border"],["formArrayName","shardMappingTable"],[4,"ngFor","ngForOf"],[1,"table-buttons"],["mat-raised-button","","color","primary","type","button",3,"click"],[1,"target-radio-button-container"],["formControlName","targetProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],[1,"radio-button",3,"value","change"],["formControlName","existingSourceProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","type","text","formControlName","dataShardId","required","true","readonly","",3,"value"],["matInput","","placeholder","Host","type","text","formControlName","host","required","true"],["matInput","","placeholder","User","type","text","formControlName","user","required","true"],["matInput","","placeholder","Port","type","text","formControlName","port","required","true"],["matInput","","placeholder","Password","type","password","formControlName","password","required","true"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter."],["matInput","","placeholder","Connection profile name","type","text","formControlName","newSourceProfile","required","true"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],["class","success","matTooltip","Profile creation successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","type","button","color","warn",3,"disabled","click"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"],["matTooltip","Profile creation successful","matTooltipPosition","above",1,"success"],[1,"shard-mapping-form-row",3,"formGroupName"],["matInput","","formControlName","logicalShardId","placeholder","Enter Logical ShardID"],["matInput","","formControlName","dbName","placeholder","Enter Database Name"],[1,"delete-btn",3,"click"],["formControlName","existingTargetProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newTargetProfile","required","true"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"form",1)(2,"span",2),h(3,"Datastream Details"),l(),D(4,"br"),d(5,"b"),h(6,"Note: Please configure the database used for schema conversion, if you want Spanner migration tool to migrate data from it as well."),l(),d(7,"div",3),h(8,"` "),d(9,"div",4)(10,"mat-form-field",5)(11,"mat-label"),h(12,"Input Type"),l(),d(13,"mat-select",6,7),A("selectionChange",function(){ie(r);const s=Ft(14);return ne(o.setValidators(s.value))}),y(15,Ahe,2,2,"mat-option",8),l()()(),y(16,Phe,9,2,"div",9),l(),y(17,Rhe,6,0,"div",10)(18,Fhe,8,1,"div",10)(19,Lhe,5,1,"div",11)(20,Bhe,7,1,"div",12)(21,Vhe,2,0,"mat-icon",13)(22,jhe,3,1,"div",10)(23,ame,35,10,"div",10),d(24,"div",14)(25,"button",15),h(26,"CANCEL"),l(),y(27,sme,2,1,"button",16),d(28,"button",17),A("click",function(){return o.finalizeConnDetails()}),h(29," FINISH "),l(),y(30,cme,5,2,"div",11),l()()()}2&i&&(m(),f("formGroup",o.migrationProfileForm),m(14),f("ngForOf",o.inputOptionsList),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf",!o.verifyJson&&""!=o.errorVerMsg),m(),f("ngIf",o.verifyingJson),m(),f("ngIf",o.verifyJson),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(4),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("disabled",!o.determineFinishValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Gu,_O,O0,E0,Di,xi,qi,VA,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ju,eh,zn,So,vn,cg,lg,KC,sd],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}.shard-mapping-form-row[_ngcontent-%COMP%]{width:80%;margin-left:auto;margin-right:auto}.table-header[_ngcontent-%COMP%]{width:80%;margin:auto auto 10px;text-align:right;display:flex;align-items:center;justify-content:space-between}form[_ngcontent-%COMP%], .table-body[_ngcontent-%COMP%]{flex:auto;overflow-y:auto}.table-buttons[_ngcontent-%COMP%]{margin-left:70%}.radio-button-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin:15px 0;align-items:flex-start}.radio-button[_ngcontent-%COMP%]{margin:5px}.json-input[_ngcontent-%COMP%]{width:100%}.top[_ngcontent-%COMP%]{border:3px solid #fff;padding:20px}.top-1[_ngcontent-%COMP%]{width:60%;float:left}.top-2[_ngcontent-%COMP%]{width:40%;float:right;flex:auto}.last-btns[_ngcontent-%COMP%]{padding:20px;width:100%;float:left}"]})}return t})(),dme=(()=>{class t{constructor(e,i){this.formBuilder=e,this.dialogRef=i,this.gcsMetadataDetailsForm=this.formBuilder.group({gcsName:["",[ee.required,ee.pattern("^(?!.$)(?!..$)(?!.*[\r\n])[^\r\n]{1,1024}$")]],gcsRootPath:[""]}),this.gcsMetadataDetailsForm.setValue({gcsName:localStorage.getItem(yt.GcsMetadataName)||"",gcsRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""})}ngOnInit(){}updateGcsPathMetadataDetails(){let e=this.gcsMetadataDetailsForm.value;localStorage.setItem(yt.GcsMetadataName,e.gcsName||""),localStorage.setItem(yt.GcsMetadataRootPath,e.gcsRootPath||""),localStorage.setItem(he.IsGcsMetadataPathSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-gcs-metadata-details-form"]],decls:21,vars:2,consts:[["mat-dialog-content",""],[1,"gcs-metadata-detail-form",3,"formGroup"],["matTooltip","Specify existing or new GCS path to store metadata for migration",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","GCS Bucket Name","type","text","formControlName","gcsName","ng-value","TargetDetails.GcsMetadataName"],["matInput","","placeholder","Path Prefix","type","text","formControlName","gcsRootPath","ng-value","TargetDetails.GcsMetadataRootPath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"GCS Metadata Storage"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"GCS Bucket Name"),l(),D(9,"input",4),l(),D(10,"br"),d(11,"mat-form-field",3)(12,"mat-label"),h(13,"Path Prefix"),l(),D(14,"input",5),l(),D(15,"br"),l(),d(16,"div",6)(17,"button",7),h(18,"Cancel"),l(),d(19,"button",8),A("click",function(){return o.updateGcsPathMetadataDetails()}),h(20," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsMetadataDetailsForm),m(18),f("disabled",!o.gcsMetadataDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function ume(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions"),l())}function hme(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions (per shard)"),l())}function mme(t,n){1&t&&(d(0,"th",38),h(1,"Title"),l())}function pme(t,n){if(1&t&&(d(0,"td",39)(1,"b"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.title)}}function fme(t,n){1&t&&(d(0,"th",38),h(1,"Source"),l())}function gme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.source)}}function _me(t,n){1&t&&(d(0,"th",38),h(1,"Destination"),l())}function bme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.target)}}function vme(t,n){1&t&&D(0,"tr",40)}function yme(t,n){1&t&&D(0,"tr",41)}function Cme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function wme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.name," ")}}function xme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Migration Type:"),l(),d(4,"mat-select",21),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedMigrationType,o)||(r.selectedMigrationType=o),ne(o)}),A("selectionChange",function(){return ie(e),ne(C().refreshPrerequisites())}),y(5,wme,2,2,"mat-option",22),l()(),d(6,"mat-icon",23),h(7,"info"),l(),D(8,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedMigrationType),m(),f("ngForOf",e.migrationTypes),m(),f("matTooltip",e.migrationTypesHelpText.get(e.selectedMigrationType))}}function Dme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Sme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Skip Foreign Key Creation:"),l(),d(4,"mat-select",43),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.isForeignKeySkipped,o)||(r.isForeignKeySkipped=o),ne(o)}),y(5,Dme,2,2,"mat-option",22),l()()()}if(2&t){const e=C();m(4),dn("ngModel",e.isForeignKeySkipped),m(),f("ngForOf",e.skipForeignKeyResponseList)}}function kme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the application default credentials deployed on this machine have permissions to write to Spanner."),l()()())}function Mme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the source is "),d(6,"a",45),h(7,"configured"),l(),h(8," for Datastream change data capture."),l()(),d(9,"p",26)(10,"span",27),h(11,"2"),l(),d(12,"span"),h(13,"Please ensure that Dataflow "),d(14,"a",46),h(15,"permissions"),l(),h(16," and "),d(17,"a",47),h(18,"networking"),l(),h(19," are correctly setup."),l()()())}function Tme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ime(t,n){if(1&t){const e=_e();d(0,"div")(1,"h3"),h(2,"Source database details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source database details"),l(),d(8,"span")(9,"button",29),A("click",function(){return ie(e),ne(C().openSourceDetailsForm())}),h(10," Configure "),d(11,"mat-icon",30),h(12,"edit"),l(),y(13,Tme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(9),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Eme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ome(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-card-title"),h(2,"Source databases details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source Connection details "),d(8,"mat-icon",50),h(9," info"),l()(),d(10,"span")(11,"button",29),A("click",function(){return ie(e),ne(C().openShardedBulkSourceDetailsForm())}),h(12," Configure "),d(13,"mat-icon",30),h(14,"edit"),l(),y(15,Eme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(11),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Ame(t,n){1&t&&(d(0,"mat-icon",51),h(1," check_circle "),l())}function Pme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Rme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Configure Datastream "),d(5,"mat-icon",52),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openMigrationProfileForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Pme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Nme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Fme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Setup source connection profile "),d(5,"mat-icon",55),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!0))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Nme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Lme(t,n){1&t&&(d(0,"mat-icon",58),h(1," check_circle "),l())}function Bme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"3"),l(),d(3,"span"),h(4,"Setup target connection profile "),d(5,"mat-icon",56),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!1))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Lme,2,0,"mat-icon",57),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isTargetConnectionProfileSet)}}function Vme(t,n){1&t&&(d(0,"span",27),h(1,"3"),l())}function jme(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function zme(t,n){1&t&&(d(0,"mat-icon",62),h(1," check_circle "),l())}function Hme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Vme,2,0,"span",59)(2,jme,2,0,"span",59),d(3,"span"),h(4,"Tune Datastream (Optional) "),d(5,"mat-icon",60),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneDatastreamForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,zme,2,0,"mat-icon",61),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDatastreamConfigurationSet)}}function Ume(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function $me(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Gme(t,n){1&t&&(d(0,"mat-icon",65),h(1," check_circle "),l())}function qme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Ume,2,0,"span",59)(2,$me,2,0,"span",59),d(3,"span"),h(4,"Tune Cloud Storage (Optional) "),d(5,"mat-icon",63),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneGcsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Gme,2,0,"mat-icon",64),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsConfigurationSet)}}function Wme(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Kme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Zme(t,n){1&t&&(d(0,"mat-icon",68),h(1," check_circle "),l())}function Yme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Wme,2,0,"span",59)(2,Kme,2,0,"span",59),d(3,"span"),h(4,"Tune Dataflow (Optional) "),d(5,"mat-icon",66),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openDataflowForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Zme,2,0,"mat-icon",67),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDataflowConfigurationSet)}}function Qme(t,n){1&t&&(d(0,"span",27),h(1,"2"),l())}function Xme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Jme(t,n){1&t&&(d(0,"mat-icon",71),h(1," check_circle "),l())}function epe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Qme,2,0,"span",59)(2,Xme,2,0,"span",59),d(3,"span"),h(4,"GCS Metadata Path (Optional) "),d(5,"mat-icon",69),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openGcsMetadataDetailsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Jme,2,0,"mat-icon",70),l()()()}if(2&t){const e=C();m(),f("ngIf","Schema"===e.selectedMigrationMode),m(),f("ngIf","Schema"!==e.selectedMigrationMode),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsMetadataDetailSet)}}function tpe(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function ipe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,tpe,2,0,"span",59),d(2,"span"),h(3,"Download configuration as JSON "),d(4,"mat-icon",72),h(5,"info "),l()(),d(6,"span")(7,"button",29),A("click",function(){return ie(e),ne(C().downloadConfiguration())}),h(8," Download "),d(9,"mat-icon",73),h(10," download"),l()()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(6),f("disabled",!e.isTargetDetailSet||!e.isTargetConnectionProfileSet)}}function npe(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Source Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Source Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Number of physical instances configured: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Number of logical shards configured: "),l(),h(24),l()()()()),2&t){const e=C();m(10),Pe(e.sourceDatabaseType),m(7),xe(" ",e.numberOfInstances,""),m(7),xe(" ",e.numberOfShards,"")}}function ope(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Target Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Spanner Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Spanner Dialect: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Region: "),l(),h(24),l()(),d(25,"p",26)(26,"span",27),h(27,"4"),l(),d(28,"span")(29,"b"),h(30,"Spanner Instance: "),l(),h(31),l()()()()),2&t){const e=C();m(10),Pe(e.targetDetails.TargetDB),m(7),Pe(e.dialect),m(7),Pe(e.region),m(7),Cv("",e.instance," (Nodes: ",e.nodeCount,", Processing Units: ",e.processingUnits,")")}}function rpe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.schemaMigrationProgress),m(2),xe(" ",e.schemaProgressMessage,"")}}function ape(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.dataMigrationProgress),m(2),xe(" ",e.dataProgressMessage,"")}}function spe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.foreignKeyUpdateProgress),m(2),xe(" ",e.foreignKeyProgressMessage,"")}}function cpe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",76),D(3,"mat-spinner",77),l(),d(4,"span",78),h(5,"Generating Resources"),l(),D(6,"br"),h(7," Note: Spanner migration tool is creating datastream and dataflow resources. Please look at the terminal logs to check the progress of resource creation. All created resources will be displayed here once they are generated. "),l()),2&t&&(m(3),f("diameter",20))}function lpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Aggregated Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.AggMonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.AggMonitoringDashboardName)}}function dpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.MonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.MonitoringDashboardName)}}function upe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"4"),l(),d(4,"span")(5,"b"),h(6,"Datastream job: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataStreamJobUrl,qo),m(),Pe(e.resourcesGenerated.DataStreamJobName)}}function hpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"p",26)(2,"span",27),h(3,"5"),l(),d(4,"span")(5,"b"),h(6,"Dataflow job: "),l(),d(7,"a",79),h(8),l()(),d(9,"span")(10,"button",80),A("click",function(){ie(e);const o=C(2);return ne(o.openGcloudPopup(o.resourcesGenerated.DataflowGcloudCmd))}),d(11,"mat-icon",81),h(12," code"),l()()()()()}if(2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataflowJobUrl,qo),m(),Pe(e.resourcesGenerated.DataflowJobName)}}function mpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"6"),l(),d(4,"span")(5,"b"),h(6,"Pubsub topic: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubTopicUrl,qo),m(),Pe(e.resourcesGenerated.PubsubTopicName)}}function ppe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"7"),l(),d(4,"span")(5,"b"),h(6,"Pubsub subscription: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubSubscriptionUrl,qo),m(),Pe(e.resourcesGenerated.PubsubSubscriptionName)}}function fpe(t,n){1&t&&(d(0,"th",38),h(1," Shard ID "),l())}function gpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.DataShardId," ")}}function _pe(t,n){1&t&&(d(0,"th",38),h(1," Resource Type "),l())}function bpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit,i=C(3);m(),xe(" ",i.resourceTypeToDisplayTest.get(e.ResourceType)," ")}}function vpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Name "),l())}function ype(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.ResourceName," ")}}function Cpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Link "),l())}function wpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",80),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).openGcloudPopup(o.GcloudCmd))}),d(2,"mat-icon",81),h(3," code"),l()()()}}function xpe(t,n){if(1&t&&(d(0,"td",39)(1,"a",79),h(2),l(),y(3,wpe,4,0,"span",10),l()),2&t){const e=n.$implicit;m(),f("href",e.ResourceUrl,qo),m(),Pe(e.ResourceName),m(),f("ngIf","dataflow"==e.ResourceType)}}function Dpe(t,n){1&t&&D(0,"tr",40)}function Spe(t,n){1&t&&D(0,"tr",41)}function kpe(t,n){if(1&t&&(d(0,"span")(1,"h2"),h(2,"Shard Level Resources: "),l(),d(3,"div",82)(4,"table",83),me(5,84),y(6,fpe,2,0,"th",14)(7,gpe,2,1,"td",15),pe(),me(8,85),y(9,_pe,2,0,"th",14)(10,bpe,2,1,"td",15),pe(),me(11,86),y(12,vpe,2,0,"th",14)(13,ype,2,1,"td",15),pe(),me(14,87),y(15,Cpe,2,0,"th",14)(16,xpe,4,3,"td",15),pe(),y(17,Dpe,1,0,"tr",18)(18,Spe,1,0,"tr",19),l()()()),2&t){const e=C(2);m(4),f("dataSource",e.displayedResourcesDataSource),m(13),f("matHeaderRowDef",e.generatedResourcesColumns),m(),f("matRowDefColumns",e.generatedResourcesColumns)}}function Mpe(t,n){if(1&t&&(d(0,"div")(1,"h2"),h(2),l(),h(3,' Note: This resources displayed below can be looked upto at a later point in time in the "spannermigrationtool_metadata" database in your spanner instance using the migration jobId listed above. '),d(4,"div",24)(5,"mat-card")(6,"mat-card-title"),h(7,"Job Level Resources:"),l(),d(8,"p",26)(9,"span",27),h(10,"1"),l(),d(11,"span")(12,"b"),h(13,"Spanner Database: "),l(),d(14,"a",79),h(15),l()()(),d(16,"p",26)(17,"span",27),h(18,"2"),l(),d(19,"span")(20,"b"),h(21,"GCS bucket: "),l(),d(22,"a",79),h(23),l()()(),y(24,lpe,9,2,"span",10)(25,dpe,9,2,"span",10)(26,upe,9,2,"span",10)(27,hpe,13,2,"span",10)(28,mpe,9,2,"span",10)(29,ppe,9,2,"span",10),l()(),y(30,kpe,19,3,"span",10),l()),2&t){const e=C();m(2),xe("Migration resources generated for migration jobId: ",e.resourcesGenerated.MigrationJobId,""),m(12),f("href",e.resourcesGenerated.DatabaseUrl,qo),m(),Pe(e.resourcesGenerated.DatabaseName),m(7),f("href",e.resourcesGenerated.BucketUrl,qo),m(),Pe(e.resourcesGenerated.BucketName),m(),f("ngIf",""!==e.resourcesGenerated.AggMonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.MonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataStreamJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataflowJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubTopicName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubSubscriptionName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf","lowdt"===e.selectedMigrationType&&e.isSharded)}}function Tpe(t,n){1&t&&(d(0,"div")(1,"b"),h(2,"Note: "),l(),h(3,"Spanner migration tool has orchestrated the migration successfully. For minimal downtime migrations, it is safe to close Spanner migration tool now without affecting the progress of the migration. The resources listed on this page can be viewed in the \"SMT_JOB\" table in the 'spannermigrationtool_metadata' database created in your Spanner instance after you close the Spanner migration tool. "),l())}function Ipe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",88),A("click",function(){return ie(e),ne(C().migrate())}),h(2,"Migrate"),l()()}if(2&t){const e=C();m(),f("disabled",!(e.isTargetDetailSet&&"lowdt"===e.selectedMigrationType&&e.isSourceConnectionProfileSet&&e.isTargetConnectionProfileSet||e.isTargetDetailSet&&"bulk"===e.selectedMigrationType)||e.isMigrationInProgress)}}function Epe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",89),A("click",function(){return ie(e),ne(C().endMigration())}),h(2,"End Migration"),l()()}}const Ope=()=>[5,10,20],Ape=[{path:"",component:Xoe},{path:"source",component:kre,children:[{path:"",redirectTo:"/direct-connection",pathMatch:"full"},{path:"direct-connection",component:coe},{path:"load-dump",component:ure},{path:"load-session",component:gre}]},{path:"workspace",component:Yue},{path:"instruction",component:AN},{path:"prepare-migration",component:(()=>{class t{constructor(e,i,o,r,a){this.dialog=e,this.fetch=i,this.snack=o,this.data=r,this.sidenav=a,this.displayedColumns=["Title","Source","Destination"],this.dataSource=[],this.migrationModes=[],this.migrationTypes=[],this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isSourceDetailsSet=!1,this.isTargetDetailSet=!1,this.isForeignKeySkipped=!1,this.isMigrationDetailSet=!1,this.isStreamingSupported=!1,this.isGcsMetadataDetailSet=!1,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.hasForeignKeyUpdateStarted=!1,this.selectedMigrationMode=Kr.schemaAndData,this.connectionType=Jn.DirectConnect,this.selectedMigrationType=Hn.lowDowntimeMigration,this.isMigrationInProgress=!1,this.isLowDtMigrationRunning=!1,this.isResourceGenerated=!1,this.generatingResources=!1,this.errorMessage="",this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.foreignKeyProgressMessage="Foreign key update in progress...",this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.foreignKeyUpdateProgress=0,this.sourceDatabaseName="",this.sourceDatabaseType="",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.generatedResourcesColumns=["shardId","resourceType","resourceName","resourceUrl"],this.displayedResources=[],this.displayedResourcesDataSource=new uP(this.displayedResources),this.region="",this.instance="",this.dialect="",this.isSharded=!1,this.numberOfShards="0",this.numberOfInstances="0",this.nodeCount=0,this.processingUnits=0,this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""}},this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath"),customJarPath:localStorage.getItem("customJarPath"),customClassName:localStorage.getItem("customClassName"),customParameter:localStorage.getItem("customParameter")},this.spannerConfig={GCPProjectID:"",SpannerInstanceID:"",IsMetadataDbCreated:!1,IsConfigValid:!1},this.skipForeignKeyResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.migrationModesHelpText=new Map([["Schema","Migrates only the schema of the source database to the configured Spanner instance."],["Data","Migrates the data from the source database to the configured Spanner database. The configured database should already contain the schema."],["Schema And Data","Migrates both the schema and the data from the source database to Spanner."]]),this.migrationTypesHelpText=new Map([["bulk","Use the POC migration option when you want to migrate a sample of your data (<100GB) to do a Proof of Concept. It uses this machine's resources to copy data from the source database to Spanner"],["lowdt","Uses change data capture via Datastream to setup a continuous data replication pipeline from source to Spanner, using Dataflow jobs to perform the actual data migration."]]),this.resourceTypeToDisplayTest=new Map([["gcs","Cloud Storage Bucket"],["pubsub_sub","Pub/Sub subscription"],["pubsub_topic","Pub/Sub topic"],["datastream","Datastream Stream"],["dataflow","Dataflow Job"],["monitoring","Monitoring Dashboard"]])}refreshMigrationMode(){this.selectedMigrationMode!==Kr.schemaOnly&&this.isStreamingSupported&&this.connectionType!==Jn.DumpFile?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}])}refreshPrerequisites(){this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isTargetDetailSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isGcsMetadataDetailSet=!1,this.refreshMigrationMode()}ngOnInit(){this.initializeFromLocalStorage(),this.data.config.subscribe(e=>{this.spannerConfig=e}),this.convObj=this.data.conv.subscribe(e=>{this.conv=e}),localStorage.setItem("vpcHostProjectId",this.spannerConfig.GCPProjectID),this.fetch.getSourceDestinationSummary().subscribe({next:e=>{this.connectionType=e.ConnectionType,this.dataSource=[{title:"Database Type",source:e.DatabaseType,target:"Spanner"},{title:"Number of tables",source:e.SourceTableCount,target:e.SpannerTableCount},{title:"Number of indexes",source:e.SourceIndexCount,target:e.SpannerIndexCount}],this.sourceDatabaseType=e.DatabaseType,this.region=e.Region,this.instance=e.Instance,this.dialect=e.Dialect,this.isSharded=e.IsSharded,this.processingUnits=e.ProcessingUnits,this.nodeCount=e.NodeCount,(e.DatabaseType==ir.MySQL.toLowerCase()||e.DatabaseType==ir.Oracle.toLowerCase()||e.DatabaseType==ir.Postgres.toLowerCase())&&(this.isStreamingSupported=!0),this.isStreamingSupported?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}]),this.sourceDatabaseName=e.SourceDatabaseName,this.migrationModes=[Kr.schemaOnly,Kr.dataOnly,Kr.schemaAndData]},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}initializeFromLocalStorage(){null!=localStorage.getItem(he.MigrationMode)&&(this.selectedMigrationMode=localStorage.getItem(he.MigrationMode)),null!=localStorage.getItem(he.MigrationType)&&(this.selectedMigrationType=localStorage.getItem(he.MigrationType)),null!=localStorage.getItem(he.isForeignKeySkipped)&&(this.isForeignKeySkipped="true"===localStorage.getItem(he.isForeignKeySkipped)),null!=localStorage.getItem(he.IsMigrationInProgress)&&(this.isMigrationInProgress="true"===localStorage.getItem(he.IsMigrationInProgress),this.subscribeMigrationProgress()),null!=localStorage.getItem(he.IsTargetDetailSet)&&(this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet)),null!=localStorage.getItem(he.IsSourceConnectionProfileSet)&&(this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet)),null!=localStorage.getItem("isDatastreamConfigSet")&&(this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet")),null!=localStorage.getItem("isGcsConfigSet")&&(this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet")),null!=localStorage.getItem("isDataflowConfigSet")&&(this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet")),null!=localStorage.getItem(he.IsGcsMetadataPathSet)&&(this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet)),null!=localStorage.getItem(he.IsTargetConnectionProfileSet)&&(this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet)),null!=localStorage.getItem(he.IsSourceDetailsSet)&&(this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)),null!=localStorage.getItem(he.IsMigrationDetailSet)&&(this.isMigrationDetailSet="true"===localStorage.getItem(he.IsMigrationDetailSet)),null!=localStorage.getItem(he.HasSchemaMigrationStarted)&&(this.hasSchemaMigrationStarted="true"===localStorage.getItem(he.HasSchemaMigrationStarted)),null!=localStorage.getItem(he.HasDataMigrationStarted)&&(this.hasDataMigrationStarted="true"===localStorage.getItem(he.HasDataMigrationStarted)),null!=localStorage.getItem(he.DataMigrationProgress)&&(this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))),null!=localStorage.getItem(he.SchemaMigrationProgress)&&(this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress))),null!=localStorage.getItem(he.DataProgressMessage)&&(this.dataProgressMessage=localStorage.getItem(he.DataProgressMessage)),null!=localStorage.getItem(he.SchemaProgressMessage)&&(this.schemaProgressMessage=localStorage.getItem(he.SchemaProgressMessage)),null!=localStorage.getItem(he.ForeignKeyProgressMessage)&&(this.foreignKeyProgressMessage=localStorage.getItem(he.ForeignKeyProgressMessage)),null!=localStorage.getItem(he.ForeignKeyUpdateProgress)&&(this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))),null!=localStorage.getItem(he.HasForeignKeyUpdateStarted)&&(this.hasForeignKeyUpdateStarted="true"===localStorage.getItem(he.HasForeignKeyUpdateStarted)),null!=localStorage.getItem(he.GeneratingResources)&&(this.generatingResources="true"===localStorage.getItem(he.GeneratingResources)),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))}clearLocalStorage(){localStorage.removeItem(he.MigrationMode),localStorage.removeItem(he.MigrationType),localStorage.removeItem(he.IsTargetDetailSet),localStorage.removeItem(he.IsGcsMetadataPathSet),localStorage.removeItem(he.isForeignKeySkipped),localStorage.removeItem(he.IsSourceConnectionProfileSet),localStorage.removeItem(he.IsTargetConnectionProfileSet),localStorage.removeItem(he.IsSourceDetailsSet),localStorage.removeItem("isDatastreamConfigSet"),localStorage.removeItem("maxConcurrentBackfillTasks"),localStorage.removeItem("maxConcurrentCdcTasks"),localStorage.removeItem("isGcsConfigSet"),localStorage.removeItem("ttlInDays"),localStorage.removeItem("ttlInDaysSet"),localStorage.removeItem("isDataflowConfigSet"),localStorage.removeItem("network"),localStorage.removeItem("subnetwork"),localStorage.removeItem("maxWorkers"),localStorage.removeItem("numWorkers"),localStorage.removeItem("serviceAccountEmail"),localStorage.removeItem("vpcHostProjectId"),localStorage.removeItem("machineType"),localStorage.removeItem("additionalUserLabels"),localStorage.removeItem("kmsKeyName"),localStorage.removeItem("dataflowProjectId"),localStorage.removeItem("dataflowLocation"),localStorage.removeItem("gcsTemplatePath"),localStorage.removeItem(he.IsMigrationInProgress),localStorage.removeItem(he.HasSchemaMigrationStarted),localStorage.removeItem(he.HasDataMigrationStarted),localStorage.removeItem(he.DataMigrationProgress),localStorage.removeItem(he.SchemaMigrationProgress),localStorage.removeItem(he.DataProgressMessage),localStorage.removeItem(he.SchemaProgressMessage),localStorage.removeItem(he.ForeignKeyProgressMessage),localStorage.removeItem(he.ForeignKeyUpdateProgress),localStorage.removeItem(he.HasForeignKeyUpdateStarted),localStorage.removeItem(he.GeneratingResources),localStorage.removeItem(he.NumberOfShards),localStorage.removeItem(he.NumberOfInstances)}openConnectionProfileForm(e){this.dialog.open(che,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{IsSource:e,SourceDatabaseType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openMigrationProfileForm(){this.dialog.open(lme,{width:"30vw",minWidth:"1200px",maxWidth:"1600px",data:{IsSource:!1,SourceDatabaseType:this.sourceDatabaseType,Region:this.region}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances)),this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcloudPopup(e){this.dialog.open(She,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:e})}openTuneDatastreamForm(){this.dialog.open(whe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:{sourceType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet"),this.isSharded&&this.fetch.setDatastreamDetailsForShardedMigrations(this.datastreamConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openTuneGcsForm(){this.dialog.open(Dhe,{width:"4000px",minWidth:"400px",maxWidth:"500px"}).afterClosed().subscribe(()=>{this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet"),this.isSharded&&this.fetch.setGcsDetailsForShardedMigrations(this.gcsConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openDataflowForm(){this.dialog.open(yhe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(()=>{this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath"),customJarPath:localStorage.getItem("customJarPath"),customClassName:localStorage.getItem("customClassName"),customParameter:localStorage.getItem("customParameter")},this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet"),this.isSharded&&this.fetch.setDataflowDetailsForShardedMigrations(this.dataflowConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}endMigration(){this.dialog.open(vhe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{SpannerDatabaseName:this.resourcesGenerated.DatabaseName,SpannerDatabaseUrl:this.resourcesGenerated.DatabaseUrl,SourceDatabaseType:this.sourceDatabaseType,SourceDatabaseName:this.sourceDatabaseName}}).afterClosed().subscribe()}openSourceDetailsForm(){this.dialog.open(_he,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.sourceDatabaseType}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)})}openShardedBulkSourceDetailsForm(){this.dialog.open(Ohe,{width:"30vw",minWidth:"400px",maxWidth:"550px",data:{sourceDatabaseEngine:this.sourceDatabaseType,isRestoredSession:this.connectionType}}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))})}openTargetDetailsForm(){this.dialog.open(Que,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{Region:this.region,Instance:this.instance,Dialect:this.dialect}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet),(this.isSourceDetailsSet&&this.isTargetDetailSet&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode!==Kr.schemaOnly||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType!==Jn.SessionFile||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode===Kr.schemaOnly)&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcsMetadataDetailsForm(){this.dialog.open(dme,eoe).afterClosed().subscribe(()=>{this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet),this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}}})}migrate(){this.resetValues(),this.fetch.migrate({TargetDetails:this.targetDetails,DatastreamConfig:this.datastreamConfig,GcsConfig:this.gcsConfig,DataflowConfig:this.dataflowConfig,IsSharded:this.isSharded,MigrationType:this.selectedMigrationType,MigrationMode:this.selectedMigrationMode,skipForeignKeys:this.isForeignKeySkipped}).subscribe({next:()=>{this.selectedMigrationMode==Kr.dataOnly?this.selectedMigrationType==Hn.bulkMigration?(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())):(this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close")):(this.hasSchemaMigrationStarted=!0,localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString())),this.snack.openSnackBar("Migration started successfully","Close",5),this.subscribeMigrationProgress()},error:i=>{this.snack.openSnackBar(i.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.clearLocalStorage()}})}subscribeMigrationProgress(){var e=!1;this.subscription=ON(5e3).subscribe(i=>{this.fetch.getProgress().subscribe({next:o=>{""==o.ErrorMessage?o.ProgressStatus==rd.SchemaMigrationComplete?(localStorage.setItem(he.SchemaMigrationProgress,"100"),this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress)),this.selectedMigrationMode==Kr.schemaOnly?this.markMigrationComplete():this.selectedMigrationType==Hn.lowDowntimeMigration?(this.markSchemaMigrationComplete(),this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),e||(this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close"),e=!0)):(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()))):o.ProgressStatus==rd.DataMigrationComplete?(this.selectedMigrationType!=Hn.lowDowntimeMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.markMigrationComplete()):o.ProgressStatus==rd.DataWriteInProgress?(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.DataMigrationProgress,o.Progress.toString()),this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))):o.ProgressStatus==rd.ForeignKeyUpdateComplete?this.markMigrationComplete():o.ProgressStatus==rd.ForeignKeyUpdateInProgress&&(this.markSchemaMigrationComplete(),this.selectedMigrationType==Hn.bulkMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.markForeignKeyUpdateInitiation(),this.dataMigrationProgress=100,localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,o.Progress.toString()),this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress)),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.fetchGeneratedResources()):(this.errorMessage=o.ErrorMessage,this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.snack.openSnackBarWithoutTimeout(this.errorMessage,"Close"),this.schemaProgressMessage="Schema migration cancelled!",this.dataProgressMessage="Data migration cancelled!",this.foreignKeyProgressMessage="Foreign key update cancelled!",this.generatingResources=!1,this.isLowDtMigrationRunning=!1,this.clearLocalStorage())},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.clearLocalStorage()}})})}markForeignKeyUpdateInitiation(){this.dataMigrationProgress=100,this.dataProgressMessage="Data migration completed successfully!",localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),this.hasForeignKeyUpdateStarted=!0,this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))}markSchemaMigrationComplete(){this.schemaMigrationProgress=100,this.schemaProgressMessage="Schema migration completed successfully!",localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage)}downloadConfiguration(){this.fetch.getSourceProfile().subscribe({next:e=>{this.configuredMigrationProfile=e;var i=document.createElement("a");let o=JSON.stringify(this.configuredMigrationProfile,null,"\t").replace(/9223372036854776000/g,"9223372036854775807");i.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),i.download=localStorage.getItem(yt.TargetDB)+"-"+this.configuredMigrationProfile.configType+"-shardConfig.cfg",i.click()},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}fetchGeneratedResources(){this.fetch.getGeneratedResources().subscribe({next:e=>{this.isResourceGenerated=!0,this.resourcesGenerated=e,this.resourcesGenerated.ShardToShardResourcesMap=new Map(Object.entries(this.resourcesGenerated.ShardToShardResourcesMap)),this.prepareGeneratedResourcesTableData(this.resourcesGenerated)},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.selectedMigrationType===Hn.lowDowntimeMigration&&(this.isLowDtMigrationRunning=!0)}markMigrationComplete(){this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.dataProgressMessage="Data migration completed successfully!",this.schemaProgressMessage="Schema migration completed successfully!",this.schemaMigrationProgress=100,this.dataMigrationProgress=100,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key updated successfully!",this.fetchGeneratedResources(),this.clearLocalStorage(),this.refreshPrerequisites()}resetValues(){this.isMigrationInProgress=!this.isMigrationInProgress,this.hasSchemaMigrationStarted=!1,this.hasDataMigrationStarted=!1,this.generatingResources=!1,this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.isResourceGenerated=!1,this.hasForeignKeyUpdateStarted=!1,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key update in progress...",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.initializeLocalStorage()}initializeLocalStorage(){localStorage.setItem(he.MigrationMode,this.selectedMigrationMode),localStorage.setItem(he.MigrationType,this.selectedMigrationType),localStorage.setItem(he.isForeignKeySkipped,this.isForeignKeySkipped.toString()),localStorage.setItem(he.IsMigrationInProgress,this.isMigrationInProgress.toString()),localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString()),localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.HasForeignKeyUpdateStarted,this.hasForeignKeyUpdateStarted.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,this.foreignKeyUpdateProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage),localStorage.setItem(he.DataProgressMessage,this.dataProgressMessage),localStorage.setItem(he.ForeignKeyProgressMessage,this.foreignKeyProgressMessage),localStorage.setItem(he.IsTargetDetailSet,this.isTargetDetailSet.toString()),localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),localStorage.setItem(he.IsGcsMetadataPathSet,this.isGcsMetadataDetailSet.toString())}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}prepareGeneratedResourcesTableData(e){for(let[i,o]of e.ShardToShardResourcesMap){for(let r of o)r.DataShardId=i;this.displayedResources.push(...o)}this.displayedResourcesDataSource=new uP(this.displayedResources),this.displayedResourcesDataSource.paginator=this.paginator}ngOnDestroy(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(En),_(nr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-prepare-migration"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:100,vars:41,consts:[[1,"header"],[1,"breadcrumb"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],["mat-button","",1,"breadcrumb_prepare_migration",3,"routerLink"],[1,"header_action"],["mat-button","",3,"click"],["mat-button","","color","primary",3,"click"],[1,"body"],[1,"definition-container"],[4,"ngIf"],[1,"summary"],["id","summary-table","mat-table","",3,"dataSource"],["matColumnDef","Title"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Source"],["matColumnDef","Destination"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["appearance","outline"],[3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"configure",3,"matTooltip"],[1,"mat-card-class"],["class","static-prereqs",4,"ngIf"],[1,"point"],[1,"bullet"],["matTooltip","Configure the database in Spanner you want this migration to write to (up till now only GCP Project ID and Spanner Instance name have been configured.)",1,"configure"],["mat-button","","color","primary",3,"disabled","click"],["iconPositionEnd",""],["iconPositionEnd","","class","success","matTooltip","Target details configured","matTooltipPosition","above",4,"ngIf"],["class","point",4,"ngIf"],["class","mat-card-class",4,"ngIf"],["class","progress_bar",4,"ngIf"],[1,"mat-elevation-z8",3,"hidden"],["showFirstLastButtons","","aria-label","Select page",3,"pageSizeOptions"],[1,"migrate"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""],[3,"value"],[3,"ngModel","ngModelChange"],[1,"static-prereqs"],["href","https://cloud.google.com/datastream/docs/sources","target","_blank"],["href","https://cloud.google.com/dataflow/docs/concepts/security-and-permissions","target","_blank"],["href","https://cloud.google.com/dataflow/docs/guides/routes-firewall","target","_blank"],["iconPositionEnd","","class","success","matTooltip","Source details configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source details configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the connection info of all source shards to connect to and migrate data from.",1,"configure"],["iconPositionEnd","","matTooltip","Target details configured","matTooltipPosition","above",1,"success"],["matTooltip","Datastream will be used to capture change events from the source database. Please ensure you have met the pre-requistes required for setting up Datastream in your GCP environment. ",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Source connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source connection profile configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the source connection profile to allow Datastream to read from your source database",1,"configure"],["matTooltip","Create a connection profile for datastream to write to a GCS bucket. Spanner migration tool will automatically create the bucket for you.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Target connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Target connection profile configured","matTooltipPosition","above",1,"success"],["class","bullet",4,"ngIf"],["matTooltip","Datastream will be used to stream CDC from source to GCS. This helps you configure the runtime environment for the Datastream job(s) e.g Parallel Backfill workers.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Datastream Tuned","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Datastream Tuned","matTooltipPosition","above",1,"success"],["matTooltip","Use this to tune the GCS bucket options where Datastream outputs to and Dataflow reads from.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",1,"success"],["matTooltip","Dataflow will be used to perform the actual migration of data from source to Spanner. This helps you configure the execution environment for Dataflow jobs e.g VPC.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Dataflow Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Dataflow Configured","matTooltipPosition","above",1,"success"],["matTooltip","Specify existing or new GCS path to store metadata for migration.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",1,"success"],["matTooltip","Download the configuration done above as JSON.",1,"configure"],["iconPositionEnd","","matTooltip","Download configured shards as JSON","matTooltipPosition","above"],[1,"progress_bar"],["mode","determinate",3,"value"],[1,"spinner"],[3,"diameter"],[1,"spinner-text"],["target","_blank",3,"href"],["mat-button","",1,"configure",3,"click"],["matTooltip","Equivalent gCloud command","matTooltipPosition","above"],[1,"mat-elevation-z8"],["id","resources-table","mat-table","",3,"dataSource"],["matColumnDef","shardId"],["matColumnDef","resourceType"],["matColumnDef","resourceName"],["matColumnDef","resourceUrl"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"a",2),h(3,"Select Source"),l(),d(4,"span"),h(5,">"),l(),d(6,"a",3),h(7),l(),d(8,"span"),h(9,">"),l(),d(10,"a",4)(11,"b"),h(12,"Prepare Migration"),l()()(),d(13,"div",5)(14,"button",6),A("click",function(){return o.openSaveSessionSidenav()}),h(15," SAVE SESSION "),l(),d(16,"button",7),A("click",function(){return o.downloadSession()}),h(17,"DOWNLOAD SESSION FILE"),l()()(),D(18,"br"),d(19,"div",8)(20,"div",9),y(21,ume,2,0,"h2",10)(22,hme,2,0,"h2",10),d(23,"div",11)(24,"table",12),me(25,13),y(26,mme,2,0,"th",14)(27,pme,3,1,"td",15),pe(),me(28,16),y(29,fme,2,0,"th",14)(30,gme,2,1,"td",15),pe(),me(31,17),y(32,_me,2,0,"th",14)(33,bme,2,1,"td",15),pe(),y(34,vme,1,0,"tr",18)(35,yme,1,0,"tr",19),l()()(),D(36,"br"),d(37,"mat-form-field",20)(38,"mat-label"),h(39,"Migration Mode:"),l(),d(40,"mat-select",21),un("ngModelChange",function(a){return kn(o.selectedMigrationMode,a)||(o.selectedMigrationMode=a),a}),A("selectionChange",function(){return o.refreshPrerequisites()}),y(41,Cme,2,2,"mat-option",22),l()(),d(42,"mat-icon",23),h(43,"info"),l(),D(44,"br"),y(45,xme,9,3,"div",10)(46,Sme,6,2,"div",10),d(47,"div",24)(48,"mat-card")(49,"mat-card-title"),h(50,"Prerequisites"),l(),d(51,"mat-card-subtitle"),h(52,"Before we begin, please ensure you have done the following:"),l(),y(53,kme,6,0,"div",25)(54,Mme,20,0,"div",25),l()(),d(55,"div",24)(56,"mat-card"),y(57,Ime,14,2,"div",10)(58,Ome,16,2,"div",10),d(59,"div")(60,"mat-card-title"),h(61,"Target details:"),l(),d(62,"p",26)(63,"span",27),h(64,"1"),l(),d(65,"span"),h(66,"Configure Spanner Database "),d(67,"mat-icon",28),h(68," info"),l()(),d(69,"span")(70,"button",29),A("click",function(){return o.openTargetDetailsForm()}),h(71," Configure "),d(72,"mat-icon",30),h(73,"edit"),l(),y(74,Ame,2,0,"mat-icon",31),l()()(),y(75,Rme,13,2,"p",32)(76,Fme,13,2,"p",32)(77,Bme,13,2,"p",32)(78,Hme,13,4,"p",32)(79,qme,13,4,"p",32)(80,Yme,13,4,"p",32)(81,epe,13,4,"p",32)(82,ipe,11,2,"p",32),l()()(),y(83,npe,25,3,"div",33)(84,ope,32,6,"div",33)(85,rpe,5,2,"div",34)(86,ape,5,2,"div",34)(87,spe,5,2,"div",34)(88,cpe,8,1,"div",10),D(89,"br")(90,"br"),y(91,Mpe,31,12,"div",10),d(92,"div",35),D(93,"mat-paginator",36),l(),D(94,"br")(95,"br"),y(96,Tpe,4,0,"div",10),d(97,"div",37),y(98,Ipe,3,1,"span",10)(99,Epe,3,0,"span",10),l()()),2&i&&(m(2),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(),xe("Configure Schema (",o.dialect," Dialect)"),m(3),f("routerLink","/prepare-migration"),m(11),f("ngIf",!o.isSharded),m(),f("ngIf",o.isSharded),m(2),f("dataSource",o.dataSource),m(10),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(5),dn("ngModel",o.selectedMigrationMode),m(),f("ngForOf",o.migrationModes),m(),f("matTooltip",o.migrationModesHelpText.get(o.selectedMigrationMode)),m(3),f("ngIf","Schema"!=o.selectedMigrationMode),m(),f("ngIf",!("Schema"===o.selectedMigrationMode||"lowdt"===o.selectedMigrationType)),m(7),f("ngIf","bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(3),f("ngIf","sessionFile"===o.connectionType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf",o.isSharded&&"bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(12),f("disabled",o.isMigrationInProgress||o.isLowDtMigrationRunning),m(4),f("ngIf",o.isTargetDetailSet),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf",o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf",o.isTargetDetailSet),m(),f("ngIf",o.hasSchemaMigrationStarted),m(),f("ngIf",o.hasDataMigrationStarted),m(),f("ngIf",o.hasForeignKeyUpdateStarted),m(),f("ngIf",o.generatingResources),m(3),f("ngIf",o.isResourceGenerated),m(),f("hidden",!(o.isResourceGenerated&&"lowdt"===o.selectedMigrationType&&o.isSharded)),m(),f("pageSizeOptions",No(40,Ope)),m(3),f("ngIf",o.isResourceGenerated&&"lowdt"===o.selectedMigrationType),m(2),f("ngIf",!o.isLowDtMigrationRunning),m(),f("ngIf",o.isLowDtMigrationRunning))},dependencies:[rn,It,qr,zE,Yt,Mi,Gu,O0,E0,vO,Di,xi,Xn,Tn,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,WC,vn,Nl,sd],styles:[".header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_workspace[_ngcontent-%COMP%]{color:#0000008f}.header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_prepare_migration[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.definition-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.definition-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}.body[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}#summary-table[_ngcontent-%COMP%]{min-width:30%;max-width:50%}#summary-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:10%}.configure[_ngcontent-%COMP%]{color:#1967d2}.migrate[_ngcontent-%COMP%]{margin-top:10px}#resources-table[_ngcontent-%COMP%]{width:100%}"]})}return t})()},{path:"**",redirectTo:"/",pathMatch:"full"}];let Ppe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[wN.forRoot(Ape),wN]})}return t})(),Rpe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.data=r,this.dialogRef=a,this.errMessage="",this.updateConfigForm=new ti({GCPProjectID:new U(r.GCPProjectID,[ee.required]),SpannerInstanceID:new U(r.SpannerInstanceID,[ee.required])}),a.disableClose=!0}updateSpannerConfig(){let e=this.updateConfigForm.value;this.fetch.setSpannerConfig({GCPProjectID:e.GCPProjectID,SpannerInstanceID:e.SpannerInstanceID}).subscribe({next:o=>{o.IsMetadataDbCreated&&this.snack.openSnackBar("Metadata database not found. A new database has been created to store session metadata.","Close",5),this.snack.openSnackBar(o.IsConfigValid?"Spanner Config updated successfully":"Invalid Spanner Configuration","Close",5),this.dialogRef.close({...o}),this.dataService.updateIsOffline(),this.dataService.updateConfig(o),this.dataService.getAllSessions()},error:o=>{this.snack.openSnackBar(o.message,"Close")}})}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-update-spanner-config-form"]],decls:20,vars:3,consts:[["mat-dialog-content",""],[1,"save-session-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","project id","type","text","formControlName","GCPProjectID","id","project-id"],["hintLabel","Min. 2 characters and Max. 64 characters","appearance","outline",1,"full-width"],["matInput","","placeholder","instance id","type","text","required","","minlength","2","maxlength","64","pattern","^[a-z]([-a-z0-9]*[a-z0-9])?","formControlName","SpannerInstanceID","id","instance-id"],["align","end"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["id","save-button","mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Connect to Spanner"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Project ID"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Instance ID"),l(),D(12,"input",5),d(13,"mat-hint",6),h(14),l()()()(),d(15,"div",7)(16,"button",8),h(17,"CANCEL"),l(),d(18,"button",9),A("click",function(){return o.updateSpannerConfig()}),h(19," SAVE "),l()()),2&i&&(m(),f("formGroup",o.updateConfigForm),m(13),xe("",(null==o.updateConfigForm.value.SpannerInstanceID?null:o.updateConfigForm.value.SpannerInstanceID.length)||0,"/64"),m(4),f("disabled",!o.updateConfigForm.valid))},dependencies:[Yt,Di,xi,sc,qi,_n,Ci,_i,Bi,Do,X0,J0,eC,wi,zi,zn,So,ko],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"]})}return t})();function Npe(t,n){1&t&&(d(0,"mat-icon",11),h(1," warning "),l())}function Fpe(t,n){1&t&&(d(0,"mat-icon",12),h(1," check_circle "),l())}function Lpe(t,n){1&t&&(d(0,"mat-icon",13),h(1," warning "),l())}function Bpe(t,n){1&t&&(d(0,"div")(1,"span",null,14),h(3,"Spanner database is not configured, click on edit button to configure "),l()())}function Vpe(t,n){if(1&t&&(d(0,"div")(1,"span",15)(2,"b"),h(3,"Project Id: "),l(),h(4),l(),d(5,"span",16)(6,"b"),h(7,"Spanner Instance Id: "),l(),h(8),l()()),2&t){const e=C();m(4),Pe(e.spannerConfig.GCPProjectID),m(4),Pe(e.spannerConfig.SpannerInstanceID)}}let jpe=(()=>{class t{constructor(e,i,o,r,a){this.data=e,this.dialog=i,this.sidenav=o,this.clickEvent=r,this.loaderService=a,this.isOfflineStatus=!1,this.spannerConfig={GCPProjectID:"",SpannerInstanceID:""}}ngOnInit(){this.data.config.subscribe(e=>{this.spannerConfig=e}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}}),this.clickEvent.spannerConfig.subscribe(e=>{e&&this.openEditForm()})}openEditForm(){this.dialog.open(Rpe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(i=>{i&&(this.spannerConfig=i)})}showWarning(){return!this.spannerConfig.GCPProjectID&&!this.spannerConfig.SpannerInstanceID}openInstructionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("instruction")}openUserGuide(){window.open("https://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/SpannerMigrationToolUIUserGuide.pdf","_blank")}stopLoading(){this.loaderService.stopLoader(),this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Hr),_(eo),_(or),_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-header"]],decls:16,vars:6,consts:[["color","secondry",1,"header-container"],[1,"pointer",3,"routerLink","click"],[1,"menu-spacer"],[1,"right_container"],[1,"spanner_config"],["class","icon warning","matTooltip","Invalid spanner configuration. Working in offline mode",4,"ngIf"],["id","check-icon","class","icon success","matTooltip","Valid spanner configuration.",4,"ngIf"],["class","icon warning","matTooltip","Spanner configuration has not been set.",4,"ngIf"],[4,"ngIf"],["id","edit-icon","matTooltip","Edit Settings",1,"cursor-pointer",3,"click"],["mat-icon-button","","matTooltip","Instruction",1,"example-icon","favorite-icon",3,"click"],["matTooltip","Invalid spanner configuration. Working in offline mode",1,"icon","warning"],["id","check-icon","matTooltip","Valid spanner configuration.",1,"icon","success"],["matTooltip","Spanner configuration has not been set.",1,"icon","warning"],["name",""],[1,"pid"],[1,"iid"]],template:function(i,o){1&i&&(d(0,"mat-toolbar",0)(1,"span",1),A("click",function(){return o.stopLoading()}),h(2," Spanner migration tool"),l(),D(3,"span",2),d(4,"div",3)(5,"div",4),y(6,Npe,2,0,"mat-icon",5)(7,Fpe,2,0,"mat-icon",6)(8,Lpe,2,0,"mat-icon",7)(9,Bpe,4,0,"div",8)(10,Vpe,9,2,"div",8),d(11,"mat-icon",9),A("click",function(){return o.openEditForm()}),h(12,"edit"),l()(),d(13,"button",10),A("click",function(){return o.openUserGuide()}),d(14,"mat-icon"),h(15,"help"),l()()()()),2&i&&(m(),f("routerLink","/"),m(5),f("ngIf",o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",!o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",!o.showWarning()))},dependencies:[It,qr,Aq,ba,Mi,vn],styles:[".header-container[_ngcontent-%COMP%]{padding:0 20px}.menu-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.right_container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%]{margin:0 15px 0 0;display:flex;align-items:center;border-radius:5px;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:2px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:300;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pid[_ngcontent-%COMP%]{margin-right:10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pointer[_ngcontent-%COMP%]{cursor:pointer}.cursor-pointer[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function zpe(t,n){1&t&&(d(0,"div",1),D(1,"mat-progress-bar",2),l())}let Hpe=(()=>{class t{constructor(e){this.loaderService=e,this.showProgress=!0}ngOnInit(){this.loaderService.isLoading.subscribe(e=>{this.showProgress=e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-loader"]],decls:1,vars:1,consts:[["class","progress-bar-wrapper",4,"ngIf"],[1,"progress-bar-wrapper"],["mode","indeterminate","value","40"]],template:function(i,o){1&i&&y(0,zpe,2,0,"div",0),2&i&&f("ngIf",o.showProgress)},dependencies:[It,vO],styles:[".progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%]{height:2px}"]})}return t})();function Upe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function $pe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Gpe(t,n){if(1&t){const e=_e();d(0,"button",20),A("click",function(){ie(e);const o=C().index;return ne(C().removeColumnForm(o))}),d(1,"mat-icon"),h(2,"remove"),l(),d(3,"span"),h(4,"REMOVE COLUMN"),l()()}}function qpe(t,n){if(1&t){const e=_e();me(0),d(1,"mat-card",13)(2,"div",14)(3,"mat-form-field",1)(4,"mat-label"),h(5,"Column Name"),l(),d(6,"mat-select",15),A("selectionChange",function(){return ie(e),ne(C().selectedColumnChange())}),y(7,$pe,2,2,"mat-option",3),l()(),d(8,"mat-form-field",1)(9,"mat-label"),h(10,"Sort"),l(),d(11,"mat-select",16)(12,"mat-option",17),h(13,"Ascending"),l(),d(14,"mat-option",18),h(15,"Descending"),l()()()(),y(16,Gpe,5,0,"button",19),l(),pe()}if(2&t){const e=n.index,i=C();m(2),f("formGroupName",e),m(5),f("ngForOf",i.addColumnsList[e]),m(9),f("ngIf",!i.viewRuleFlag)}}function Wpe(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().addNewColumnForm())}),d(1,"mat-icon"),h(2,"add"),l(),d(3,"span"),h(4,"ADD COLUMN"),l()()}}function Kpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",22),A("click",function(){return ie(e),ne(C().addIndex())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addIndexForm.valid&&e.ruleNameValid&&e.ColsArray.controls.length>0))}}function Zpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",23),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2," DELETE RULE "),l()()}}let Ype=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.tableNames=[],this.totalColumns=[],this.addColumnsList=[],this.commonColumns=[],this.viewRuleData={},this.viewRuleFlag=!1,this.conv={},this.ruleId="",this.addIndexForm=this.fb.group({tableName:["",ee.required],indexName:["",[ee.required,ee.pattern("^[A-Za-z][A-Za-z0-9_]{0,127}$")]],ColsArray:this.fb.array([])})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name)}}),this.sidenav.sidenavAddIndexTable.subscribe({next:e=>{this.addIndexForm.controls.tableName.setValue(e),""!==e&&this.selectedTableChange(e)}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.viewRuleFlag&&this.getRuleData(this.viewRuleData)})})}getRuleData(e){this.ruleId=e?.Id;let i=this.conv.SpSchema[e?.Data?.TableId]?.Name;this.addIndexForm.controls.tableName.setValue(i),this.addIndexForm.controls.indexName.setValue(e?.Data?.Name),this.selectedTableChange(i),this.setColArraysForViewRules(e?.Data?.TableId,e?.Data?.Keys),this.addIndexForm.disable()}setColArraysForViewRules(e,i){if(this.ColsArray.clear(),i)for(let o=0;oo.ColDefs[r].Name)}this.ColsArray.clear(),this.commonColumns=[],this.addColumnsList=[],this.updateCommonColumns()}addNewColumnForm(){let e=this.fb.group({columnName:["",ee.required],sort:["",ee.required]});this.ColsArray.push(e),this.updateCommonColumns(),this.addColumnsList.push([...this.commonColumns])}selectedColumnChange(){this.updateCommonColumns(),this.addColumnsList=this.addColumnsList.map((e,i)=>{const o=[...this.commonColumns];return""!==this.ColsArray.value[i].columnName&&o.push(this.ColsArray.value[i].columnName),o})}updateCommonColumns(){this.commonColumns=this.totalColumns.filter(e=>{let i=!0;return this.ColsArray.value.forEach(o=>{o.columnName===e&&(i=!1)}),i})}removeColumnForm(e){this.ColsArray.removeAt(e),this.addColumnsList=this.addColumnsList.filter((i,o)=>o!==e),this.selectedColumnChange()}addIndex(){let e=this.addIndexForm.value,i=[],o=this.conversion.getTableIdFromSpName(e.tableName,this.conv);i.push({Name:e.indexName,TableId:o,Unique:!1,Keys:e.ColsArray.map((r,a)=>({ColId:this.conversion.getColIdFromSpannerColName(r.columnName,o,this.conv),Desc:"true"===r.sort,Order:a+1})),Id:""}),this.applyRule(i[0]),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}applyRule(e){let o=this.conversion.getTableIdFromSpName(this.addIndexForm.value.tableName,this.conv);this.data.applyRule({Name:this.ruleName,Type:"add_index",ObjectType:"Table",AssociatedObjects:o,Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-index-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:7,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","formControlName","indexName",1,"input-field"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["align","end"],["formArrayName","ColsArray",1,"addcol-form"],[4,"ngFor","ngForOf"],["mat-button","","color","primary","class","add-column-btn","type","button",3,"click",4,"ngIf"],[4,"ngIf"],[3,"value"],[1,"column-form-card"],[3,"formGroupName"],["matSelect","","formControlName","columnName","required","true",1,"input-field",3,"selectionChange"],["formControlName","sort","required","true",1,"input-field"],["value","false"],["value","true"],["mat-button","","color","primary",3,"click",4,"ngIf"],["mat-button","","color","primary",3,"click"],["mat-button","","color","primary","type","button",1,"add-column-btn",3,"click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"disabled","click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For Table"),l(),d(4,"mat-select",2),A("selectionChange",function(a){return o.selectedTableChange(a.value)}),y(5,Upe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"Index Name"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Max. 128 characters, and starts with a letter. "),d(13,"a",6),h(14,"More Details"),l()()(),d(15,"mat-hint",7),h(16),l()(),me(17,8),y(18,qpe,17,3,"ng-container",9)(19,Wpe,5,0,"button",10),D(20,"br"),y(21,Kpe,3,1,"div",11)(22,Zpe,3,0,"div",11),pe(),l()),2&i&&(f("formGroup",o.addIndexForm),m(5),f("ngForOf",o.tableNames),m(11),xe("",(null==o.addIndexForm.value.indexName?null:o.addIndexForm.value.indexName.length)||0,"/128"),m(2),f("ngForOf",o.ColsArray.controls),m(),f("ngIf",o.addColumnsList.length{class t{constructor(e,i,o,r,a){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.fetch=a,this.ruleNameValid=!1,this.ruleType="",this.ruleName="",this.resetRuleType=new Ne,this.conversionType={},this.sourceType=[],this.destinationType=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.pgSQLToStandardTypeTypemap=new Map,this.standardTypeToPGSQLTypemap=new Map,this.conv={},this.isPostgreSQLDialect=!1,this.addGlobalDataTypeForm=this.fb.group({objectType:["column",ee.required],table:["allTable",ee.required],column:["allColumn",ee.required],sourceType:["",ee.required],destinationType:["",ee.required]})}ngOnInit(){this.data.typeMap.subscribe({next:e=>{this.conversionType=e,this.sourceType=Object.keys(this.conversionType)}}),this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conversion.pgSQLToStandardTypeTypeMap.subscribe(e=>{this.pgSQLToStandardTypeTypemap=e}),this.conversion.standardTypeToPGSQLTypeMap.subscribe(e=>{this.standardTypeToPGSQLTypemap=e}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)})})}setViewRuleData(e){if(this.ruleId=e?.Id,this.addGlobalDataTypeForm.controls.sourceType.setValue(Object.keys(e?.Data)[0]),this.updateDestinationType(Object.keys(e?.Data)[0]),this.isPostgreSQLDialect){let i=this.standardTypeToPGSQLTypemap.get(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.controls.destinationType.setValue(void 0===i?Object.values(this.viewRuleData?.Data)[0]:i)}else this.addGlobalDataTypeForm.controls.destinationType.setValue(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.disable()}formSubmit(){const e=this.addGlobalDataTypeForm.value,i=e.sourceType,o={};if(this.isPostgreSQLDialect){let r=this.pgSQLToStandardTypeTypemap.get(e.destinationType);o[i]=void 0===r?e.destinationType:r}else o[i]=e.destinationType;this.applyRule(o),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}updateDestinationType(e){const i=this.conversionType[e],o=[];i?.forEach(r=>{o.push(r.DisplayT)}),this.destinationType=o}applyRule(e){this.data.applyRule({Name:this.ruleName,Type:"global_datatype_change",ObjectType:"Column",AssociatedObjects:"All Columns",Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-global-datatype-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleType:"ruleType",ruleName:"ruleName"},outputs:{resetRuleType:"resetRuleType"},decls:34,vars:5,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","objectType","required","true",1,"input-field"],["value","column"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","sourceType","required","true",1,"input-field",3,"selectionChange"],["sourceField",""],[3,"value",4,"ngFor","ngForOf"],["appearance","outline",4,"ngIf"],[4,"ngIf"],[3,"value"],["matSelect","","formControlName","destinationType","required","true",1,"input-field"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For object type"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"Column"),l()()(),d(7,"h3"),h(8,"When"),l(),d(9,"mat-form-field",1)(10,"mat-label"),h(11,"Table is"),l(),d(12,"mat-select",4)(13,"mat-option",5),h(14,"All tables"),l()()(),d(15,"mat-form-field",1)(16,"mat-label"),h(17,"and column is"),l(),d(18,"mat-select",6)(19,"mat-option",7),h(20,"All column"),l()()(),d(21,"h3"),h(22,"Convert from"),l(),d(23,"mat-form-field",1)(24,"mat-label"),h(25,"Source data type"),l(),d(26,"mat-select",8,9),A("selectionChange",function(){ie(r);const s=Ft(27);return ne(o.updateDestinationType(s.value))}),y(28,Qpe,2,2,"mat-option",10),l()(),d(29,"h3"),h(30,"Convert to"),l(),y(31,Jpe,5,1,"mat-form-field",11)(32,efe,3,1,"div",12)(33,tfe,3,0,"div",12),l()}if(2&i){const r=Ft(27);f("formGroup",o.addGlobalDataTypeForm),m(28),f("ngForOf",o.sourceType),m(3),f("ngIf",r.selected),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag)}},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;padding:0}"]})}return t})();function nfe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function ofe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.name)}}function rfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",11),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.editColMaxLengthForm.valid&&e.ruleNameValid))}}function afe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",12),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let sfe=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.ruleId="",this.tableNames=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.conv={},this.spTypes=[],this.hintlabel="",this.editColMaxLengthForm=this.fb.group({tableName:["",ee.required],column:["allColumn",ee.required],spDataType:["",ee.required],maxColLength:["",[ee.required,ee.pattern("([1-9][0-9]*|MAX)")]]})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name),this.tableNames.push("All tables"),"postgresql"===this.conv.SpDialect?(this.spTypes=[{name:"VARCHAR",value:"STRING"}],this.hintlabel="Max "+In.StringMaxLength+" for VARCHAR"):(this.spTypes=[{name:"STRING",value:"STRING"},{name:"BYTES",value:"BYTES"}],this.hintlabel="Max "+In.StringMaxLength+" for STRING and "+In.ByteMaxLength+" for BYTES")}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{if(this.viewRuleData=i,this.viewRuleData){this.ruleId=this.viewRuleData?.Id;let o=this.viewRuleData?.AssociatedObjects;this.editColMaxLengthForm.controls.tableName.setValue(o),this.editColMaxLengthForm.controls.spDataType.setValue(this.viewRuleData?.Data?.spDataType),this.editColMaxLengthForm.controls.maxColLength.setValue(this.viewRuleData?.Data?.spColMaxLength),this.editColMaxLengthForm.disable()}})})}formSubmit(){const e=this.editColMaxLengthForm.value;(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&e.spColMaxLength>In.ByteMaxLength)&&(e.spColMaxLength=In.StorageMaxLength);const i={spDataType:e.spDataType,spColMaxLength:e.maxColLength};let r=this.conversion.getTableIdFromSpName(e.tableName,this.conv);""===r&&(r="All tables"),this.data.applyRule({Name:this.ruleName,Type:"edit_column_max_length",ObjectType:"Table",AssociatedObjects:r,Enabled:!0,Data:i,Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-column-max-length"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:6,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","spDataType","required","true",1,"input-field"],["appearance","outline",3,"hintLabel"],["matInput","","formControlName","maxColLength",1,"input-field"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2),y(5,nfe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"and column is"),l(),d(9,"mat-select",4)(10,"mat-option",5),h(11,"All column"),l()()(),d(12,"mat-form-field",1)(13,"mat-label"),h(14,"and Spanner Type is"),l(),d(15,"mat-select",6),y(16,ofe,2,2,"mat-option",3),l()(),d(17,"mat-form-field",7)(18,"mat-label"),h(19,"Max column length"),l(),D(20,"input",8),l(),y(21,rfe,3,1,"div",9)(22,afe,3,0,"div",9),l()),2&i&&(f("formGroup",o.editColMaxLengthForm),m(5),f("ngForOf",o.tableNames),m(11),f("ngForOf",o.spTypes),m(),f("hintLabel",o.hintlabel),m(4),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,Ci,_i,Bi,Do,wi,zi]})}return t})();function cfe(t,n){if(1&t&&(d(0,"mat-option",7),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.display)}}function lfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",8),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addShardIdPrimaryKeyForm.valid&&e.ruleNameValid))}}function dfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",9),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let ufe=(()=>{class t{constructor(e,i,o){this.fb=e,this.data=i,this.sidenav=o,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.viewRuleFlag=!1,this.viewRuleData={},this.primaryKeyOrder=[{value:!0,display:"At the beginning"},{value:!1,display:"At the end"}],this.addShardIdPrimaryKeyForm=this.fb.group({table:["allTable",ee.required],primaryKeyOrder:["",ee.required]})}ngOnInit(){this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&(this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)}),this.addShardIdPrimaryKeyForm.disable())})}formSubmit(){this.data.applyRule({Name:this.ruleName,Type:"add_shard_id_primary_key",AssociatedObjects:"All Tables",Enabled:!0,Data:{AddedAtTheStart:this.addShardIdPrimaryKeyForm.value.primaryKeyOrder},Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}setViewRuleData(e){this.ruleId=e?.Id,this.addShardIdPrimaryKeyForm.controls.primaryKeyOrder.setValue(e?.Data?.AddedAtTheStart)}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-shard-id-primary-key"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:14,vars:4,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","primaryKeyOrder","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"All tables"),l()()(),d(7,"mat-form-field",1)(8,"mat-label"),h(9,"Order in Primary Key"),l(),d(10,"mat-select",4),y(11,cfe,2,2,"mat-option",5),l()(),y(12,lfe,3,1,"div",6)(13,dfe,3,0,"div",6),l()),2&i&&(f("formGroup",o.addShardIdPrimaryKeyForm),m(11),f("ngForOf",o.primaryKeyOrder),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi]})}return t})();function hfe(t,n){1&t&&(d(0,"mat-option",18),h(1,"Add shard id column as primary key"),l())}function mfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-global-datatype-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function pfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-index-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function ffe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-column-max-length",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function gfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-shard-id-primary-key",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}let _fe=(()=>{class t{constructor(e,i){this.sidenav=e,this.data=i,this.currentRules=[],this.ruleForm=new ti({ruleName:new U("",[ee.required,ee.pattern("^[a-zA-Z].{0,59}$")]),ruleType:new U("",[ee.required])}),this.rulename="",this.ruletype="",this.viewRuleData=[],this.viewRuleFlag=!1,this.shardedMigration=!1}ngOnInit(){this.data.conv.subscribe({next:e=>{Object.keys(e.SpSchema),this.shardedMigration=!!e.IsSharded}}),this.ruleForm.valueChanges.subscribe(()=>{this.rulename=this.ruleForm.controls.ruleName?.value,this.ruletype=this.ruleForm.controls.ruleType?.value}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag?this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.setViewRuleData(this.viewRuleData)}):(this.ruleForm.enable(),this.ruleForm.controls.ruleType.setValue(""),this.sidenav.sidenavRuleType.subscribe(i=>{"addIndex"===i&&this.ruleForm.controls.ruleType.setValue("addIndex")}))})}setViewRuleData(e){this.ruleForm.disable(),this.ruleForm.controls.ruleName.setValue(e?.Name),this.ruleForm.controls.ruleType.setValue(this.getViewRuleType(this.viewRuleData?.Type))}closeSidenav(){this.sidenav.closeSidenav()}get ruleType(){return this.ruleForm.get("ruleType")?.value}resetRuleType(){this.ruleForm.controls.ruleType.setValue(""),this.ruleForm.controls.ruleName.setValue(""),this.ruleForm.markAsUntouched()}getViewRuleType(e){switch(e){case"add_index":return"addIndex";case"global_datatype_change":return"globalDataType";case"edit_column_max_length":return"changeMaxLength";case"add_shard_id_primary_key":return"addShardIdPrimaryKey"}return""}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Hi))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-rule"]],inputs:{currentRules:"currentRules"},decls:36,vars:8,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[3,"formGroup"],["hintLabel","Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","formControlName","ruleName",1,"input-field"],["align","end"],["appearance","outline"],["matSelect","","formControlName","ruleType","required","true",1,"input-field"],["ruleType",""],["value","globalDataType"],["value","addIndex"],["value","changeMaxLength"],["value","addShardIdPrimaryKey",4,"ngIf"],[4,"ngIf"],["value","addShardIdPrimaryKey"],[3,"ruleNameValid","ruleName","ruleType","resetRuleType"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"form",6)(9,"h3"),h(10,"Rule info"),l(),d(11,"mat-form-field",7)(12,"mat-label"),h(13,"Rule name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),d(17,"h3"),h(18,"Rule definition"),l(),d(19,"mat-form-field",10)(20,"mat-label"),h(21,"Rule type"),l(),d(22,"mat-select",11,12)(24,"mat-option",13),h(25,"Change global data type"),l(),d(26,"mat-option",14),h(27,"Add Index"),l(),d(28,"mat-option",15),h(29,"Change default max column length"),l(),y(30,hfe,2,0,"mat-option",16),l()(),D(31,"br"),l(),y(32,mfe,2,3,"div",17)(33,pfe,2,3,"div",17)(34,ffe,2,3,"div",17)(35,gfe,2,3,"div",17),l()()),2&i){const r=Ft(23);m(3),Pe(o.viewRuleFlag?"View Rule":"Add Rule"),m(5),f("formGroup",o.ruleForm),m(8),xe("",(null==o.ruleForm.value.ruleName?null:o.ruleForm.value.ruleName.length)||0,"/60"),m(14),f("ngIf",o.shardedMigration),m(2),f("ngIf","globalDataType"===r.value),m(),f("ngIf","addIndex"===r.value),m(),f("ngIf","changeMaxLength"===r.value),m(),f("ngIf","addShardIdPrimaryKey"===r.value)}},dependencies:[It,ba,Mi,Di,xi,sc,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ype,ife,sfe,ufe],styles:["mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:0} .mat-mdc-form-field-wrapper{padding-bottom:14px}"]})}return t})();function bfe(t,n){1&t&&(d(0,"th",39),h(1,"Total tables"),l())}function vfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.total)}}function yfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",41),h(2," error "),l(),h(3,"Converted with many issues "),l())}function Cfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.bad)}}function wfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",42),h(2," warning"),l(),h(3,"Conversion some warnings & suggestions "),l())}function xfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ok)}}function Dfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",43),h(2," check_circle "),l(),h(3,"100% conversion "),l())}function Sfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.good)}}function kfe(t,n){1&t&&D(0,"tr",44)}function Mfe(t,n){1&t&&D(0,"tr",45)}function Tfe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Ife(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Efe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Ofe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Afe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Pfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Rfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Nfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ffe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Lfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Nfe,2,0,"mat-icon",37)(3,Ffe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Bfe(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Vfe(t,n){1&t&&D(0,"tr",44)}function jfe(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function zfe(t,n){1&t&&D(0,"tr",75)}const Eg=()=>["expandedDetail"];function Hfe(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",46),h(4," error "),l(),h(5," ERRORS "),l()(),d(6,"table",47),me(7,48),y(8,Tfe,2,0,"th",49)(9,Ife,2,1,"td",50),pe(),me(10,51),y(11,Efe,2,0,"th",52)(12,Ofe,2,1,"td",53),pe(),me(13,54),y(14,Afe,2,0,"th",55)(15,Pfe,2,1,"td",56),pe(),me(16,57),y(17,Rfe,2,0,"th",58)(18,Lfe,4,2,"td",59),pe(),me(19,60),y(20,Bfe,4,3,"td",59),pe(),y(21,Vfe,1,0,"tr",34)(22,jfe,1,2,"tr",61)(23,zfe,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Errors),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Ufe(t,n){1&t&&D(0,"br")}function $fe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Gfe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function qfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Wfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Kfe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Zfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Yfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Qfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Xfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Jfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Qfe,2,0,"mat-icon",37)(3,Xfe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function ege(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function tge(t,n){1&t&&D(0,"tr",44)}function ige(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function nge(t,n){1&t&&D(0,"tr",75)}function oge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",76),h(4," warning "),l(),h(5," WARNINGS "),l()(),d(6,"table",47),me(7,48),y(8,$fe,2,0,"th",49)(9,Gfe,2,1,"td",50),pe(),me(10,51),y(11,qfe,2,0,"th",52)(12,Wfe,2,1,"td",53),pe(),me(13,54),y(14,Kfe,2,0,"th",55)(15,Zfe,2,1,"td",56),pe(),me(16,57),y(17,Yfe,2,0,"th",58)(18,Jfe,4,2,"td",59),pe(),me(19,60),y(20,ege,4,3,"td",59),pe(),y(21,tge,1,0,"tr",34)(22,ige,1,2,"tr",61)(23,nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Warnings),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function rge(t,n){1&t&&D(0,"br")}function age(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function sge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function cge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function lge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function dge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function uge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function hge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function mge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function pge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function fge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,mge,2,0,"mat-icon",37)(3,pge,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function gge(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function _ge(t,n){1&t&&D(0,"tr",44)}function bge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function vge(t,n){1&t&&D(0,"tr",75)}function yge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",77),h(4," wb_incandescent "),l(),h(5," SUGGESTIONS "),l()(),d(6,"table",47),me(7,48),y(8,age,2,0,"th",49)(9,sge,2,1,"td",50),pe(),me(10,51),y(11,cge,2,0,"th",52)(12,lge,2,1,"td",53),pe(),me(13,54),y(14,dge,2,0,"th",55)(15,uge,2,1,"td",56),pe(),me(16,57),y(17,hge,2,0,"th",58)(18,fge,4,2,"td",59),pe(),me(19,60),y(20,gge,4,3,"td",59),pe(),y(21,_ge,1,0,"tr",34)(22,bge,1,2,"tr",61)(23,vge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Suggestions),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Cge(t,n){1&t&&D(0,"br")}function wge(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function xge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Dge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Sge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function kge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Mge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Tge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Ige(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ege(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Oge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Ige,2,0,"mat-icon",37)(3,Ege,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Age(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Pge(t,n){1&t&&D(0,"tr",44)}function Rge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function Nge(t,n){1&t&&D(0,"tr",75)}function Fge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",78),h(4," check_circle "),l(),h(5," NOTES "),l()(),d(6,"table",47),me(7,48),y(8,wge,2,0,"th",49)(9,xge,2,1,"td",50),pe(),me(10,51),y(11,Dge,2,0,"th",52)(12,Sge,2,1,"td",53),pe(),me(13,54),y(14,kge,2,0,"th",55)(15,Mge,2,1,"td",56),pe(),me(16,57),y(17,Tge,2,0,"th",58)(18,Oge,4,2,"td",59),pe(),me(19,60),y(20,Age,4,3,"td",59),pe(),y(21,Pge,1,0,"tr",34)(22,Rge,1,2,"tr",61)(23,Nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Notes),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Lge(t,n){1&t&&D(0,"br")}function Bge(t,n){1&t&&(d(0,"div",79)(1,"div",80),ei(),d(2,"svg",81),D(3,"path",82),l()(),pr(),d(4,"div",83),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l(),D(8,"br"),l())}const Sw=t=>({"width.%":t});let Vge=(()=>{class t{toggleRow(e){this.isRowExpanded(e)?this.expandedElements.delete(e):this.expandedElements.add(e)}isRowExpanded(e){return this.expandedElements.has(e)}constructor(e,i,o){this.sidenav=e,this.clickEvent=i,this.fetch=o,this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],this.issueTableData_Notes=[],this.columnsToDisplay=["position","description","tableCount"],this.columnsToDisplayWithExpand=[...this.columnsToDisplay,"expand"],this.expandedElements=new Set,this.srcDbType="",this.connectionDetail="",this.summaryText="",this.issueDescription={},this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentage={good:0,ok:0,bad:0},this.rateCountDataSource=[],this.rateCountDisplayedColumns=["total","bad","ok","good"],this.ratePcDataSource=[],this.ratePcDisplayedColumns=["bad","ok","good"]}ngOnInit(){this.clickEvent.viewAssesment.subscribe(e=>{this.srcDbType=e.srcDbType,this.connectionDetail=e.connectionDetail,this.conversionRateCount=e.conversionRates;let i=this.conversionRateCount.good+this.conversionRateCount.ok+this.conversionRateCount.bad;if(i>0)for(let o in this.conversionRatePercentage)this.conversionRatePercentage[o]=Number((this.conversionRateCount[o]/i*100).toFixed(2));i>0&&this.setRateCountDataSource(i),this.fetch.getDStructuredReport().subscribe({next:o=>{this.summaryText=o.summary.text}}),this.issueTableData={position:0,description:"",tableCount:0,tableNamesJoinedByComma:""},this.fetch.getIssueDescription().subscribe({next:o=>{this.issueDescription=o,this.generateIssueReport()}})})}closeSidenav(){this.sidenav.closeSidenav()}setRateCountDataSource(e){this.rateCountDataSource=[],this.rateCountDataSource.push({total:e,bad:this.conversionRateCount.bad,ok:this.conversionRateCount.ok,good:this.conversionRateCount.good})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text;charset=utf-8,"+encodeURIComponent(o),e.download=`${i.summary.dbName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{let o=this.connectionDetail;e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${o}_migration_textReport.txt`,e.click()}})}downloadReports(){let e=new RN;this.fetch.getDStructuredReport().subscribe({next:i=>{let o=i.summary.dbName,r=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.file(o+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(o+"_migration_textReport.txt",s),e.generateAsync({type:"blob"}).then(c=>{var u=document.createElement("a");u.href=URL.createObjectURL(c),u.download=`${o}_reports`,u.click()})}})}})}generateIssueReport(){this.fetch.getDStructuredReport().subscribe({next:e=>{let i=e.tableReports;var o={errors:new Map,warnings:new Map,suggestions:new Map,notes:new Map};for(var r of i){let c=r.issues;if(null==c)return this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],void(this.issueTableData_Notes=[]);for(var a of c){let u={tableCount:0,tableNames:new Set};switch(a.issueType){case"Error":case"Errors":this.appendIssueWithTableInformation(a.issueList,o.errors,u,r);break;case"Warnings":case"Warning":this.appendIssueWithTableInformation(a.issueList,o.warnings,u,r);break;case"Suggestion":case"Suggestions":this.appendIssueWithTableInformation(a.issueList,o.suggestions,u,r);break;case"Note":case"Notes":this.appendIssueWithTableInformation(a.issueList,o.notes,u,r)}}}let s=o.warnings;this.issueTableData_Warnings=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Warnings),s=o.errors,this.issueTableData_Errors=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Errors),s=o.suggestions,this.issueTableData_Suggestions=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Suggestions),s=o.notes,this.issueTableData_Notes=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Notes)}})}populateTableData(e,i){let o=1;for(let[r,a]of e.entries()){let s=[...a.tableNames.keys()];i.push({position:o,description:this.issueDescription[r],tableCount:a.tableCount,tableNamesJoinedByComma:s.join(", ")}),o+=1}}appendIssueWithTableInformation(e,i,o,r){for(var a of e)if(i.has(a.category)){let c=i.get(a.category),u={tableNames:new Set(c.tableNames),tableCount:c.tableNames.size};u.tableNames.add(r.srcTableName),u.tableCount=u.tableNames.size,i.set(a.category,u)}else{let c=o;c.tableNames.add(r.srcTableName),c.tableCount=c.tableNames.size,i.set(a.category,c)}}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-view-assessment"]],decls:87,vars:25,consts:[[1,"sidenav-view-assessment-container"],[1,"sidenav-view-assessment-header"],[1,"mat-h2","header-title"],[1,"btn-source-select"],[1,"reportsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"content"],[1,"summaryHeader"],[1,"databaseName"],[1,"migrationDetails"],[1,"summaryText"],[1,"sidenav-percentage-bar"],[1,"danger-background",3,"ngStyle"],[1,"warning-background",3,"ngStyle"],[1,"success-background",3,"ngStyle"],[1,"sidenav-percentage-indent"],[1,"icon","danger"],[1,"icon","warning"],[1,"icon","success"],[1,"sidenav-title"],["mat-table","",1,"sidenav-conversionByTable",3,"dataSource"],["matColumnDef","total"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","","class","cells",4,"matCellDef"],["matColumnDef","bad",1,"bad"],["matColumnDef","ok"],["matColumnDef","good"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"issue-report"],[4,"ngIf"],["class","no-issue-container",4,"ngIf"],["mat-header-cell",""],["mat-cell","",1,"cells"],[1,"icon","danger","icon-size","icons"],[1,"icon","warning","icon-size","icons"],[1,"icon","success","icon-size","icons"],["mat-header-row",""],["mat-row",""],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["mat-table","","multiTemplateDataRows","",1,"sidenav-databaseDefinitions",3,"dataSource"],["matColumnDef","position"],["mat-header-cell","","class","mat-position",4,"matHeaderCellDef"],["mat-cell","","class","mat-position",4,"matCellDef"],["matColumnDef","description"],["mat-header-cell","","class","mat-description",4,"matHeaderCellDef"],["mat-cell","","class","mat-description",4,"matCellDef"],["matColumnDef","tableCount"],["mat-header-cell","","class","mat-tableCount",4,"matHeaderCellDef"],["mat-cell","","class","mat-tableCount",4,"matCellDef"],["matColumnDef","expand"],["mat-header-cell","","aria-label","row actions",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","expandedDetail"],["mat-row","","class","example-element-row",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","example-detail-row",4,"matRowDef","matRowDefColumns"],["mat-header-cell","",1,"mat-position"],["mat-cell","",1,"mat-position"],["mat-header-cell","",1,"mat-description"],["mat-cell","",1,"mat-description"],["mat-header-cell","",1,"mat-tableCount"],["mat-cell","",1,"mat-tableCount"],["mat-header-cell","","aria-label","row actions"],["mat-cell",""],["mat-icon-button","","aria-label","expand row",3,"click"],[1,"example-element-detail",3,"ngClass"],[1,"example-element-description"],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you don't need to do anything.","matTooltipPosition","above",1,"success"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Assessment report"),l(),d(4,"div",3)(5,"span",4)(6,"button",5),A("click",function(){return o.downloadReports()}),h(7," DOWNLOAD REPORTS "),l(),d(8,"button",6)(9,"mat-icon",7),h(10,"expand_more"),l()(),d(11,"mat-menu",8,9)(13,"button",10),A("click",function(){return o.downloadTextReport()}),h(14," Download Text Report "),l(),d(15,"button",10),A("click",function(){return o.downloadStructuredReport()}),h(16," Download Structured Report "),l()()(),d(17,"button",11),A("click",function(){return o.closeSidenav()}),d(18,"mat-icon",12),h(19,"close"),l()()()(),d(20,"div",13)(21,"div",14)(22,"p",15),h(23),l(),d(24,"p",16),h(25),d(26,"mat-icon"),h(27,"arrow_right_alt"),l(),h(28," Spanner)"),l()(),d(29,"p",17),h(30),l(),d(31,"mat-card")(32,"div",18),D(33,"div",19)(34,"div",20)(35,"div",21),l(),D(36,"hr")(37,"br"),d(38,"div",22)(39,"span")(40,"mat-icon",23),h(41," circle "),l(),d(42,"span"),h(43," Not a great conversion"),l()(),d(44,"span")(45,"mat-icon",24),h(46," circle "),l(),d(47,"span"),h(48," Converted with warnings"),l()(),d(49,"span")(50,"mat-icon",25),h(51," circle "),l(),d(52,"span"),h(53," Converted automatically"),l()()()(),D(54,"br"),d(55,"h3",26),h(56,"Conversion status by table"),l(),d(57,"table",27),me(58,28),y(59,bfe,2,0,"th",29)(60,vfe,2,1,"td",30),pe(),me(61,31),y(62,yfe,4,0,"th",29)(63,Cfe,2,1,"td",30),pe(),me(64,32),y(65,wfe,4,0,"th",29)(66,xfe,2,1,"td",30),pe(),me(67,33),y(68,Dfe,4,0,"th",29)(69,Sfe,2,1,"td",30),pe(),y(70,kfe,1,0,"tr",34)(71,Mfe,1,0,"tr",35),l(),D(72,"br"),d(73,"h3"),h(74,"Summarized Table Report"),l(),d(75,"div",36),y(76,Hfe,24,5,"mat-expansion-panel",37)(77,Ufe,1,0,"br",37)(78,oge,24,5,"mat-expansion-panel",37)(79,rge,1,0,"br",37)(80,yge,24,5,"mat-expansion-panel",37)(81,Cge,1,0,"br",37)(82,Fge,24,5,"mat-expansion-panel",37)(83,Lge,1,0,"br",37)(84,Bge,9,0,"div",38),D(85,"br"),l(),D(86,"br"),l()()),2&i){const r=Ft(12);m(8),f("matMenuTriggerFor",r),m(15),Pe(o.connectionDetail),m(2),xe(" \xa0 (",o.srcDbType," "),m(5),Pe(o.summaryText),m(3),f("ngStyle",hi(19,Sw,o.conversionRatePercentage.bad)),m(),f("ngStyle",hi(21,Sw,o.conversionRatePercentage.ok)),m(),f("ngStyle",hi(23,Sw,o.conversionRatePercentage.good)),m(22),f("dataSource",o.rateCountDataSource),m(13),f("matHeaderRowDef",o.rateCountDisplayedColumns),m(),f("matRowDefColumns",o.rateCountDisplayedColumns),m(5),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",!(o.issueTableData_Notes.length||o.issueTableData_Suggestions.length||o.issueTableData_Warnings.length||o.issueTableData_Errors.length))}},dependencies:[yr,It,w2,Yt,ba,Mi,Gu,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,DC,bP,JQ,vn],styles:["table.mat-mdc-table[_ngcontent-%COMP%]{width:100%}.icon-size[_ngcontent-%COMP%]{font-size:1.2em;text-align:center;margin-top:8px;margin-left:10px;vertical-align:inherit}.mat-mdc-header-cell[_ngcontent-%COMP%]{border-style:none}.icons[_ngcontent-%COMP%]{border-left:1px solid rgb(208,204,204);padding-left:10px}.cells[_ngcontent-%COMP%]{text-align:center}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%]{padding:7px 16px;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #d0cccc;justify-content:space-between}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%]{margin:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .reportsButtons[_ngcontent-%COMP%]{white-space:nowrap;vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 8px 0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:1.25px;padding:0;height:10px;vertical-align:text-top}"]})}return t})(),jge=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.snack=o,this.sidenav=r,this.errMessage="",this.saveSessionForm=new ti({SessionName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),EditorName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),DatabaseName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_-]{0,59}$")]),Notes:new U("")})}saveSession(){let e=this.saveSessionForm.value,i={SessionName:e.SessionName.trim(),EditorName:e.EditorName.trim(),DatabaseName:e.DatabaseName.trim(),Notes:""===e.Notes?.trim()||null===e.Notes?[""]:e.Notes?.split("\n")};this.fetch.saveSession(i).subscribe({next:o=>{this.data.getAllSessions(),this.snack.openSnackBar("Session saved successfully","Close",5)},error:o=>{this.snack.openSnackBar(o.error,"Close")}}),this.saveSessionForm.reset(),this.saveSessionForm.markAsUntouched(),this.closeSidenav()}ngOnInit(){this.sidenav.sidenavDatabaseName.subscribe({next:e=>{this.saveSessionForm.controls.DatabaseName.setValue(e)}})}closeSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-save-session"]],decls:40,vars:5,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[1,"save-session-form",3,"formGroup"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","placeholder","mysession","type","text","formControlName","SessionName","matTooltip","User can view saved sessions under session history section","matTooltipPosition","above"],["align","end"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","placeholder","editor name","type","text","formControlName","EditorName"],["hintLabel","Letters, numbers, hyphen and underscores allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","type","text","formControlName","DatabaseName"],["appearance","outline",1,"full-width"],["rows","7","matInput","","placeholder","added new index","type","text","formControlName","Notes"],[1,"sidenav-footer"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Save Session"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"h3"),h(9,"Session Details"),l(),d(10,"form",6)(11,"mat-form-field",7)(12,"mat-label"),h(13,"Session Name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),D(17,"br"),d(18,"mat-form-field",10)(19,"mat-label"),h(20,"Editor Name"),l(),D(21,"input",11),d(22,"mat-hint",9),h(23),l()(),D(24,"br"),d(25,"mat-form-field",12)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",13),d(29,"mat-hint",9),h(30),l()(),D(31,"br"),d(32,"mat-form-field",14)(33,"mat-label"),h(34,"Notes"),l(),D(35,"textarea",15),l(),D(36,"br"),l()(),d(37,"div",16)(38,"button",17),A("click",function(){return o.saveSession()}),h(39," Save Session "),l()()()),2&i&&(m(10),f("formGroup",o.saveSessionForm),m(6),xe("",(null==o.saveSessionForm.value.SessionName?null:o.saveSessionForm.value.SessionName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.EditorName?null:o.saveSessionForm.value.EditorName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.DatabaseName?null:o.saveSessionForm.value.DatabaseName.length)||0,"/60"),m(8),f("disabled",!o.saveSessionForm.valid))},dependencies:[Yt,ba,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:10px}"]})}return t})();function zge(t,n){1&t&&(d(0,"th",9),h(1,"Column"),l())}function Hge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ColumnName)}}function Uge(t,n){1&t&&(d(0,"th",9),h(1,"Type"),l())}function $ge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Type)}}function Gge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Column"),l())}function qge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateColumnName)}}function Wge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Type"),l())}function Kge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateType)}}function Zge(t,n){1&t&&D(0,"tr",11)}function Yge(t,n){1&t&&D(0,"tr",12)}let Qge=(()=>{class t{constructor(){this.tableChange={InterleaveColumnChanges:[],Table:""},this.dataSource=[],this.displayedColumns=["ColumnName","Type","UpdateColumnName","UpdateType"]}ngOnInit(){}ngOnChanges(e){this.tableChange=e.tableChange?.currentValue||this.tableChange,this.dataSource=this.tableChange.InterleaveColumnChanges}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-table-column-changes-preview"]],inputs:{tableChange:"tableChange"},features:[fi],decls:15,vars:3,consts:[["mat-table","",1,"object-full-width","margin-bot-1",3,"dataSource"],["matColumnDef","ColumnName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Type"],["matColumnDef","UpdateColumnName"],["matColumnDef","UpdateType"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(i,o){1&i&&(d(0,"table",0),me(1,1),y(2,zge,2,0,"th",2)(3,Hge,2,1,"td",3),pe(),me(4,4),y(5,Uge,2,0,"th",2)(6,$ge,2,1,"td",3),pe(),me(7,5),y(8,Gge,2,0,"th",2)(9,qge,2,1,"td",3),pe(),me(10,6),y(11,Wge,2,0,"th",2)(12,Kge,2,1,"td",3),pe(),y(13,Zge,1,0,"tr",7)(14,Yge,1,0,"tr",8),l()),2&i&&(f("dataSource",o.dataSource),m(13),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns))},dependencies:[ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs],styles:[".margin-bot-1[_ngcontent-%COMP%]{margin-bottom:1rem}.mat-mdc-header-row[_ngcontent-%COMP%]{background-color:#f5f5f5}.mat-mdc-column-ColumnName[_ngcontent-%COMP%], .mat-mdc-column-UpdateColumnName[_ngcontent-%COMP%]{width:30%;max-width:30%}.mat-mdc-column-Type[_ngcontent-%COMP%], .mat-mdc-column-UpdateType[_ngcontent-%COMP%]{width:20%;max-width:20%}.mat-mdc-cell[_ngcontent-%COMP%]{padding-right:1rem;word-break:break-all}"]})}return t})();function Xge(t,n){1&t&&(d(0,"p"),h(1,"Review the DDL changes below."),l())}function Jge(t,n){if(1&t&&(d(0,"p"),h(1," Changing an interleaved table will have an impact on the following tables : "),d(2,"b"),h(3),l()()),2&t){const e=C();m(3),Pe(e.tableList)}}function e_e(t,n){if(1&t&&(d(0,"div",11)(1,"pre")(2,"code"),h(3),l()()()),2&t){const e=C();m(3),Pe(e.ddl)}}function t_e(t,n){if(1&t&&(me(0),d(1,"h4"),h(2),l(),D(3,"app-table-column-changes-preview",14),pe()),2&t){const e=n.$implicit,i=n.index,o=C(2);m(2),Pe(o.tableNames[i]),m(),f("tableChange",e)}}function i_e(t,n){if(1&t&&(d(0,"div",12),y(1,t_e,4,2,"ng-container",13),l()),2&t){const e=C();m(),f("ngForOf",e.tableChanges)}}let n_e=(()=>{class t{constructor(e,i,o,r){this.sidenav=e,this.tableUpdatePubSub=i,this.data=o,this.snackbar=r,this.ddl="",this.showDdl=!0,this.tableUpdateData={tableName:"",tableId:"",updateDetail:{UpdateCols:{}}},this.tableChanges=[],this.tableNames=[],this.tableList=""}ngOnInit(){this.tableUpdatePubSub.reviewTableChanges.subscribe(e=>{if(e.Changes&&e.Changes.length>0){this.showDdl=!1,this.tableChanges=e.Changes;const i=[];this.tableList="",this.tableChanges.forEach((o,r)=>{i.push(o.Table),this.tableList+=0==r?o.Table:", "+o.Table}),this.tableList+=".",this.tableNames=i}else this.showDdl=!0,this.ddl=e.DDL}),this.tableUpdatePubSub.tableUpdateDetail.subscribe(e=>{this.tableUpdateData=e})}updateTable(){this.data.updateTable(this.tableUpdateData.tableId,this.tableUpdateData.updateDetail).subscribe({next:e=>{""==e?(this.snackbar.openSnackBar(`Schema changes to table ${this.tableUpdateData.tableName} saved successfully`,"Close",5),0==this.showDdl&&1!=this.tableNames.length&&this.snackbar.openSnackBar(`Schema changes to tables ${this.tableNames[0]} and ${this.tableNames[1]} saved successfully`,"Close",5),this.closeSidenav()):this.snackbar.openSnackBar(e,"Close",5)}})}closeSidenav(){this.ddl="",this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Cw),_(Hi),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-review-changes"]],decls:17,vars:4,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[4,"ngIf"],["class","ddl-display",4,"ngIf"],["class","table-changes-display",4,"ngIf"],[1,"sidenav-footer"],["mat-raised-button","","color","primary",3,"click"],[1,"ddl-display"],[1,"table-changes-display"],[4,"ngFor","ngForOf"],[3,"tableChange"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Review changes to your schema"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),D(7,"mat-divider"),d(8,"div",5),y(9,Xge,2,0,"p",6)(10,Jge,4,1,"p",6)(11,e_e,4,1,"div",7)(12,i_e,2,1,"div",8),l(),D(13,"mat-divider"),d(14,"div",9)(15,"button",10),A("click",function(){return o.updateTable()}),h(16,"Confirm Conversion"),l()()()),2&i&&(m(9),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl),m(),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl))},dependencies:[rn,It,Yt,ba,Mi,wO,Qge],styles:[".sidenav-content[_ngcontent-%COMP%]{height:82%}.sidenav-content[_ngcontent-%COMP%] .ddl-display[_ngcontent-%COMP%]{height:90%;background-color:#dadada;padding:10px;overflow:auto}.sidenav-content[_ngcontent-%COMP%] .table-changes-display[_ngcontent-%COMP%]{height:90%;overflow:auto}"]})}return t})();function o_e(t,n){1&t&&D(0,"app-sidenav-rule")}function r_e(t,n){1&t&&D(0,"app-sidenav-save-session")}function a_e(t,n){1&t&&D(0,"app-sidenav-review-changes")}function s_e(t,n){1&t&&D(0,"app-sidenav-view-assessment")}function c_e(t,n){1&t&&D(0,"app-instruction")}const l_e=(t,n,e)=>({"width-40pc":t,"width-50pc":n,"width-60pc":e});let d_e=(()=>{class t{constructor(e){this.sidenavService=e,this.title="ui",this.showSidenav=!1,this.sidenavComponent=""}ngOnInit(){this.sidenavService.isSidenav.subscribe(e=>{this.showSidenav=e}),this.sidenavService.sidenavComponent.subscribe(e=>{this.sidenavComponent=e})}closeSidenav(){this.showSidenav=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-root"]],decls:14,vars:11,consts:[[1,"sidenav-container",3,"backdropClick"],["position","end","mode","over",3,"opened","ngClass"],["sidenav",""],[4,"ngIf"],[1,"sidenav-content"],[1,"appLoader"],[1,"padding-20"]],template:function(i,o){1&i&&(d(0,"mat-sidenav-container",0),A("backdropClick",function(){return o.closeSidenav()}),d(1,"mat-sidenav",1,2),y(3,o_e,1,0,"app-sidenav-rule",3)(4,r_e,1,0,"app-sidenav-save-session",3)(5,a_e,1,0,"app-sidenav-review-changes",3)(6,s_e,1,0,"app-sidenav-view-assessment",3)(7,c_e,1,0,"app-instruction",3),l(),d(8,"mat-sidenav-content",4),D(9,"app-header"),d(10,"div",5),D(11,"app-loader"),l(),d(12,"div",6),D(13,"router-outlet"),l()()()),2&i&&(m(),f("opened",o.showSidenav)("ngClass",HM(7,l_e,"rule"===o.sidenavComponent||"saveSession"===o.sidenavComponent,"reviewChanges"===o.sidenavComponent,"assessment"===o.sidenavComponent||"instruction"===o.sidenavComponent)),m(2),f("ngIf","rule"===o.sidenavComponent),m(),f("ngIf","saveSession"==o.sidenavComponent),m(),f("ngIf","reviewChanges"==o.sidenavComponent),m(),f("ngIf","assessment"===o.sidenavComponent),m(),f("ngIf","instruction"===o.sidenavComponent))},dependencies:[yr,It,Cg,hR,mR,qC,AN,jpe,Hpe,_fe,Vge,jge,n_e],styles:[".padding-20[_ngcontent-%COMP%]{padding:5px 0}.progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%], .appLoader[_ngcontent-%COMP%]{height:2px}mat-mdc-sidenav[_ngcontent-%COMP%]{width:30%;min-width:350px}.sidenav-container[_ngcontent-%COMP%]{height:100vh}.sidenav-container[_ngcontent-%COMP%] mat-mdc-sidenav[_ngcontent-%COMP%]{min-width:350px;border-radius:3px}.width-40pc[_ngcontent-%COMP%]{width:40%}.width-50pc[_ngcontent-%COMP%]{width:50%}.width-60pc[_ngcontent-%COMP%]{width:60%}"]})}return t})(),u_e=(()=>{class t{constructor(e){this.loader=e,this.count=0}intercept(e,i){let o=!e.url.includes("/connect");return o&&(this.loader.startLoader(),this.count++),i.handle(e).pipe(ec(()=>{o&&this.count--,0==this.count&&this.loader.stopLoader()}))}static#e=this.\u0275fac=function(i){return new(i||t)(X(Mg))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),h_e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t,bootstrap:[d_e]});static#i=this.\u0275inj=st({providers:[{provide:ZE,useClass:u_e,multi:!0}],imports:[Y2,Ppe,b$,mte,mW,RK,xte,Mte,rre,OC]})}return t})();bH().bootstrapModule(h_e).catch(t=>console.error(t))},304:ld=>{ld.exports=function q(Re,Y,F){function R($,W){if(!Y[$]){if(!Re[$]){if(S)return S($,!0);var G=new Error("Cannot find module '"+$+"'");throw G.code="MODULE_NOT_FOUND",G}var I=Y[$]={exports:{}};Re[$][0].call(I.exports,function(B){return R(Re[$][1][B]||B)},I,I.exports,q,Re,Y,F)}return Y[$].exports}for(var S=void 0,P=0;P>4,B=1>6:64,M=2>2)+S.charAt(I)+S.charAt(B)+S.charAt(M));return N.join("")},Y.decode=function(P){var $,W,V,G,I,B,M=0,N=0,E="data:";if(P.substr(0,5)===E)throw new Error("Invalid base64 input, it looks like a data url.");var j,K=3*(P=P.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(P.charAt(P.length-1)===S.charAt(64)&&K--,P.charAt(P.length-2)===S.charAt(64)&&K--,K%1!=0)throw new Error("Invalid base64 input, bad content length.");for(j=R.uint8array?new Uint8Array(0|K):new Array(0|K);M>4,W=(15&G)<<4|(I=S.indexOf(P.charAt(M++)))>>2,V=(3&I)<<6|(B=S.indexOf(P.charAt(M++))),j[N++]=$,64!==I&&(j[N++]=W),64!==B&&(j[N++]=V);return j}},{"./support":30,"./utils":32}],2:[function(q,Re,Y){"use strict";var F=q("./external"),R=q("./stream/DataWorker"),S=q("./stream/Crc32Probe"),P=q("./stream/DataLengthProbe");function $(W,V,G,I,B){this.compressedSize=W,this.uncompressedSize=V,this.crc32=G,this.compression=I,this.compressedContent=B}$.prototype={getContentWorker:function(){var W=new R(F.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new P("data_length")),V=this;return W.on("end",function(){if(this.streamInfo.data_length!==V.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),W},getCompressedWorker:function(){return new R(F.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},$.createWorkerFrom=function(W,V,G){return W.pipe(new S).pipe(new P("uncompressedSize")).pipe(V.compressWorker(G)).pipe(new P("compressedSize")).withStreamInfo("compression",V)},Re.exports=$},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(q,Re,Y){"use strict";var F=q("./stream/GenericWorker");Y.STORE={magic:"\0\0",compressWorker:function(){return new F("STORE compression")},uncompressWorker:function(){return new F("STORE decompression")}},Y.DEFLATE=q("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(q,Re,Y){"use strict";var F=q("./utils"),R=function(){for(var S,P=[],$=0;$<256;$++){S=$;for(var W=0;W<8;W++)S=1&S?3988292384^S>>>1:S>>>1;P[$]=S}return P}();Re.exports=function(S,P){return void 0!==S&&S.length?"string"!==F.getTypeOf(S)?function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W[M])];return-1^$}(0|P,S,S.length):function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W.charCodeAt(M))];return-1^$}(0|P,S,S.length):0}},{"./utils":32}],5:[function(q,Re,Y){"use strict";Y.base64=!1,Y.binary=!1,Y.dir=!1,Y.createFolders=!0,Y.date=null,Y.compression=null,Y.compressionOptions=null,Y.comment=null,Y.unixPermissions=null,Y.dosPermissions=null},{}],6:[function(q,Re,Y){"use strict";var F;F=typeof Promise<"u"?Promise:q("lie"),Re.exports={Promise:F}},{lie:37}],7:[function(q,Re,Y){"use strict";var F=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",R=q("pako"),S=q("./utils"),P=q("./stream/GenericWorker"),$=F?"uint8array":"array";function W(V,G){P.call(this,"FlateWorker/"+V),this._pako=null,this._pakoAction=V,this._pakoOptions=G,this.meta={}}Y.magic="\b\0",S.inherits(W,P),W.prototype.processChunk=function(V){this.meta=V.meta,null===this._pako&&this._createPako(),this._pako.push(S.transformTo($,V.data),!1)},W.prototype.flush=function(){P.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},W.prototype.cleanUp=function(){P.prototype.cleanUp.call(this),this._pako=null},W.prototype._createPako=function(){this._pako=new R[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var V=this;this._pako.onData=function(G){V.push({data:G,meta:V.meta})}},Y.compressWorker=function(V){return new W("Deflate",V)},Y.uncompressWorker=function(){return new W("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(q,Re,Y){"use strict";function F(I,B){var M,N="";for(M=0;M>>=8;return N}function R(I,B,M,N,E,j){var K,oe,te=I.file,Te=I.compression,we=j!==$.utf8encode,Fe=S.transformTo("string",j(te.name)),ye=S.transformTo("string",$.utf8encode(te.name)),Ge=te.comment,mt=S.transformTo("string",j(Ge)),H=S.transformTo("string",$.utf8encode(Ge)),Ce=ye.length!==te.name.length,x=H.length!==Ge.length,Me="",Rt="",Le="",Vt=te.dir,Ve=te.date,Tt={crc32:0,compressedSize:0,uncompressedSize:0};B&&!M||(Tt.crc32=I.crc32,Tt.compressedSize=I.compressedSize,Tt.uncompressedSize=I.uncompressedSize);var fe=0;B&&(fe|=8),we||!Ce&&!x||(fe|=2048);var Qe,Fn,le=0,bt=0;Vt&&(le|=16),"UNIX"===E?(bt=798,le|=(Fn=Qe=te.unixPermissions,Qe||(Fn=Vt?16893:33204),(65535&Fn)<<16)):(bt=20,le|=function(Qe){return 63&(Qe||0)}(te.dosPermissions)),K=Ve.getUTCHours(),K<<=6,K|=Ve.getUTCMinutes(),K<<=5,K|=Ve.getUTCSeconds()/2,oe=Ve.getUTCFullYear()-1980,oe<<=4,oe|=Ve.getUTCMonth()+1,oe<<=5,oe|=Ve.getUTCDate(),Ce&&(Rt=F(1,1)+F(W(Fe),4)+ye,Me+="up"+F(Rt.length,2)+Rt),x&&(Le=F(1,1)+F(W(mt),4)+H,Me+="uc"+F(Le.length,2)+Le);var it="";return it+="\n\0",it+=F(fe,2),it+=Te.magic,it+=F(K,2),it+=F(oe,2),it+=F(Tt.crc32,4),it+=F(Tt.compressedSize,4),it+=F(Tt.uncompressedSize,4),it+=F(Fe.length,2),it+=F(Me.length,2),{fileRecord:V.LOCAL_FILE_HEADER+it+Fe+Me,dirRecord:V.CENTRAL_FILE_HEADER+F(bt,2)+it+F(mt.length,2)+"\0\0\0\0"+F(le,4)+F(N,4)+Fe+Me+mt}}var S=q("../utils"),P=q("../stream/GenericWorker"),$=q("../utf8"),W=q("../crc32"),V=q("../signature");function G(I,B,M,N){P.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=B,this.zipPlatform=M,this.encodeFileName=N,this.streamFiles=I,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}S.inherits(G,P),G.prototype.push=function(I){var B=I.meta.percent||0,M=this.entriesCount,N=this._sources.length;this.accumulate?this.contentBuffer.push(I):(this.bytesWritten+=I.data.length,P.prototype.push.call(this,{data:I.data,meta:{currentFile:this.currentFile,percent:M?(B+100*(M-N-1))/M:100}}))},G.prototype.openedSource=function(I){this.currentSourceOffset=this.bytesWritten,this.currentFile=I.file.name;var B=this.streamFiles&&!I.file.dir;if(B){var M=R(I,B,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:M.fileRecord,meta:{percent:0}})}else this.accumulate=!0},G.prototype.closedSource=function(I){this.accumulate=!1;var N,B=this.streamFiles&&!I.file.dir,M=R(I,B,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(M.dirRecord),B)this.push({data:(N=I,V.DATA_DESCRIPTOR+F(N.crc32,4)+F(N.compressedSize,4)+F(N.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:M.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},G.prototype.flush=function(){for(var I=this.bytesWritten,B=0;B=this.index;P--)$=($<<8)+this.byteAt(P);return this.index+=S,$},readString:function(S){return F.transformTo("string",this.readData(S))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var S=this.readInt(4);return new Date(Date.UTC(1980+(S>>25&127),(S>>21&15)-1,S>>16&31,S>>11&31,S>>5&63,(31&S)<<1))}},Re.exports=R},{"../utils":32}],19:[function(q,Re,Y){"use strict";var F=q("./Uint8ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(q,Re,Y){"use strict";var F=q("./DataReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.byteAt=function(S){return this.data.charCodeAt(this.zero+S)},R.prototype.lastIndexOfSignature=function(S){return this.data.lastIndexOf(S)-this.zero},R.prototype.readAndCheckSignature=function(S){return S===this.readData(4)},R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./DataReader":18}],21:[function(q,Re,Y){"use strict";var F=q("./ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){if(this.checkOffset(S),0===S)return new Uint8Array(0);var P=this.data.subarray(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./ArrayReader":17}],22:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("../support"),S=q("./ArrayReader"),P=q("./StringReader"),$=q("./NodeBufferReader"),W=q("./Uint8ArrayReader");Re.exports=function(V){var G=F.getTypeOf(V);return F.checkSupport(G),"string"!==G||R.uint8array?"nodebuffer"===G?new $(V):R.uint8array?new W(F.transformTo("uint8array",V)):new S(F.transformTo("array",V)):new P(V)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(q,Re,Y){"use strict";Y.LOCAL_FILE_HEADER="PK\x03\x04",Y.CENTRAL_FILE_HEADER="PK\x01\x02",Y.CENTRAL_DIRECTORY_END="PK\x05\x06",Y.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Y.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Y.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../utils");function S(P){F.call(this,"ConvertWorker to "+P),this.destType=P}R.inherits(S,F),S.prototype.processChunk=function(P){this.push({data:R.transformTo(this.destType,P.data),meta:P.meta})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],25:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../crc32");function S(){F.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}q("../utils").inherits(S,F),S.prototype.processChunk=function(P){this.streamInfo.crc32=R(P.data,this.streamInfo.crc32||0),this.push(P)},Re.exports=S},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataLengthProbe for "+P),this.propName=P,this.withStreamInfo(P,0)}F.inherits(S,R),S.prototype.processChunk=function(P){P&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+P.data.length),R.prototype.processChunk.call(this,P)},Re.exports=S},{"../utils":32,"./GenericWorker":28}],27:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataWorker");var $=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,P.then(function(W){$.dataIsReady=!0,$.data=W,$.max=W&&W.length||0,$.type=F.getTypeOf(W),$.isPaused||$._tickAndRepeat()},function(W){$.error(W)})}F.inherits(S,R),S.prototype.cleanUp=function(){R.prototype.cleanUp.call(this),this.data=null},S.prototype.resume=function(){return!!R.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,F.delay(this._tickAndRepeat,[],this)),!0)},S.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(F.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},S.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var P=null,$=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":P=this.data.substring(this.index,$);break;case"uint8array":P=this.data.subarray(this.index,$);break;case"array":case"nodebuffer":P=this.data.slice(this.index,$)}return this.index=$,this.push({data:P,meta:{percent:this.max?this.index/this.max*100:0}})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],28:[function(q,Re,Y){"use strict";function F(R){this.name=R||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}F.prototype={push:function(R){this.emit("data",R)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(R){this.emit("error",R)}return!0},error:function(R){return!this.isFinished&&(this.isPaused?this.generatedError=R:(this.isFinished=!0,this.emit("error",R),this.previous&&this.previous.error(R),this.cleanUp()),!0)},on:function(R,S){return this._listeners[R].push(S),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(R,S){if(this._listeners[R])for(var P=0;P "+R:R}},Re.exports=F},{}],29:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./ConvertWorker"),S=q("./GenericWorker"),P=q("../base64"),$=q("../support"),W=q("../external"),V=null;if($.nodestream)try{V=q("../nodejs/NodejsStreamOutputAdapter")}catch{}function I(B,M,N){var E=M;switch(M){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=M,this._mimeType=N,F.checkSupport(E),this._worker=B.pipe(new R(E)),B.lock()}catch(j){this._worker=new S("error"),this._worker.error(j)}}I.prototype={accumulate:function(B){return function G(B,M){return new W.Promise(function(N,E){var j=[],K=B._internalType,oe=B._outputType,te=B._mimeType;B.on("data",function(Te,we){j.push(Te),M&&M(we)}).on("error",function(Te){j=[],E(Te)}).on("end",function(){try{var Te=function(we,Fe,ye){switch(we){case"blob":return F.newBlob(F.transformTo("arraybuffer",Fe),ye);case"base64":return P.encode(Fe);default:return F.transformTo(we,Fe)}}(oe,function(we,Fe){var ye,Ge=0,mt=null,H=0;for(ye=0;ye"u")Y.blob=!1;else{var F=new ArrayBuffer(0);try{Y.blob=0===new Blob([F],{type:"application/zip"}).size}catch{try{var R=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);R.append(F),Y.blob=0===R.getBlob("application/zip").size}catch{Y.blob=!1}}}try{Y.nodestream=!!q("readable-stream").Readable}catch{Y.nodestream=!1}},{"readable-stream":16}],31:[function(q,Re,Y){"use strict";for(var F=q("./utils"),R=q("./support"),S=q("./nodejsUtils"),P=q("./stream/GenericWorker"),$=new Array(256),W=0;W<256;W++)$[W]=252<=W?6:248<=W?5:240<=W?4:224<=W?3:192<=W?2:1;function V(){P.call(this,"utf-8 decode"),this.leftOver=null}function G(){P.call(this,"utf-8 encode")}$[254]=$[254]=1,Y.utf8encode=function(I){return R.nodebuffer?S.newBufferFrom(I,"utf-8"):function(B){var M,N,E,j,K,oe=B.length,te=0;for(j=0;j>>6:(N<65536?M[K++]=224|N>>>12:(M[K++]=240|N>>>18,M[K++]=128|N>>>12&63),M[K++]=128|N>>>6&63),M[K++]=128|63&N);return M}(I)},Y.utf8decode=function(I){return R.nodebuffer?F.transformTo("nodebuffer",I).toString("utf-8"):function(B){var M,N,E,j,K=B.length,oe=new Array(2*K);for(M=N=0;M>10&1023,oe[N++]=56320|1023&E)}return oe.length!==N&&(oe.subarray?oe=oe.subarray(0,N):oe.length=N),F.applyFromCharCode(oe)}(I=F.transformTo(R.uint8array?"uint8array":"array",I))},F.inherits(V,P),V.prototype.processChunk=function(I){var B=F.transformTo(R.uint8array?"uint8array":"array",I.data);if(this.leftOver&&this.leftOver.length){if(R.uint8array){var M=B;(B=new Uint8Array(M.length+this.leftOver.length)).set(this.leftOver,0),B.set(M,this.leftOver.length)}else B=this.leftOver.concat(B);this.leftOver=null}var N=function(j,K){var oe;for((K=K||j.length)>j.length&&(K=j.length),oe=K-1;0<=oe&&128==(192&j[oe]);)oe--;return oe<0||0===oe?K:oe+$[j[oe]]>K?oe:K}(B),E=B;N!==B.length&&(R.uint8array?(E=B.subarray(0,N),this.leftOver=B.subarray(N,B.length)):(E=B.slice(0,N),this.leftOver=B.slice(N,B.length))),this.push({data:Y.utf8decode(E),meta:I.meta})},V.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Y.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Y.Utf8DecodeWorker=V,F.inherits(G,P),G.prototype.processChunk=function(I){this.push({data:Y.utf8encode(I.data),meta:I.meta})},Y.Utf8EncodeWorker=G},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(q,Re,Y){"use strict";var F=q("./support"),R=q("./base64"),S=q("./nodejsUtils"),P=q("./external");function $(M){return M}function W(M,N){for(var E=0;E>8;this.dir=!!(16&this.externalFileAttributes),0==I&&(this.dosPermissions=63&this.externalFileAttributes),3==I&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var I=F(this.extraFields[1].value);this.uncompressedSize===R.MAX_VALUE_32BITS&&(this.uncompressedSize=I.readInt(8)),this.compressedSize===R.MAX_VALUE_32BITS&&(this.compressedSize=I.readInt(8)),this.localHeaderOffset===R.MAX_VALUE_32BITS&&(this.localHeaderOffset=I.readInt(8)),this.diskNumberStart===R.MAX_VALUE_32BITS&&(this.diskNumberStart=I.readInt(4))}},readExtraFields:function(I){var B,M,N,E=I.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});I.index+4>>6:(I<65536?G[N++]=224|I>>>12:(G[N++]=240|I>>>18,G[N++]=128|I>>>12&63),G[N++]=128|I>>>6&63),G[N++]=128|63&I);return G},Y.buf2binstring=function(V){return W(V,V.length)},Y.binstring2buf=function(V){for(var G=new F.Buf8(V.length),I=0,B=G.length;I>10&1023,j[B++]=56320|1023&M)}return W(j,B)},Y.utf8border=function(V,G){var I;for((G=G||V.length)>V.length&&(G=V.length),I=G-1;0<=I&&128==(192&V[I]);)I--;return I<0||0===I?G:I+P[V[I]]>G?I:G}},{"./common":41}],43:[function(q,Re,Y){"use strict";Re.exports=function(F,R,S,P){for(var $=65535&F|0,W=F>>>16&65535|0,V=0;0!==S;){for(S-=V=2e3>>1:R>>>1;S[P]=R}return S}();Re.exports=function(R,S,P,$){var W=F,V=$+P;R^=-1;for(var G=$;G>>8^W[255&(R^S[G])];return-1^R}},{}],46:[function(q,Re,Y){"use strict";var F,R=q("../utils/common"),S=q("./trees"),P=q("./adler32"),$=q("./crc32"),W=q("./messages"),V=0,I=0,B=-2,E=2,j=8,oe=286,te=30,Te=19,we=2*oe+1,Fe=15,ye=3,Ge=258,mt=Ge+ye+1,H=42,Ce=113;function Vt(v,Se){return v.msg=W[Se],Se}function Ve(v){return(v<<1)-(4v.avail_out&&(J=v.avail_out),0!==J&&(R.arraySet(v.output,Se.pending_buf,Se.pending_out,J,v.next_out),v.next_out+=J,Se.pending_out+=J,v.total_out+=J,v.avail_out-=J,Se.pending-=J,0===Se.pending&&(Se.pending_out=0))}function le(v,Se){S._tr_flush_block(v,0<=v.block_start?v.block_start:-1,v.strstart-v.block_start,Se),v.block_start=v.strstart,fe(v.strm)}function bt(v,Se){v.pending_buf[v.pending++]=Se}function it(v,Se){v.pending_buf[v.pending++]=Se>>>8&255,v.pending_buf[v.pending++]=255&Se}function Qe(v,Se){var J,L,O=v.max_chain_length,Z=v.strstart,de=v.prev_length,Ee=v.nice_match,ce=v.strstart>v.w_size-mt?v.strstart-(v.w_size-mt):0,je=v.window,Je=v.w_mask,ze=v.prev,ht=v.strstart+Ge,oi=je[Z+de-1],Kt=je[Z+de];v.prev_length>=v.good_match&&(O>>=2),Ee>v.lookahead&&(Ee=v.lookahead);do{if(je[(J=Se)+de]===Kt&&je[J+de-1]===oi&&je[J]===je[Z]&&je[++J]===je[Z+1]){Z+=2,J++;do{}while(je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&Zce&&0!=--O);return de<=v.lookahead?de:v.lookahead}function Zi(v){var Se,J,L,O,Z,de,Ee,ce,je,Je,ze=v.w_size;do{if(O=v.window_size-v.lookahead-v.strstart,v.strstart>=ze+(ze-mt)){for(R.arraySet(v.window,v.window,ze,ze,0),v.match_start-=ze,v.strstart-=ze,v.block_start-=ze,Se=J=v.hash_size;L=v.head[--Se],v.head[Se]=ze<=L?L-ze:0,--J;);for(Se=J=ze;L=v.prev[--Se],v.prev[Se]=ze<=L?L-ze:0,--J;);O+=ze}if(0===v.strm.avail_in)break;if(Ee=v.window,ce=v.strstart+v.lookahead,Je=void 0,(je=O)<(Je=(de=v.strm).avail_in)&&(Je=je),J=0===Je?0:(de.avail_in-=Je,R.arraySet(Ee,de.input,de.next_in,Je,ce),1===de.state.wrap?de.adler=P(de.adler,Ee,Je,ce):2===de.state.wrap&&(de.adler=$(de.adler,Ee,Je,ce)),de.next_in+=Je,de.total_in+=Je,Je),v.lookahead+=J,v.lookahead+v.insert>=ye)for(v.ins_h=v.window[Z=v.strstart-v.insert],v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye)if(L=S._tr_tally(v,v.strstart-v.match_start,v.match_length-ye),v.lookahead-=v.match_length,v.match_length<=v.max_lazy_match&&v.lookahead>=ye){for(v.match_length--;v.strstart++,v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye&&v.match_length<=v.prev_length){for(O=v.strstart+v.lookahead-ye,L=S._tr_tally(v,v.strstart-1-v.prev_match,v.prev_length-ye),v.lookahead-=v.prev_length-1,v.prev_length-=2;++v.strstart<=O&&(v.ins_h=(v.ins_h<v.pending_buf_size-5&&(J=v.pending_buf_size-5);;){if(v.lookahead<=1){if(Zi(v),0===v.lookahead&&Se===V)return 1;if(0===v.lookahead)break}v.strstart+=v.lookahead,v.lookahead=0;var L=v.block_start+J;if((0===v.strstart||v.strstart>=L)&&(v.lookahead=v.strstart-L,v.strstart=L,le(v,!1),0===v.strm.avail_out)||v.strstart-v.block_start>=v.w_size-mt&&(le(v,!1),0===v.strm.avail_out))return 1}return v.insert=0,4===Se?(le(v,!0),0===v.strm.avail_out?3:4):(v.strstart>v.block_start&&le(v,!1),1)}),new ni(4,4,8,4,Fn),new ni(4,5,16,8,Fn),new ni(4,6,32,32,Fn),new ni(4,4,16,16,Wt),new ni(8,16,32,32,Wt),new ni(8,16,128,128,Wt),new ni(8,32,128,256,Wt),new ni(32,128,258,1024,Wt),new ni(32,258,258,4096,Wt)],Y.deflateInit=function(v,Se){return fo(v,Se,j,15,8,0)},Y.deflateInit2=fo,Y.deflateReset=ar,Y.deflateResetKeep=Ui,Y.deflateSetHeader=function(v,Se){return v&&v.state?2!==v.state.wrap?B:(v.state.gzhead=Se,I):B},Y.deflate=function(v,Se){var J,L,O,Z;if(!v||!v.state||5>8&255),bt(L,L.gzhead.time>>16&255),bt(L,L.gzhead.time>>24&255),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,255&L.gzhead.os),L.gzhead.extra&&L.gzhead.extra.length&&(bt(L,255&L.gzhead.extra.length),bt(L,L.gzhead.extra.length>>8&255)),L.gzhead.hcrc&&(v.adler=$(v.adler,L.pending_buf,L.pending,0)),L.gzindex=0,L.status=69):(bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,3),L.status=Ce);else{var de=j+(L.w_bits-8<<4)<<8;de|=(2<=L.strategy||L.level<2?0:L.level<6?1:6===L.level?2:3)<<6,0!==L.strstart&&(de|=32),de+=31-de%31,L.status=Ce,it(L,de),0!==L.strstart&&(it(L,v.adler>>>16),it(L,65535&v.adler)),v.adler=1}if(69===L.status)if(L.gzhead.extra){for(O=L.pending;L.gzindex<(65535&L.gzhead.extra.length)&&(L.pending!==L.pending_buf_size||(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending!==L.pending_buf_size));)bt(L,255&L.gzhead.extra[L.gzindex]),L.gzindex++;L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),L.gzindex===L.gzhead.extra.length&&(L.gzindex=0,L.status=73)}else L.status=73;if(73===L.status)if(L.gzhead.name){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.gzindex=0,L.status=91)}else L.status=91;if(91===L.status)if(L.gzhead.comment){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.status=103)}else L.status=103;if(103===L.status&&(L.gzhead.hcrc?(L.pending+2>L.pending_buf_size&&fe(v),L.pending+2<=L.pending_buf_size&&(bt(L,255&v.adler),bt(L,v.adler>>8&255),v.adler=0,L.status=Ce)):L.status=Ce),0!==L.pending){if(fe(v),0===v.avail_out)return L.last_flush=-1,I}else if(0===v.avail_in&&Ve(Se)<=Ve(J)&&4!==Se)return Vt(v,-5);if(666===L.status&&0!==v.avail_in)return Vt(v,-5);if(0!==v.avail_in||0!==L.lookahead||Se!==V&&666!==L.status){var Ee=2===L.strategy?function(ce,je){for(var Je;;){if(0===ce.lookahead&&(Zi(ce),0===ce.lookahead)){if(je===V)return 1;break}if(ce.match_length=0,Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++,Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):3===L.strategy?function(ce,je){for(var Je,ze,ht,oi,Kt=ce.window;;){if(ce.lookahead<=Ge){if(Zi(ce),ce.lookahead<=Ge&&je===V)return 1;if(0===ce.lookahead)break}if(ce.match_length=0,ce.lookahead>=ye&&0ce.lookahead&&(ce.match_length=ce.lookahead)}if(ce.match_length>=ye?(Je=S._tr_tally(ce,1,ce.match_length-ye),ce.lookahead-=ce.match_length,ce.strstart+=ce.match_length,ce.match_length=0):(Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++),Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):F[L.level].func(L,Se);if(3!==Ee&&4!==Ee||(L.status=666),1===Ee||3===Ee)return 0===v.avail_out&&(L.last_flush=-1),I;if(2===Ee&&(1===Se?S._tr_align(L):5!==Se&&(S._tr_stored_block(L,0,0,!1),3===Se&&(Tt(L.head),0===L.lookahead&&(L.strstart=0,L.block_start=0,L.insert=0))),fe(v),0===v.avail_out))return L.last_flush=-1,I}return 4!==Se?I:L.wrap<=0?1:(2===L.wrap?(bt(L,255&v.adler),bt(L,v.adler>>8&255),bt(L,v.adler>>16&255),bt(L,v.adler>>24&255),bt(L,255&v.total_in),bt(L,v.total_in>>8&255),bt(L,v.total_in>>16&255),bt(L,v.total_in>>24&255)):(it(L,v.adler>>>16),it(L,65535&v.adler)),fe(v),0=J.w_size&&(0===Z&&(Tt(J.head),J.strstart=0,J.block_start=0,J.insert=0),je=new R.Buf8(J.w_size),R.arraySet(je,Se,Je-J.w_size,J.w_size,0),Se=je,Je=J.w_size),de=v.avail_in,Ee=v.next_in,ce=v.input,v.avail_in=Je,v.next_in=0,v.input=Se,Zi(J);J.lookahead>=ye;){for(L=J.strstart,O=J.lookahead-(ye-1);J.ins_h=(J.ins_h<>>=ye=Fe>>>24,K-=ye,0==(ye=Fe>>>16&255))Me[W++]=65535&Fe;else{if(!(16&ye)){if(!(64&ye)){Fe=oe[(65535&Fe)+(j&(1<>>=ye,K-=ye),K<15&&(j+=x[P++]<>>=ye=Fe>>>24,K-=ye,!(16&(ye=Fe>>>16&255))){if(!(64&ye)){Fe=te[(65535&Fe)+(j&(1<>>=ye,K-=ye,(ye=W-V)>3,j&=(1<<(K-=Ge<<3))-1,F.next_in=P,F.next_out=W,F.avail_in=P<$?$-P+5:5-(P-$),F.avail_out=W>>24&255)+(H>>>8&65280)+((65280&H)<<8)+((255&H)<<24)}function j(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new F.Buf16(320),this.work=new F.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function K(H){var Ce;return H&&H.state?(H.total_in=H.total_out=(Ce=H.state).total=0,H.msg="",Ce.wrap&&(H.adler=1&Ce.wrap),Ce.mode=B,Ce.last=0,Ce.havedict=0,Ce.dmax=32768,Ce.head=null,Ce.hold=0,Ce.bits=0,Ce.lencode=Ce.lendyn=new F.Buf32(M),Ce.distcode=Ce.distdyn=new F.Buf32(N),Ce.sane=1,Ce.back=-1,G):I}function oe(H){var Ce;return H&&H.state?((Ce=H.state).wsize=0,Ce.whave=0,Ce.wnext=0,K(H)):I}function te(H,Ce){var x,Me;return H&&H.state?(Me=H.state,Ce<0?(x=0,Ce=-Ce):(x=1+(Ce>>4),Ce<48&&(Ce&=15)),Ce&&(Ce<8||15=Le.wsize?(F.arraySet(Le.window,Ce,x-Le.wsize,Le.wsize,0),Le.wnext=0,Le.whave=Le.wsize):(Me<(Rt=Le.wsize-Le.wnext)&&(Rt=Me),F.arraySet(Le.window,Ce,x-Me,Rt,Le.wnext),(Me-=Rt)?(F.arraySet(Le.window,Ce,x-Me,Me,0),Le.wnext=Me,Le.whave=Le.wsize):(Le.wnext+=Rt,Le.wnext===Le.wsize&&(Le.wnext=0),Le.whave>>8&255,x.check=S(x.check,Z,2,0),le=fe=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&fe)<<8)+(fe>>8))%31){H.msg="incorrect header check",x.mode=30;break}if(8!=(15&fe)){H.msg="unknown compression method",x.mode=30;break}if(le-=4,v=8+(15&(fe>>>=4)),0===x.wbits)x.wbits=v;else if(v>x.wbits){H.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=3;case 3:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,Z[2]=fe>>>16&255,Z[3]=fe>>>24&255,x.check=S(x.check,Z,4,0)),le=fe=0,x.mode=4;case 4:for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>8),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=5;case 5:if(1024&x.flags){for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(Ve<(Qe=x.length)&&(Qe=Ve),Qe&&(x.head&&(v=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),F.arraySet(x.head.extra,Me,Le,Qe,v)),512&x.flags&&(x.check=S(x.check,Me,Qe,Le)),Ve-=Qe,Le+=Qe,x.length-=Qe),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(0===Ve)break e;for(Qe=0;v=Me[Le+Qe++],x.head&&v&&x.length<65536&&(x.head.name+=String.fromCharCode(v)),v&&Qe>9&1,x.head.done=!0),H.adler=x.check=0,x.mode=12;break;case 10:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=7&le,le-=7&le,x.mode=27;break}for(;le<3;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=1)){case 0:x.mode=14;break;case 1:if(Ge(x),x.mode=20,6!==Ce)break;fe>>>=2,le-=2;break e;case 2:x.mode=17;break;case 3:H.msg="invalid block type",x.mode=30}fe>>>=2,le-=2;break;case 14:for(fe>>>=7&le,le-=7≤le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>16^65535)){H.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&fe,le=fe=0,x.mode=15,6===Ce)break e;case 15:x.mode=16;case 16:if(Qe=x.length){if(Ve>>=5)),le-=5,x.ncode=4+(15&(fe>>>=5)),fe>>>=4,le-=4,286>>=3,le-=3}for(;x.have<19;)x.lens[de[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,Se=$(0,x.lens,0,19,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Wt,le-=Wt,x.lens[x.have++]=cn;else{if(16===cn){for(L=Wt+2;le>>=Wt,le-=Wt,0===x.have){H.msg="invalid bit length repeat",x.mode=30;break}v=x.lens[x.have-1],Qe=3+(3&fe),fe>>>=2,le-=2}else if(17===cn){for(L=Wt+3;le>>=Wt)),fe>>>=3,le-=3}else{for(L=Wt+7;le>>=Wt)),fe>>>=7,le-=7}if(x.have+Qe>x.nlen+x.ndist){H.msg="invalid bit length repeat",x.mode=30;break}for(;Qe--;)x.lens[x.have++]=v}}if(30===x.mode)break;if(0===x.lens[256]){H.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,Se=$(1,x.lens,0,x.nlen,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,Se=$(2,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,J={bits:x.distbits}),x.distbits=J.bits,Se){H.msg="invalid distances set",x.mode=30;break}if(x.mode=20,6===Ce)break e;case 20:x.mode=21;case 21:if(6<=Ve&&258<=Tt){H.next_out=Vt,H.avail_out=Tt,H.next_in=Le,H.avail_in=Ve,x.hold=fe,x.bits=le,P(H,it),Vt=H.next_out,Rt=H.output,Tt=H.avail_out,Le=H.next_in,Me=H.input,Ve=H.avail_in,fe=x.hold,le=x.bits,12===x.mode&&(x.back=-1);break}for(x.back=0;ni=(O=x.lencode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,x.length=cn,0===ni){x.mode=26;break}if(32&ni){x.back=-1,x.mode=12;break}if(64&ni){H.msg="invalid literal/length code",x.mode=30;break}x.extra=15&ni,x.mode=22;case 22:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;ni=(O=x.distcode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,64&ni){H.msg="invalid distance code",x.mode=30;break}x.offset=cn,x.extra=15&ni,x.mode=24;case 24:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){H.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(0===Tt)break e;if(x.offset>(Qe=it-Tt)){if((Qe=x.offset-Qe)>x.whave&&x.sane){H.msg="invalid distance too far back",x.mode=30;break}Zi=Qe>x.wnext?x.wsize-(Qe-=x.wnext):x.wnext-Qe,Qe>x.length&&(Qe=x.length),Fn=x.window}else Fn=Rt,Zi=Vt-x.offset,Qe=x.length;for(Ttwe?(ye=Zi[Fn+N[Ce]],le[bt+N[Ce]]):(ye=96,0),j=1<>Vt)+(K-=j)]=Fe<<24|ye<<16|Ge|0,0!==K;);for(j=1<>=1;if(0!==j?(fe&=j-1,fe+=j):fe=0,Ce++,0==--it[H]){if(H===Me)break;H=V[G+N[Ce]]}if(Rt>>7)]}function bt(O,Z){O.pending_buf[O.pending++]=255&Z,O.pending_buf[O.pending++]=Z>>>8&255}function it(O,Z,de){O.bi_valid>E-de?(O.bi_buf|=Z<>E-O.bi_valid,O.bi_valid+=de-E):(O.bi_buf|=Z<>>=1,de<<=1,0<--Z;);return de>>>1}function Fn(O,Z,de){var Ee,ce,je=new Array(N+1),Je=0;for(Ee=1;Ee<=N;Ee++)je[Ee]=Je=Je+de[Ee-1]<<1;for(ce=0;ce<=Z;ce++){var ze=O[2*ce+1];0!==ze&&(O[2*ce]=Zi(je[ze]++,ze))}}function Wt(O){var Z;for(Z=0;Z>1;1<=de;de--)Ui(O,je,de);for(ce=ht;de=O.heap[1],O.heap[1]=O.heap[O.heap_len--],Ui(O,je,1),Ee=O.heap[1],O.heap[--O.heap_max]=de,O.heap[--O.heap_max]=Ee,je[2*ce]=je[2*de]+je[2*Ee],O.depth[ce]=(O.depth[de]>=O.depth[Ee]?O.depth[de]:O.depth[Ee])+1,je[2*de+1]=je[2*Ee+1]=ce,O.heap[1]=ce++,Ui(O,je,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(Kt,go){var ws,_o,Mo,Ti,_c,xs,sr=go.dyn_tree,bc=go.max_code,Ag=go.stat_desc.static_tree,Ds=go.stat_desc.has_stree,vc=go.stat_desc.extra_bits,Sh=go.stat_desc.extra_base,Qr=go.stat_desc.max_length,yc=0;for(Ti=0;Ti<=N;Ti++)Kt.bl_count[Ti]=0;for(sr[2*Kt.heap[Kt.heap_max]+1]=0,ws=Kt.heap_max+1;ws<573;ws++)Qr<(Ti=sr[2*sr[2*(_o=Kt.heap[ws])+1]+1]+1)&&(Ti=Qr,yc++),sr[2*_o+1]=Ti,bc<_o||(Kt.bl_count[Ti]++,_c=0,Sh<=_o&&(_c=vc[_o-Sh]),Kt.opt_len+=(xs=sr[2*_o])*(Ti+_c),Ds&&(Kt.static_len+=xs*(Ag[2*_o+1]+_c)));if(0!==yc){do{for(Ti=Qr-1;0===Kt.bl_count[Ti];)Ti--;Kt.bl_count[Ti]--,Kt.bl_count[Ti+1]+=2,Kt.bl_count[Qr]--,yc-=2}while(0>=7;ce>>=1)if(1&oi&&0!==ze.dyn_ltree[2*ht])return 0;if(0!==ze.dyn_ltree[18]||0!==ze.dyn_ltree[20]||0!==ze.dyn_ltree[26])return 1;for(ht=32;ht>>3)<=(ce=O.opt_len+3+7>>>3)&&(ce=je)):ce=je=de+5,de+4<=ce&&-1!==Z?L(O,Z,de,Ee):4===O.strategy||je===ce?(it(O,2+(Ee?1:0),3),ar(O,mt,H)):(it(O,4+(Ee?1:0),3),function(ze,ht,oi,Kt){var go;for(it(ze,ht-257,5),it(ze,oi-1,5),it(ze,Kt-4,4),go=0;go>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&Z,O.pending_buf[O.l_buf+O.last_lit]=255&de,O.last_lit++,0===Z?O.dyn_ltree[2*de]++:(O.matches++,Z--,O.dyn_ltree[2*(x[de]+V+1)]++,O.dyn_dtree[2*le(Z)]++),O.last_lit===O.lit_bufsize-1},Y._tr_align=function(O){var Z;it(O,2,3),Qe(O,256,mt),16===(Z=O).bi_valid?(bt(Z,Z.bi_buf),Z.bi_buf=0,Z.bi_valid=0):8<=Z.bi_valid&&(Z.pending_buf[Z.pending++]=255&Z.bi_buf,Z.bi_buf>>=8,Z.bi_valid-=8)}},{"../utils/common":41}],53:[function(q,Re,Y){"use strict";Re.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(q,Re,Y){(function(F){!function(R,S){"use strict";if(!R.setImmediate){var P,$,W,V,G=1,I={},B=!1,M=R.document,N=Object.getPrototypeOf&&Object.getPrototypeOf(R);N=N&&N.setTimeout?N:R,P="[object process]"==={}.toString.call(R.process)?function(oe){process.nextTick(function(){j(oe)})}:function(){if(R.postMessage&&!R.importScripts){var oe=!0,te=R.onmessage;return R.onmessage=function(){oe=!1},R.postMessage("","*"),R.onmessage=te,oe}}()?(V="setImmediate$"+Math.random()+"$",R.addEventListener?R.addEventListener("message",K,!1):R.attachEvent("onmessage",K),function(oe){R.postMessage(V+oe,"*")}):R.MessageChannel?((W=new MessageChannel).port1.onmessage=function(oe){j(oe.data)},function(oe){W.port2.postMessage(oe)}):M&&"onreadystatechange"in M.createElement("script")?($=M.documentElement,function(oe){var te=M.createElement("script");te.onreadystatechange=function(){j(oe),te.onreadystatechange=null,$.removeChild(te),te=null},$.appendChild(te)}):function(oe){setTimeout(j,0,oe)},N.setImmediate=function(oe){"function"!=typeof oe&&(oe=new Function(""+oe));for(var te=new Array(arguments.length-1),Te=0;Te"u"?void 0===F?this:F:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)}},ld=>{ld(ld.s=536)}]); \ No newline at end of file +(self.webpackChunkui=self.webpackChunkui||[]).push([[590],{536:(ld,q,Re)=>{"use strict";let S=null,$=1;const W=Symbol("SIGNAL");function V(t){const n=S;return S=t,n}function j(t){if((!H(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==$)){if(!t.producerMustRecompute(t)&&!Fe(t))return t.dirty=!1,void(t.lastCleanEpoch=$);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=$}}function Fe(t){Ce(t);for(let n=0;n0}function Ce(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}let fe=null;function J(t){return"function"==typeof t}function L(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const O=L(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Z(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class de{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(J(i))try{i()}catch(r){n=r instanceof O?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{je(r)}catch(a){n=n??[],a instanceof O?n=[...n,...a.errors]:n.push(a)}}if(n)throw new O(n)}}add(n){var e;if(n&&n!==this)if(this.closed)je(n);else{if(n instanceof de){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Z(e,n)}remove(n){const{_finalizers:e}=this;e&&Z(e,n),n instanceof de&&n._removeParent(this)}}de.EMPTY=(()=>{const t=new de;return t.closed=!0,t})();const Ee=de.EMPTY;function ce(t){return t instanceof de||t&&"closed"in t&&J(t.remove)&&J(t.add)&&J(t.unsubscribe)}function je(t){J(t)?t():t.unsubscribe()}const Je={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ze={setTimeout(t,n,...e){const{delegate:i}=ze;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=ze;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function ht(t){ze.setTimeout(()=>{const{onUnhandledError:n}=Je;if(!n)throw t;n(t)})}function oi(){}const Kt=_o("C",void 0,void 0);function _o(t,n,e){return{kind:t,value:n,error:e}}let Mo=null;function Ti(t){if(Je.useDeprecatedSynchronousErrorHandling){const n=!Mo;if(n&&(Mo={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Mo;if(Mo=null,e)throw i}}else t()}class xs extends de{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ce(n)&&n.add(this)):this.destination=yc}static create(n,e,i){return new Ds(n,e,i)}next(n){this.isStopped?Qr(function ws(t){return _o("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Qr(function go(t){return _o("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Qr(Kt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const sr=Function.prototype.bind;function bc(t,n){return sr.call(t,n)}class Ag{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){vc(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){vc(i)}else vc(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){vc(e)}}}class Ds extends xs{constructor(n,e,i){let o;if(super(),J(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&Je.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&bc(n.next,r),error:n.error&&bc(n.error,r),complete:n.complete&&bc(n.complete,r)}):o=n}this.destination=new Ag(o)}}function vc(t){Je.useDeprecatedSynchronousErrorHandling?function _c(t){Je.useDeprecatedSynchronousErrorHandling&&Mo&&(Mo.errorThrown=!0,Mo.error=t)}(t):ht(t)}function Qr(t,n){const{onStoppedNotification:e}=Je;e&&ze.setTimeout(()=>e(t,n))}const yc={closed:!0,next:oi,error:function Sh(t){throw t},complete:oi},Pg="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ra(t){return t}function Tw(t){return 0===t.length?Ra:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let li=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function ZN(t){return t&&t instanceof xs||function KN(t){return t&&J(t.next)&&J(t.error)&&J(t.complete)}(t)&&ce(t)}(e)?e:new Ds(e,i,o);return Ti(()=>{const{operator:a,source:s}=this;r.add(a?a.call(r,s):s?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Iw(i))((o,r)=>{const a=new Ds({next:s=>{try{e(s)}catch(c){r(c),a.unsubscribe()}},error:r,complete:o});this.subscribe(a)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Pg](){return this}pipe(...e){return Tw(e)(this)}toPromise(e){return new(e=Iw(e))((i,o)=>{let r;this.subscribe(a=>r=a,a=>o(a),()=>i(r))})}}return t.create=n=>new t(n),t})();function Iw(t){var n;return null!==(n=t??Je.Promise)&&void 0!==n?n:Promise}const YN=L(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let qe=(()=>{class t extends li{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Ew(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new YN}next(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Ti(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?Ee:(this.currentObservers=null,r.push(e),new de(()=>{this.currentObservers=null,Z(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new li;return e.source=this,e}}return t.create=(n,e)=>new Ew(n,e),t})();class Ew extends qe{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:Ee}}class pt extends qe{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Ow(t){return J(t?.lift)}function $i(t){return n=>{if(Ow(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Fi(t,n,e,i,o){return new QN(t,n,e,i,o)}class QN extends xs{constructor(n,e,i,o,r,a){super(n),this.onFinalize=r,this.shouldUnsubscribe=a,this._next=e?function(s){try{e(s)}catch(c){n.error(c)}}:super._next,this._error=o?function(s){try{o(s)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function nt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{i.next(t.call(n,r,o++))}))})}const Aw="https://g.co/ng/security#xss";class ue extends Error{constructor(n,e){super(function Cc(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function Rg(t){return n=>{setTimeout(t,void 0,n)}}const Ne=class XN extends qe{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,r=e||(()=>null),a=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(r=Rg(r),o&&(o=Rg(o)),a&&(a=Rg(a)));const s=super.subscribe({next:o,error:r,complete:a});return n instanceof de&&n.add(s),s}};var $t=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}($t||{});function yn(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(yn).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function Ng(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}var Mh=function(t){return t[t.OnPush=0]="OnPush",t[t.Default=1]="Default",t}(Mh||{}),cr=function(t){return t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}(cr||{});function Xr(t){return{toString:t}.toString()}const di=globalThis,kr={},Jt=[];function mi(t){for(let n in t)if(t[n]===mi)return n;throw Error("Could not find renamed property on target object.")}function iF(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}const dd=mi({\u0275cmp:mi}),Fg=mi({\u0275dir:mi}),Lg=mi({\u0275pipe:mi}),Nw=mi({\u0275mod:mi}),Jr=mi({\u0275fac:mi}),ud=mi({__NG_ELEMENT_ID__:mi}),Fw=mi({__NG_ENV_ID__:mi});var ge=function(t){return t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",t}(ge||{});function Lw(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const r=n.length;if(o+r===i||t.charCodeAt(o+r)<=32)return o}e=o+1}}function Bg(t,n,e){let i=0;for(;in){a=r-1;break}}}for(;rr?"":o[g+1].toLowerCase();const w=8&i?b:null;if(w&&-1!==Lw(w,u,0)||2&i&&u!==b){if(lr(i))return!1;a=!0}}}}else{if(!a&&!lr(i)&&!lr(c))return!1;if(a&&lr(c))continue;a=!1,i=c|1&i}}return lr(i)||a}function lr(t){return 0==(1&t)}function aF(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+s+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!lr(a)&&(n+=$w(r,o),o=""),i=a,r=r||!lr(i);e++}return""!==o&&(n+=$w(r,o)),n}function Ie(t){return Xr(()=>{const n=qw(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Mh.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||cr.Emulated,styles:t.styles||Jt,_:null,schemas:t.schemas||null,tView:null,id:""};Ww(e);const i=t.dependencies;return e.directiveDefs=Th(i,!1),e.pipeDefs=Th(i,!0),e.id=function _F(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function pF(t){return Ht(t)||Cn(t)}function fF(t){return null!==t}function ct(t){return Xr(()=>({type:t.type,bootstrap:t.bootstrap||Jt,declarations:t.declarations||Jt,imports:t.imports||Jt,exports:t.exports||Jt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Gw(t,n){if(null==t)return kr;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,a,s=ge.None;Array.isArray(o)?(s=o[0],r=o[1],a=o[2]??r):(r=o,a=o),n?(e[r]=s!==ge.None?[i,s]:i,n[r]=a):e[r]=i}return e}function Q(t){return Xr(()=>{const n=qw(t);return Ww(n),n})}function bo(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ht(t){return t[dd]||null}function Cn(t){return t[Fg]||null}function Ln(t){return t[Lg]||null}function Un(t,n){const e=t[Nw]||null;if(!e&&!0===n)throw new Error(`Type ${yn(t)} does not have '\u0275mod' property.`);return e}function qw(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||kr,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Jt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Gw(t.inputs,n),outputs:Gw(t.outputs),debugInfo:null}}function Ww(t){t.features?.forEach(n=>n(t))}function Th(t,n){if(!t)return null;const e=n?Ln:pF;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(fF)}const Vi=0,He=1,lt=2,Ji=3,dr=4,$n=5,ur=6,wc=7,Ii=8,Gn=9,ea=10,Et=11,md=12,Kw=13,xc=14,Gi=15,pd=16,Dc=17,ta=18,fd=19,Zw=20,La=21,Ih=22,Ss=23,Ot=25,Vg=1,Mr=7,Sc=9,en=10;var jg=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(jg||{});function qn(t){return Array.isArray(t)&&"object"==typeof t[Vg]}function Wn(t){return Array.isArray(t)&&!0===t[Vg]}function zg(t){return 0!=(4&t.flags)}function ks(t){return t.componentOffset>-1}function Oh(t){return 1==(1&t.flags)}function hr(t){return!!t.template}function Hg(t){return 0!=(512&t[lt])}const Jw="svg";let tx=!1;function bi(t){for(;Array.isArray(t);)t=t[Vi];return t}function _d(t,n){return bi(n[t])}function io(t,n){return bi(n[t.index])}function bd(t,n){return t.data[n]}function kc(t,n){return t[n]}function Eo(t,n){const e=n[t];return qn(e)?e:e[Vi]}function qg(t){return 128==(128&t[lt])}function Tr(t,n){return null==n?null:t[n]}function ix(t){t[Dc]=0}function SF(t){1024&t[lt]||(t[lt]|=1024,qg(t)&&vd(t))}function Wg(t){return!!(9216&t[lt]||t[Ss]?.dirty)}function Kg(t){Wg(t)?vd(t):64&t[lt]&&(function CF(){return tx}()?(t[lt]|=1024,vd(t)):t[ea].changeDetectionScheduler?.notify())}function vd(t){t[ea].changeDetectionScheduler?.notify();let n=Ms(t);for(;null!==n&&!(8192&n[lt])&&(n[lt]|=8192,qg(n));)n=Ms(n)}function Ah(t,n){if(256==(256&t[lt]))throw new ue(911,!1);null===t[La]&&(t[La]=[]),t[La].push(n)}function Ms(t){const n=t[Ji];return Wn(n)?n[Ji]:n}const Dt={lFrame:hx(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function rx(){return Dt.bindingsEnabled}function Mc(){return null!==Dt.skipHydrationRootTNode}function be(){return Dt.lFrame.lView}function Gt(){return Dt.lFrame.tView}function ie(t){return Dt.lFrame.contextLView=t,t[Ii]}function ne(t){return Dt.lFrame.contextLView=null,t}function pi(){let t=ax();for(;null!==t&&64===t.type;)t=t.parent;return t}function ax(){return Dt.lFrame.currentTNode}function Ir(t,n){const e=Dt.lFrame;e.currentTNode=t,e.isParent=n}function Yg(){return Dt.lFrame.isParent}function Qg(){Dt.lFrame.isParent=!1}function no(){const t=Dt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function ia(){return Dt.lFrame.bindingIndex}function mr(){return Dt.lFrame.bindingIndex++}function na(t){const n=Dt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function FF(t,n){const e=Dt.lFrame;e.bindingIndex=e.bindingRootIndex=t,Xg(n)}function Xg(t){Dt.lFrame.currentDirectiveIndex=t}function Jg(t){const n=Dt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e_(){return Dt.lFrame.currentQueryIndex}function Ph(t){Dt.lFrame.currentQueryIndex=t}function BF(t){const n=t[He];return 2===n.type?n.declTNode:1===n.type?t[$n]:null}function dx(t,n,e){if(e&$t.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&$t.Host||(o=BF(r),null===o||(r=r[xc],10&o.type))););if(null===o)return!1;n=o,t=r}const i=Dt.lFrame=ux();return i.currentTNode=n,i.lView=t,!0}function t_(t){const n=ux(),e=t[He];Dt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function ux(){const t=Dt.lFrame,n=null===t?null:t.child;return null===n?hx(t):n}function hx(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function mx(){const t=Dt.lFrame;return Dt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const px=mx;function i_(){const t=mx();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Kn(){return Dt.lFrame.selectedIndex}function Ts(t){Dt.lFrame.selectedIndex=t}function Ei(){const t=Dt.lFrame;return bd(t.tView,t.selectedIndex)}function ei(){Dt.lFrame.currentNamespace=Jw}function pr(){!function zF(){Dt.lFrame.currentNamespace=null}()}let gx=!0;function Rh(){return gx}function Ba(t){gx=t}function HF(){return Tc(pi(),be())}function Tc(t,n){return new Be(io(t,n))}let r_,Be=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=HF}return t})();function _x(t){return t instanceof Be?t.nativeElement:t}function Ic(t,n){t.forEach(e=>Array.isArray(e)?Ic(e,n):n(e))}function bx(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Nh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function Oo(t,n,e){let i=Ec(t,n);return i>=0?t[1|i]=e:(i=~i,function vx(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function o_(t,n){const e=Ec(t,n);if(e>=0)return t[1|e]}function Ec(t,n){return function yx(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),a=t[r<n?o=r:i=r+1}return~(o<YF}),YF="ng",Sx=new se(""),ra=new se("",{providedIn:"platform",factory:()=>"unknown"}),ui=new se(""),s_=new se("",{providedIn:"root",factory:()=>Va().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null}),JF=mi({__forward_ref__:mi});function Qt(t){return t.__forward_ref__=Qt,t.toString=function(){return yn(this())},t}function wt(t){return Hh(t)?t():t}function Hh(t){return"function"==typeof t&&t.hasOwnProperty(JF)&&t.__forward_ref__===Qt}function h_(t){return t&&!!t.\u0275providers}function At(t){return"string"==typeof t?t:null==t?"":String(t)}function m_(t,n){throw new ue(-201,!1)}let p_;function Mx(){return p_}function yo(t){const n=p_;return p_=t,n}function Tx(t,n,e){const i=Vh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&$t.Optional?null:void 0!==n?n:void m_()}const xd={},f_="__NG_DI_FLAG__",Uh="ngTempTokenPath",a3=/\n/gm,Ix="__source";let Oc;function ja(t){const n=Oc;return Oc=t,n}function l3(t,n=$t.Default){if(void 0===Oc)throw new ue(-203,!1);return null===Oc?Tx(t,void 0,n):Oc.get(t,n&$t.Optional?null:void 0,n)}function X(t,n=$t.Default){return(Mx()||l3)(wt(t),n)}function De(t,n=$t.Default){return X(t,$h(n))}function $h(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function g_(t){const n=[];for(let e=0;enull;function D_(t,n,e=!1){return Ox(t,n,e)}const Fc="__parameters__";function Bc(t,n,e){return Xr(()=>{const i=function T_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const a=new o(...r);return s.annotation=a,s;function s(c,u,p){const g=c.hasOwnProperty(Fc)?c[Fc]:Object.defineProperty(c,Fc,{value:[]})[Fc];for(;g.length<=p;)g.push(null);return(g[p]=g[p]||[]).push(a),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const za=Dd(Bc("Optional"),8),Vc=Dd(Bc("SkipSelf"),4);function Is(t,n){return t.hasOwnProperty(Jr)?t[Jr]:null}const Es=new se(""),Lx=new se("",-1),I_=new se("");class Yh{get(n,e=xd){if(e===xd){const i=new Error(`NullInjectorError: No provider for ${yn(n)}!`);throw i.name="NullInjectorError",i}return e}}function D3(...t){return{\u0275providers:Bx(0,t),\u0275fromNgModule:!0}}function Bx(t,...n){const e=[],i=new Set;let o;const r=a=>{e.push(a)};return Ic(n,a=>{const s=a;Xh(s,r,[],i)&&(o||=[],o.push(s))}),void 0!==o&&Vx(o,r),e}function Vx(t,n){for(let e=0;e{n(r,i)})}}function Xh(t,n,e,i){if(!(t=wt(t)))return!1;let o=null,r=jh(t);const a=!r&&Ht(t);if(r||a){if(a&&!a.standalone)return!1;o=t}else{const c=t.ngModule;if(r=jh(c),!r)return!1;o=c}const s=i.has(o);if(a){if(s)return!1;if(i.add(o),a.dependencies){const c="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const u of c)Xh(u,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!s){let u;i.add(o);try{Ic(r.imports,p=>{Xh(p,n,e,i)&&(u||=[],u.push(p))})}finally{}void 0!==u&&Vx(u,n)}if(!s){const u=Is(o)||(()=>new o);n({provide:o,useFactory:u,deps:Jt},o),n({provide:I_,useValue:o,multi:!0},o),n({provide:Es,useValue:()=>X(o),multi:!0},o)}const c=r.providers;if(null!=c&&!s){const u=t;E_(c,p=>{n(p,u)})}}}return o!==t&&void 0!==t.providers}function E_(t,n){for(let e of t)h_(e)&&(e=e.\u0275providers),Array.isArray(e)?E_(e,n):n(e)}const S3=mi({provide:String,useValue:mi});function O_(t){return null!==t&&"object"==typeof t&&S3 in t}function Os(t){return"function"==typeof t}const A_=new se(""),Jh={},M3={};let P_;function em(){return void 0===P_&&(P_=new Yh),P_}class Ao{}class jc extends Ao{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,N_(n,a=>this.processProvider(a)),this.records.set(Lx,zc(void 0,this)),o.has("environment")&&this.records.set(Ao,zc(void 0,this));const r=this.records.get(A_);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(I_,Jt,$t.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=ja(this),i=yo(void 0);try{return n()}finally{ja(e),yo(i)}}get(n,e=xd,i=$t.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Fw))return n[Fw](this);i=$h(i);const r=ja(this),a=yo(void 0);try{if(!(i&$t.SkipSelf)){let c=this.records.get(n);if(void 0===c){const u=function A3(t){return"function"==typeof t||"object"==typeof t&&t instanceof se}(n)&&Vh(n);c=u&&this.injectableDefInScope(u)?zc(R_(n),Jh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&$t.Self?em():this.parent).get(n,e=i&$t.Optional&&e===xd?null:e)}catch(s){if("NullInjectorError"===s.name){if((s[Uh]=s[Uh]||[]).unshift(yn(n)),r)throw s;return function u3(t,n,e,i){const o=t[Uh];throw n[Ix]&&o.unshift(n[Ix]),t.message=function h3(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=yn(n);if(Array.isArray(n))o=n.map(yn).join(" -> ");else if("object"==typeof n){let r=[];for(let a in n)if(n.hasOwnProperty(a)){let s=n[a];r.push(a+":"+("string"==typeof s?JSON.stringify(s):yn(s)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(a3,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[Uh]=null,t}(s,n,"R3InjectorError",this.source)}throw s}finally{yo(a),ja(r)}}resolveInjectorInitializers(){const n=ja(this),e=yo(void 0);try{const o=this.get(Es,Jt,$t.Self);for(const r of o)r()}finally{ja(n),yo(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(yn(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ue(205,!1)}processProvider(n){let e=Os(n=wt(n))?n:wt(n&&n.provide);const i=function I3(t){return O_(t)?zc(void 0,t.useValue):zc(Hx(t),Jh)}(n);if(!Os(n)&&!0===n.multi){let o=this.records.get(e);o||(o=zc(void 0,Jh,!0),o.factory=()=>g_(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===Jh&&(e.value=M3,e.value=e.factory()),"object"==typeof e.value&&e.value&&function O3(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=wt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function R_(t){const n=Vh(t),e=null!==n?n.factory:Is(t);if(null!==e)return e;if(t instanceof se)throw new ue(204,!1);if(t instanceof Function)return function T3(t){if(t.length>0)throw new ue(204,!1);const e=function KF(t){return t&&(t[zh]||t[Dx])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new ue(204,!1)}function Hx(t,n,e){let i;if(Os(t)){const o=wt(t);return Is(o)||R_(o)}if(O_(t))i=()=>wt(t.useValue);else if(function zx(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...g_(t.deps||[]));else if(function jx(t){return!(!t||!t.useExisting)}(t))i=()=>X(wt(t.useExisting));else{const o=wt(t&&(t.useClass||t.provide));if(!function E3(t){return!!t.deps}(t))return Is(o)||R_(o);i=()=>new o(...g_(t.deps))}return i}function zc(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function N_(t,n){for(const e of t)Array.isArray(e)?N_(e,n):e&&h_(e)?N_(e.\u0275providers,n):n(e)}function Ha(t,n){t instanceof jc&&t.assertNotDestroyed();const i=ja(t),o=yo(void 0);try{return n()}finally{ja(i),yo(o)}}class H3{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function $x(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function fi(){return Gx}function Gx(t){return t.type.prototype.ngOnChanges&&(t.setInput=$3),U3}function U3(){const t=Wx(this),n=t?.current;if(n){const e=t.previous;if(e===kr)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function $3(t,n,e,i,o){const r=this.declaredInputs[i],a=Wx(t)||function G3(t,n){return t[qx]=n}(t,{previous:kr,current:null}),s=a.current||(a.current={}),c=a.previous,u=c[r];s[r]=new H3(u&&u.currentValue,e,c===kr),$x(t,n,o,e)}fi.ngInherit=!0;const qx="__ngSimpleChanges__";function Wx(t){return t[qx]||null}const Er=function(t,n,e){};function im(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[Dc]+=65536),(s>14>16&&(3&t[lt])===n&&(t[lt]+=16384,Zx(s,r)):Zx(s,r)}const Uc=-1;class Id{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function z_(t){return t!==Uc}function Ed(t){return 32767&t}function Od(t,n){let e=function J3(t){return t>>16}(t),i=n;for(;e>0;)i=i[xc],e--;return i}let H_=!0;function rm(t){const n=H_;return H_=t,n}const Yx=255,Qx=5;let eL=0;const Or={};function am(t,n){const e=Xx(t,n);if(-1!==e)return e;const i=n[He];i.firstCreatePass&&(t.injectorIndex=n.length,U_(i.data,t),U_(n,null),U_(i.blueprint,null));const o=sm(t,n),r=t.injectorIndex;if(z_(o)){const a=Ed(o),s=Od(o,n),c=s[He].data;for(let u=0;u<8;u++)n[r+u]=s[a+u]|c[a+u]}return n[r+8]=o,r}function U_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function Xx(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function sm(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=a1(o),null===i)return Uc;if(e++,o=o[xc],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Uc}function $_(t,n,e){!function tL(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(ud)&&(i=e[ud]),null==i&&(i=e[ud]=eL++);const o=i&Yx;n.data[t+(o>>Qx)]|=1<=0?n&Yx:rL:n}(e);if("function"==typeof r){if(!dx(n,t,i))return i&$t.Host?Jx(o,0,i):e1(n,e,i,o);try{let a;if(a=r(i),null!=a||i&$t.Optional)return a;m_()}finally{px()}}else if("number"==typeof r){let a=null,s=Xx(t,n),c=Uc,u=i&$t.Host?n[Gi][$n]:null;for((-1===s||i&$t.SkipSelf)&&(c=-1===s?sm(t,n):n[s+8],c!==Uc&&r1(i,!1)?(a=n[He],s=Ed(c),n=Od(c,n)):s=-1);-1!==s;){const p=n[He];if(o1(r,s,p.data)){const g=nL(s,n,e,a,i,u);if(g!==Or)return g}c=n[s+8],c!==Uc&&r1(i,n[He].data[s+8]===u)&&o1(r,s,n)?(a=p,s=Ed(c),n=Od(c,n)):s=-1}}return o}function nL(t,n,e,i,o,r){const a=n[He],s=a.data[t+8],p=cm(s,a,e,null==i?ks(s)&&H_:i!=a&&0!=(3&s.type),o&$t.Host&&r===s);return null!==p?As(n,a,p,s):Or}function cm(t,n,e,i,o){const r=t.providerIndexes,a=n.data,s=1048575&r,c=t.directiveStart,p=r>>20,b=o?s+p:t.directiveEnd;for(let w=i?s:s+p;w=c&&k.type===e)return w}if(o){const w=a[c];if(w&&hr(w)&&w.type===e)return c}return null}function As(t,n,e,i){let o=t[e];const r=n.data;if(function Z3(t){return t instanceof Id}(o)){const a=o;a.resolving&&function n3(t,n){throw n&&n.join(" > "),new ue(-200,t)}(function ri(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():At(t)}(r[e]));const s=rm(a.canSeeViewProviders);a.resolving=!0;const u=a.injectImpl?yo(a.injectImpl):null;dx(t,i,$t.Default);try{o=t[e]=a.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function W3(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const a=Gx(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==u&&yo(u),rm(s),a.resolving=!1,px()}}return o}function o1(t,n,e){return!!(e[n+(t>>Qx)]&1<{const n=t.prototype.constructor,e=n[Jr]||G_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[Jr]||G_(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function G_(t){return Hh(t)?()=>{const n=G_(wt(t));return n&&n()}:Is(t)}function a1(t){const n=t[He],e=n.type;return 2===e?n.declTNode:1===e?t[$n]:null}function oo(t){return function iL(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{static#e=this.THROW_IF_NOT_FOUND=xd;static#t=this.NULL=new Yh;static create(e,i){if(Array.isArray(e))return u1({name:""},i,e,"");{const o=e.name??"";return u1({name:o},e.parent,e.providers,o)}}static#i=this.\u0275prov=ke({token:t,providedIn:"any",factory:()=>X(Lx)});static#n=this.__NG_ELEMENT_ID__=-1}return t})();function W_(t){return t.ngOriginalError}class Go{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&W_(n);for(;e&&W_(e);)e=W_(e);return e||null}}const p1=new se("",{providedIn:"root",factory:()=>De(Go).handleError.bind(void 0)}),g1=new se("",{providedIn:"root",factory:()=>!1});let um,hm;function qc(t){return function K_(){if(void 0===um&&(um=null,di.trustedTypes))try{um=di.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return um}()?.createHTML(t)||t}function Z_(){if(void 0===hm&&(hm=null,di.trustedTypes))try{hm=di.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hm}function _1(t){return Z_()?.createHTML(t)||t}function v1(t){return Z_()?.createScriptURL(t)||t}class Ps{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Aw})`}}class gL extends Ps{getTypeName(){return"HTML"}}class _L extends Ps{getTypeName(){return"Style"}}class bL extends Ps{getTypeName(){return"Script"}}class vL extends Ps{getTypeName(){return"URL"}}class yL extends Ps{getTypeName(){return"ResourceURL"}}function Po(t){return t instanceof Ps?t.changingThisBreaksApplicationSecurity:t}function Ar(t,n){const e=function CL(t){return t instanceof Ps&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${Aw})`)}return e===n}class ML{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(qc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=qc(n),e}}const EL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function mm(t){return(t=String(t)).match(EL)?t:"unsafe:"+t}function aa(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Ad(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const C1=aa("area,br,col,hr,img,wbr"),w1=aa("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x1=aa("rp,rt"),Y_=Ad(C1,Ad(w1,aa("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ad(x1,aa("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ad(x1,w1)),Q_=aa("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),D1=Ad(Q_,aa("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),aa("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),OL=aa("script,style,template");class AL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!Y_.hasOwnProperty(e))return this.sanitizedSomething=!0,!OL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();Y_.hasOwnProperty(e)&&!C1.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(S1(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const PL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,RL=/([^\#-~ |!])/g;function S1(t){return t.replace(/&/g,"&").replace(PL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(RL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pm;function k1(t,n){let e=null;try{pm=pm||function y1(t){const n=new TL(t);return function IL(){try{return!!(new window.DOMParser).parseFromString(qc(""),"text/html")}catch{return!1}}()?new ML(n):n}(t);let i=n?String(n):"";e=pm.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=pm.getInertBodyElement(i)}while(i!==r);return qc((new AL).sanitizeChildren(X_(e)||e))}finally{if(e){const i=X_(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function X_(t){return"content"in t&&function NL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Bn=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Bn||{});function M1(t){const n=Pd();return n?_1(n.sanitize(Bn.HTML,t)||""):Ar(t,"HTML")?_1(Po(t)):k1(Va(),At(t))}function qo(t){const n=Pd();return n?n.sanitize(Bn.URL,t)||"":Ar(t,"URL")?Po(t):mm(At(t))}function T1(t){const n=Pd();if(n)return v1(n.sanitize(Bn.RESOURCE_URL,t)||"");if(Ar(t,"ResourceURL"))return v1(Po(t));throw new ue(904,!1)}function Pd(){const t=be();return t&&t[ea].sanitizer}const zL=/^>|^->||--!>|)/g,UL="\u200b$1\u200b";const J_=new Map;let KL=0;const tb="__ngContext__";function Zn(t,n){qn(n)?(t[tb]=n[fd],function YL(t){J_.set(t[fd],t)}(n)):t[tb]=n}function Ro(t){return t instanceof Function?t():t}var $a=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}($a||{});let rb;function ab(t,n){return rb(t,n)}function Kc(t,n,e,i,o){if(null!=i){let r,a=!1;Wn(i)?r=i:qn(i)&&(a=!0,i=i[Vi]);const s=bi(i);0===t&&null!==e?null==o?K1(n,e,s):Rs(n,e,s,o||null,!0):1===t&&null!==e?Rs(n,e,s,o||null,!0):2===t?function wm(t,n,e){const i=ym(t,n);i&&function v4(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,s,a):3===t&&n.destroyNode(s),null!=r&&function w4(t,n,e,i,o){const r=e[Mr];r!==bi(e)&&Kc(n,t,i,r,o);for(let s=en;sn.replace(HL,UL))}(n))}function bm(t,n,e){return t.createElement(n,e)}function G1(t,n){xm(t,n,n[Et],2,null,null)}function q1(t,n){const e=t[Sc],i=e.indexOf(n);e.splice(i,1)}function Nd(t,n){if(t.length<=en)return;const e=en+n,i=t[e];if(i){const o=i[pd];null!==o&&o!==t&&q1(o,i),n>0&&(t[e-1][dr]=i[dr]);const r=Nh(t,en+n);!function h4(t,n){G1(t,n),n[Vi]=null,n[$n]=null}(i[He],i);const a=r[ta];null!==a&&a.detachView(r[He]),i[Ji]=null,i[dr]=null,i[lt]&=-129}return i}function vm(t,n){if(!(256&n[lt])){const e=n[Et];e.destroyNode&&xm(t,n,e,3,null,null),function p4(t){let n=t[md];if(!n)return cb(t[He],t);for(;n;){let e=null;if(qn(n))e=n[md];else{const i=n[en];i&&(e=i)}if(!e){for(;n&&!n[dr]&&n!==t;)qn(n)&&cb(n[He],n),n=n[Ji];null===n&&(n=t),qn(n)&&cb(n[He],n),e=n&&n[dr]}n=e}}(n)}}function cb(t,n){if(!(256&n[lt])){n[lt]&=-129,n[lt]|=256,n[Ss]&&function ye(t){if(Ce(t),H(t))for(let n=0;n=0?i[a]():i[-a].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[wc]=null);const o=n[La];if(null!==o){n[La]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===cr.None||r===cr.Emulated)return null}return io(i,e)}}(t,n.parent,e)}function Rs(t,n,e,i,o){t.insertBefore(n,e,i,o)}function K1(t,n,e){t.appendChild(n,e)}function Z1(t,n,e,i,o){null!==i?Rs(t,n,e,i,o):K1(t,n,e)}function ym(t,n){return t.parentNode(n)}function Y1(t,n,e){return X1(t,n,e)}let db,X1=function Q1(t,n,e){return 40&t.type?io(t,e):null};function Cm(t,n,e,i){const o=lb(t,i,n),r=n[Et],s=Y1(i.parent||n[$n],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cOt&&rD(t,n,Ot,!1),Er(a?2:0,o),e(i,o)}finally{Ts(r),Er(a?3:1,o)}}function pb(t,n,e){if(zg(n)){const i=V(null);try{const r=n.directiveEnd;for(let a=n.directiveStart;anull;function dD(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const a=n[r];if(void 0===a)continue;i??={};let s,c=ge.None;Array.isArray(a)?(s=a[0],c=a[1]):s=a;let u=r;if(null!==o){if(!o.hasOwnProperty(r))continue;u=o[r]}0===t?uD(i,e,u,s,c):uD(i,e,u,s)}return i}function uD(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function wo(t,n,e,i,o,r,a,s){const c=io(n,e);let p,u=n.inputs;!s&&null!=u&&(p=u[i])?(wb(t,e,p,i,o),ks(n)&&function N4(t,n){const e=Eo(n,t);16&e[lt]||(e[lt]|=64)}(e,n.index)):3&n.type&&(i=function R4(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,r.setProperty(c,i,o))}function bb(t,n,e,i){if(rx()){const o=null===i?null:{"":-1},r=function z4(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=s&&a.push(s),a.push(e,i,r)}}(t,n,i,Ld(t,e,o.hostVars,Nt),o)}function Rr(t,n,e,i,o,r){const a=io(t,n);!function yb(t,n,e,i,o,r,a){if(null==r)t.removeAttribute(n,o,e);else{const s=null==a?At(r):a(r,i||"",o);t.setAttribute(n,o,s,e)}}(n[Et],a,r,t.value,e,i,o)}function W4(t,n,e,i,o,r){const a=r[n];if(null!==a)for(let s=0;s0&&(e[o-1][dr]=n),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{vd(t.lView)},consumerOnSignalRead(){this.lView[Ss]=this}};function wD(t){return DD(t[md])}function xD(t){return DD(t[dr])}function DD(t){for(;null!==t&&!Wn(t);)t=t[dr];return t}function Mm(t,n=!0,e=0){const i=t[ea],o=i.rendererFactory;o.begin?.();try{!function r5(t,n){Sb(t,n);let e=0;for(;Wg(t);){if(100===e)throw new ue(103,!1);e++,Sb(t,1)}}(t,e)}catch(a){throw n&&km(t,a),a}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function a5(t,n,e,i){const o=n[lt];if(256==(256&o))return;n[ea].inlineEffectRunner?.flush(),t_(n);let a=null,s=null;(function s5(t){return 2!==t.type})(t)&&(s=function X4(t){return t[Ss]??function J4(t){const n=CD.pop()??Object.create(t5);return n.lView=t,n}(t)}(n),a=function Te(t){return t&&(t.nextProducerIndex=0),V(t)}(s));try{ix(n),function cx(t){return Dt.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&sD(t,n,e,2,i);const c=3==(3&o);if(c){const g=t.preOrderCheckHooks;null!==g&&nm(n,g,null)}else{const g=t.preOrderHooks;null!==g&&om(n,g,0,null),V_(n,0)}if(function c5(t){for(let n=wD(t);null!==n;n=xD(n)){if(!(n[lt]&jg.HasTransplantedViews))continue;const e=n[Sc];for(let i=0;it.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}(s,a),function e5(t){t.lView[Ss]!==t&&(t.lView=null,CD.push(t))}(s)),i_()}}function kD(t,n){for(let e=wD(t);null!==e;e=xD(e))for(let i=en;i-1&&(Nd(n,i),Nh(e,i))}this._attachedToViewContainer=!1}vm(this._lView[He],this._lView)}onDestroy(n){Ah(this._lView,n)}markForCheck(){zd(this._cdRefInjectingView||this._lView)}detach(){this._lView[lt]&=-129}reattach(){Kg(this._lView),this._lView[lt]|=128}detectChanges(){this._lView[lt]|=1024,Mm(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ue(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,G1(this._lView[He],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new ue(902,!1);this._appRef=n,Kg(this._lView)}}let gi=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=h5}return t})();const d5=gi,u5=class extends d5{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=function Bd(t,n,e,i){const o=n.tView,s=Dm(t,o,e,4096&t[lt]?4096:16,null,n,null,null,null,i?.injector??null,i?.dehydratedView??null);s[pd]=t[n.index];const u=t[ta];return null!==u&&(s[ta]=u.createEmbeddedView(o)),xb(o,s,e),s}(this._declarationLView,this._declarationTContainer,n,{injector:e,dehydratedView:i});return new Hd(o)}};function h5(){return Tm(pi(),be())}function Tm(t,n){return 4&t.type?new u5(n,t,Tc(t,n)):null}class Ob{}class R5{}class ND{}class F5{resolveComponentFactory(n){throw function N5(t){const n=Error(`No component factory found for ${yn(t)}.`);return n.ngComponent=t,n}(n)}}let Ns=(()=>{class t{static#e=this.NULL=new F5}return t})();class Ab{}let ca=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function L5(){const t=be(),e=Eo(pi().index,t);return(qn(e)?e:t)[Et]}()}return t})(),B5=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>null})}return t})();const Pb={};function BD(t){return function LD(t){return"function"==typeof t&&void 0!==t[W]}(t)&&"function"==typeof t.set}function VD(t){const n=V(null);try{return t()}finally{V(n)}}function Pm(t){return!!Rb(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Rb(t){return null!==t&&("function"==typeof t||"object"==typeof t)}class jD{constructor(){}supports(n){return Pm(n)}create(n){return new $5(n)}}const U5=(t,n)=>n;class $5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||U5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,s),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,s,a,o)),Object.is(e.item,s)||this._addIdentityChange(e,s)):(e=this._mismatch(e,s,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new G5(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new zD),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new zD),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class G5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class q5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class zD{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new q5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function HD(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,a=o._next;return r&&(r._next=a),a&&(a._prev=r),o._next=null,o._prev=null,o}const i=new K5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class K5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function $D(){return new fr([new jD])}let fr=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:$D});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||$D()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new ue(901,!1)}}return t})();function GD(){return new Rm([new UD])}let Rm=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:GD});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||GD()),deps:[[t,new Vc,new za]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new ue(901,!1)}}return t})(),Lt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=Y5}return t})();function Y5(t){return function Q5(t,n,e){if(ks(t)&&!e){const i=Eo(t.index,n);return new Hd(i,i)}return 47&t.type?new Hd(n[Gi],n):null}(pi(),be(),16==(16&t))}let Nm=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=t8;static#t=this.__NG_ENV_ID__=e=>e}return t})();class e8 extends Nm{constructor(n){super(),this._lView=n}onDestroy(n){return Ah(this._lView,n),()=>function Zg(t,n){if(null===t[La])return;const e=t[La].indexOf(n);-1!==e&&t[La].splice(e,1)}(this._lView,n)}}function t8(){return new e8(be())}const qD=new Set;function Fs(t){qD.has(t)||(qD.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function WD(...t){}class We{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new ue(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function s8(){const t="function"==typeof di.requestAnimationFrame;let n=di[t?"requestAnimationFrame":"setTimeout"],e=di[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&e){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const o=e[Zone.__symbol__("OriginalDelegate")];o&&(e=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function d8(t){const n=()=>{!function l8(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(di,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Fb(t),t.isCheckStableRunning=!0,Nb(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Fb(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,a,s)=>{if(function u8(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(s))return e.invokeTask(o,r,a,s);try{return KD(t),e.invokeTask(o,r,a,s)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),ZD(t)}},onInvoke:(e,i,o,r,a,s,c)=>{try{return KD(t),e.invoke(o,r,a,s,c)}finally{t.shouldCoalesceRunChangeDetection&&n(),ZD(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,Fb(t),Nb(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!We.isInAngularZone())throw new ue(909,!1)}static assertNotInAngularZone(){if(We.isInAngularZone())throw new ue(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,a=r.scheduleEventTask("NgZoneEvent: "+o,n,c8,WD,WD);try{return r.runTask(a,e,i)}finally{r.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const c8={};function Nb(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Fb(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function KD(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function ZD(t){t._nesting--,Nb(t)}class YD{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ne,this.onMicrotaskEmpty=new Ne,this.onStable=new Ne,this.onError=new Ne}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}var Ls=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(Ls||{});const QD={destroy(){}};function JD(t,n){!n&&function F_(t){if(!Mx()&&!function c3(){return Oc}())throw new ue(-203,!1)}();const e=n?.injector??De(ji);if(!function Ua(t){return"browser"===(t??De(ji)).get(ra)}(e))return QD;Fs("NgAfterNextRender");const i=e.get(Wd),o=i.handler??=new tS,r=n?.phase??Ls.MixedReadWrite,a=()=>{o.unregister(c),s()},s=e.get(Nm).onDestroy(a),c=new eS(e,r,()=>{a(),t()});return o.register(c),{destroy:a}}class eS{constructor(n,e,i){this.phase=e,this.callbackFn=i,this.zone=n.get(We),this.errorHandler=n.get(Go,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class tS{constructor(){this.executingCallbacks=!1,this.buckets={[Ls.EarlyRead]:new Set,[Ls.Write]:new Set,[Ls.MixedReadWrite]:new Set,[Ls.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Wd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i();this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>new t})}return t})();function Lm(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let a=0;a0&&nD(t,e,r.join(" "))}}(b,ft,k,i),void 0!==e&&function D8(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=k8}return t})();function k8(){return cS(pi(),be())}const M8=vi,aS=class extends M8{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Tc(this._hostTNode,this._hostLView)}get injector(){return new xn(this._hostTNode,this._hostLView)}get parentInjector(){const n=sm(this._hostTNode,this._hostLView);if(z_(n)){const e=Od(n,this._hostLView),i=Ed(n);return new xn(e[He].data[i+8],e)}return new xn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=sS(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-en}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=n.createEmbeddedViewImpl(e||{},r,null);return this.insertImpl(s,o,Yc(this._hostTNode,null)),s}createComponent(n,e,i,o,r){const a=n&&!function Td(t){return"function"==typeof t}(n);let s;if(a)s=e;else{const k=e||{};s=k.index,i=k.injector,o=k.projectableNodes,r=k.environmentInjector||k.ngModuleRef}const c=a?n:new Yd(Ht(n)),u=i||this.parentInjector;if(!r&&null==c.ngModule){const T=(a?u:this.parentInjector).get(Ao,null);T&&(r=T)}Ht(c.componentType??{});const w=c.create(u,o,null,r);return this.insertImpl(w.hostView,s,Yc(this._hostTNode,null)),w}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function DF(t){return Wn(t[Ji])}(o)){const s=this.indexOf(n);if(-1!==s)this.detach(s);else{const c=o[Ji],u=new aS(c,c[$n],c[Ji]);u.detach(u.indexOf(n))}}const r=this._adjustIndex(e),a=this._lContainer;return Vd(a,o,r,i),n.attachToViewContainerRef(),bx(Vb(a),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=sS(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);i&&(Nh(Vb(this._lContainer),e),vm(i[He],i))}detach(n){const e=this._adjustIndex(n,-1),i=Nd(this._lContainer,e);return i&&null!=Nh(Vb(this._lContainer),e)?new Hd(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function sS(t){return t[8]}function Vb(t){return t[8]||(t[8]=[])}function cS(t,n){let e;const i=n[t.index];return Wn(i)?e=i:(e=pD(i,n,null,t),n[t.index]=e,Sm(n,e)),lS(e,n,t,i),new aS(e,t,n)}let lS=function uS(t,n,e,i){if(t[Mr])return;let o;o=8&e.type?bi(i):function T8(t,n){const e=t[Et],i=e.createComment(""),o=io(n,t);return Rs(e,ym(e,o),i,function y4(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[Mr]=o},jb=()=>!1;class zb{constructor(n){this.queryList=n,this.matches=null}clone(){return new zb(this.queryList)}setDirty(){this.queryList.setDirty()}}class Hb{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Ub{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(a[s/2]);else{const u=r[s+1],p=n[-c];for(let g=en;g=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=hd(o.hostAttrs,e=hd(e,o.hostAttrs))}}(i)}function W8(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function Vm(t){return t===kr?{}:t===Jt?[]:t}function Z8(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function Y8(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function Q8(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function PS(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class Bs{}class RS{}class Zb extends Bs{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new oS(this);const o=Un(n);this._bootstrapComponents=Ro(o.bootstrap),this._r3Injector=h1(n,e,[{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver},...i],yn(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Yb extends RS{constructor(n){super(),this.moduleType=n}create(n){return new Zb(this.moduleType,n,[])}}class NS extends Bs{constructor(n){super(),this.componentFactoryResolver=new oS(this),this.instance=null;const e=new jc([...n.providers,{provide:Bs,useValue:this},{provide:Ns,useValue:this.componentFactoryResolver}],n.parent||em(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Qb(t,n,e=null){return new NS({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let Vs=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new pt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Nr(t,n,e){return t[n]=e}function Xd(t,n){return t[n]}function tn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function js(t,n,e,i){const o=tn(t,n,e);return tn(t,n+1,i)||o}function zm(t,n,e,i,o){const r=js(t,n,e,i);return tn(t,n+2,o)||r}function Wo(t,n,e,i,o,r){const a=js(t,n,e,i);return js(t,n+2,o,r)||a}function y(t,n,e,i,o,r,a,s){const c=be(),u=Gt(),p=t+Ot,g=u.firstCreatePass?function aB(t,n,e,i,o,r,a,s,c){const u=n.consts,p=Zc(n,t,4,a||null,Tr(u,s));bb(n,e,p,Tr(u,c)),im(n,p);const g=p.tView=_b(2,p,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,u,null);return null!==n.queries&&(n.queries.template(n,p),g.queries=n.queries.embeddedTView(p)),p}(p,u,c,n,e,i,o,r,a):u.data[p];Ir(g,!1);const b=FS(u,c,g,t);Rh()&&Cm(u,c,b,g),Zn(b,c);const w=pD(b,c,b,g);return c[p]=w,Sm(c,w),function dS(t,n,e){return jb(t,n,e)}(w,g,c),Oh(g)&&fb(u,c,g),null!=a&&gb(c,g,s),y}let FS=function LS(t,n,e,i){return Ba(!0),n[Et].createComment("")};function Xe(t,n,e,i){const o=be();return tn(o,mr(),n)&&(Gt(),Rr(Ei(),o,t,n,e,i)),Xe}function al(t,n,e,i){return tn(t,mr(),e)?n+At(e)+i:Nt}function Wm(t,n){return t<<17|n<<2}function Ka(t){return t>>17&32767}function sv(t){return 2|t}function Hs(t){return(131068&t)>>2}function cv(t,n){return-131069&t|n<<2}function lv(t){return 1|t}function pk(t,n,e,i){const o=t[e+1],r=null===n;let a=i?Ka(o):Hs(o),s=!1;for(;0!==a&&(!1===s||r);){const u=t[a+1];$B(t[a],n)&&(s=!0,t[a+1]=i?lv(u):sv(u)),a=i?Ka(u):Hs(u)}s&&(t[e+1]=i?sv(o):lv(o))}function $B(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Ec(t,n)>=0}const Dn={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function fk(t){return t.substring(Dn.key,Dn.keyEnd)}function gk(t,n){const e=Dn.textEnd;return e===n?-1:(n=Dn.keyEnd=function KB(t,n,e){for(;n32;)n++;return n}(t,Dn.key=n,e),pl(t,n,e))}function pl(t,n,e){for(;n=0;e=gk(n,e))Oo(t,fk(n),!0)}function gr(t,n,e,i){const o=be(),r=Gt(),a=na(2);r.firstUpdatePass&&wk(r,t,a,i),n!==Nt&&tn(o,a,n)&&Dk(r,r.data[Kn()],o,o[Et],t,o[a+1]=function a6(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=yn(Po(t)))),t}(n,e),i,a)}function Ck(t,n){return n>=t.expandoStartIndex}function wk(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Kn()],a=Ck(t,e);kk(r,i)&&null===n&&!a&&(n=!1),n=function JB(t,n,e,i){const o=Jg(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=iu(e=uv(null,t,n,e,i),n.attrs,i),r=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=uv(o,t,n,e,i),null===r){let c=function e6(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Hs(i))return t[Ka(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=uv(null,t,n,c[1],i),c=iu(c,n.attrs,i),function t6(t,n,e,i){t[Ka(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function i6(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(u=!0)):p=e,o)if(0!==c){const b=Ka(t[s+1]);t[i+1]=Wm(b,s),0!==b&&(t[b+1]=cv(t[b+1],i)),t[s+1]=function jB(t,n){return 131071&t|n<<17}(t[s+1],i)}else t[i+1]=Wm(s,0),0!==s&&(t[s+1]=cv(t[s+1],i)),s=i;else t[i+1]=Wm(c,0),0===s?s=i:t[c+1]=cv(t[c+1],i),c=i;u&&(t[i+1]=sv(t[i+1])),pk(t,p,i,!0),pk(t,p,i,!1),function UB(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&Ec(r,n)>=0&&(e[i+1]=lv(e[i+1]))}(n,p,t,i,r),a=Wm(s,c),r?n.classBindings=a:n.styleBindings=a}(o,r,n,e,a,i)}}function uv(t,n,e,i,o){let r=null;const a=e.directiveEnd;let s=e.directiveStylingLast;for(-1===s?s=e.directiveStart:s++;s0;){const c=t[o],u=Array.isArray(c),p=u?c[1]:c,g=null===p;let b=e[o+1];b===Nt&&(b=g?Jt:void 0);let w=g?o_(b,i):p===i?b:void 0;if(u&&!Km(w)&&(w=o_(c,i)),Km(w)&&(s=w,a))return s;const k=t[o+1];o=a?Ka(k):Hs(k)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(s=o_(c,i))}return s}function Km(t){return void 0!==t}function kk(t,n){return 0!=(t.flags&(n?8:16))}function Mk(t,n,e){!function _r(t,n,e,i){const o=Gt(),r=na(2);o.firstUpdatePass&&wk(o,null,r,i);const a=be();if(e!==Nt&&tn(a,r,e)){const s=o.data[Kn()];if(kk(s,i)&&!Ck(o,r)){let c=i?s.classesWithoutHost:s.stylesWithoutHost;null!==c&&(e=Ng(c,e||"")),dv(o,s,a,e,i)}else!function r6(t,n,e,i,o,r,a,s){o===Nt&&(o=Jt);let c=0,u=0,p=0(Ba(!0),bm(i,o,function fx(){return Dt.lFrame.currentNamespace}()));function me(t,n,e){const i=be(),o=Gt(),r=t+Ot,a=o.firstCreatePass?function O6(t,n,e,i,o){const r=n.consts,a=Tr(r,i),s=Zc(n,t,8,"ng-container",a);return null!==a&&Lm(s,a,!0),bb(n,e,s,Tr(r,o)),null!==n.queries&&n.queries.elementStart(n,s),s}(r,o,i,n,e):o.data[r];Ir(a,!0);const s=Ak(o,i,a,t);return i[r]=s,Rh()&&Cm(o,i,s,a),Zn(s,i),Oh(a)&&(fb(o,i,a),pb(o,a,i)),null!=e&&gb(i,a),me}function pe(){let t=pi();const n=Gt();return Yg()?Qg():(t=t.parent,Ir(t,!1)),n.firstCreatePass&&(im(n,t),zg(t)&&n.queries.elementEnd(t)),pe}function ro(t,n,e){return me(t,n,e),pe(),ro}let Ak=(t,n,e,i)=>(Ba(!0),sb(n[Et],""));function _e(){return be()}function ao(t,n,e){const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!0),ao}function Zm(t,n,e){const i=be();if(tn(i,mr(),n)){const r=Gt(),a=Ei();wo(r,a,i,t,n,bD(Jg(r.data),a,i),e,!0)}return Zm}const gl="en-US";let Nk=gl;function A(t,n,e,i){const o=be(),r=Gt(),a=pi();return bv(r,o,o[Et],a,t,n,i),A}function ep(t,n){const e=pi(),i=be(),o=Gt();return bv(o,i,bD(Jg(o.data),e,i),e,t,n),ep}function bv(t,n,e,i,o,r,a){const s=Oh(i),u=t.firstCreatePass&&_D(t),p=n[Ii],g=gD(n);let b=!0;if(3&i.type||a){const T=io(i,n),z=a?a(T):T,re=g.length,ae=a?tt=>a(bi(tt[i.index])):i.index;let Ue=null;if(!a&&s&&(Ue=function EV(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?s[c]:null}"string"==typeof a&&(r+=2)}return null}(t,n,o,i.index)),null!==Ue)(Ue.__ngLastListenerFn__||Ue).__ngNextListenerFn__=r,Ue.__ngLastListenerFn__=r,b=!1;else{r=sM(i,n,p,r,!1);const tt=e.listen(z,o,r);g.push(r,tt),u&&u.push(o,ae,re,re+1)}}else r=sM(i,n,p,r,!1);const w=i.outputs;let k;if(b&&null!==w&&(k=w[o])){const T=k.length;if(T)for(let z=0;z-1?Eo(t.index,n):n);let c=aM(n,e,i,a),u=r.__ngNextListenerFn__;for(;u;)c=aM(n,e,u,a)&&c,u=u.__ngNextListenerFn__;return o&&!1===c&&a.preventDefault(),c}}function C(t=1){return function VF(t){return(Dt.lFrame.contextLView=function nx(t,n){for(;t>0;)n=n[xc],t--;return n}(t,Dt.lFrame.contextLView))[Ii]}(t)}function OV(t,n){let e=null;const i=function sF(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(Ba(!0),function _m(t,n){return t.createText(n)}(n[Et],i));function Pe(t){return xe("",t,""),Pe}function xe(t,n,e){const i=be(),o=al(i,t,n,e);return o!==Nt&&sa(i,Kn(),o),xe}function _l(t,n,e,i,o){const r=be(),a=function sl(t,n,e,i,o,r){const s=js(t,ia(),e,o);return na(2),s?n+At(e)+i+At(o)+r:Nt}(r,t,n,e,i,o);return a!==Nt&&sa(r,Kn(),a),_l}function Cv(t,n,e,i,o,r,a){const s=be(),c=function cl(t,n,e,i,o,r,a,s){const u=zm(t,ia(),e,o,a);return na(3),u?n+At(e)+i+At(o)+r+At(a)+s:Nt}(s,t,n,e,i,o,r,a);return c!==Nt&&sa(s,Kn(),c),Cv}function wv(t,n,e,i,o,r,a,s,c){const u=be(),p=function ll(t,n,e,i,o,r,a,s,c,u){const g=Wo(t,ia(),e,o,a,c);return na(4),g?n+At(e)+i+At(o)+r+At(a)+s+At(c)+u:Nt}(u,t,n,e,i,o,r,a,s,c);return p!==Nt&&sa(u,Kn(),p),wv}function dn(t,n,e){BD(n)&&(n=n());const i=be();return tn(i,mr(),n)&&wo(Gt(),Ei(),i,t,n,i[Et],e,!1),dn}function kn(t,n){const e=BD(t);return e&&t.set(n),e}function un(t,n){const e=be(),i=Gt(),o=pi();return bv(i,e,e[Et],o,t,n),un}function xv(t,n,e,i,o){if(t=wt(t),Array.isArray(t))for(let r=0;r>20;if(Os(t)||!t.multi){const w=new Id(u,o,_),k=Sv(c,n,o?p:p+b,g);-1===k?($_(am(s,a),r,c),Dv(r,t,n.length),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(w),a.push(w)):(e[k]=w,a[k]=w)}else{const w=Sv(c,n,p+b,g),k=Sv(c,n,p,p+b),z=k>=0&&e[k];if(o&&!z||!o&&!(w>=0&&e[w])){$_(am(s,a),r,c);const re=function YV(t,n,e,i,o){const r=new Id(t,e,_);return r.multi=[],r.index=n,r.componentProviders=0,OM(r,o,i&&!e),r}(o?ZV:KV,e.length,o,i,u);!o&&z&&(e[k].providerFactory=re),Dv(r,t,n.length,0),n.push(c),s.directiveStart++,s.directiveEnd++,o&&(s.providerIndexes+=1048576),e.push(re),a.push(re)}else Dv(r,t,w>-1?w:k,OM(e[o?k:w],u,!o&&i));!o&&i&&z&&e[k].componentProviders++}}}function Dv(t,n,e,i){const o=Os(n),r=function k3(t){return!!t.useClass}(n);if(o||r){const c=(r?wt(n.useClass):n).prototype.ngOnDestroy;if(c){const u=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const p=u.indexOf(e);-1===p?u.push(e,[i,c]):u[p+1].push(i,c)}else u.push(e,c)}}}function OM(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function Sv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function WV(t,n,e){const i=Gt();if(i.firstCreatePass){const o=hr(t);xv(e,i.data,i.blueprint,o,!0),xv(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let QV=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Bx(0,e.type),o=i.length>0?Qb([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ke({token:t,providedIn:"environment",factory:()=>new t(X(Ao))})}return t})();function AM(t){Fs("NgStandalone"),t.getStandaloneInjector=n=>n.get(QV).getOrCreateStandaloneInjector(t)}function No(t,n,e){const i=no()+t,o=be();return o[i]===Nt?Nr(o,i,e?n.call(e):n()):Xd(o,i)}function hi(t,n,e,i){return GM(be(),no(),t,n,e,i)}function zM(t,n,e,i,o){return function qM(t,n,e,i,o,r,a){const s=n+e;return js(t,s,o,r)?Nr(t,s+2,a?i.call(a,o,r):i(o,r)):cu(t,s+2)}(be(),no(),t,n,e,i,o)}function HM(t,n,e,i,o,r){return function WM(t,n,e,i,o,r,a,s){const c=n+e;return zm(t,c,o,r,a)?Nr(t,c+3,s?i.call(s,o,r,a):i(o,r,a)):cu(t,c+3)}(be(),no(),t,n,e,i,o,r)}function cu(t,n){const e=t[n];return e===Nt?void 0:e}function GM(t,n,e,i,o,r){const a=n+e;return tn(t,a,o)?Nr(t,a+1,r?i.call(r,o):i(o)):cu(t,a+1)}function lu(t,n){const e=Gt();let i;const o=t+Ot;e.firstCreatePass?(i=function uj(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Is(i.type)),s=yo(_);try{const c=rm(!1),u=r();return rm(c),function NV(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,be(),o,u),u}finally{yo(s)}}function du(t,n,e){const i=t+Ot,o=be(),r=kc(o,i);return function uu(t,n){return t[He].data[n].pure}(o,i)?GM(o,no(),n,r.transform,e,r):r.transform(e)}function br(t,n){return Tm(t,n)}let uT=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const gT=new se(""),op=new se("");let Nv,Pv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Nv||(function cz(t){Nv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(Rv),X(op))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Rv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Nv?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function pu(t){return!!t&&"function"==typeof t.then}function _T(t){return!!t&&"function"==typeof t.subscribe}const Fv=new se("");let Lv=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=De(Fv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(pu(r))e.push(r);else if(_T(r)){const a=new Promise((s,c)=>{r.subscribe({complete:s,error:c})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Bv=new se("");function yT(t,n){return Array.isArray(n)?n.reduce(yT,t):{...t,...n}}let Za=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=De(p1),this.afterRenderEffectManager=De(Wd),this.componentTypes=[],this.components=[],this.isStable=De(Vs).hasPendingTasks.pipe(nt(e=>!e)),this._injector=De(Ao)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof ND;if(!this._injector.get(Lv).done)throw!o&&function Fa(t){const n=Ht(t)||Cn(t)||Ln(t);return null!==n&&n.standalone}(e),new ue(405,!1);let a;a=o?e:this._injector.get(Ns).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const s=function lz(t){return t.isBoundToModule}(a)?void 0:this._injector.get(Bs),u=a.create(ji.NULL,[],i||a.selector,s),p=u.location.nativeElement,g=u.injector.get(gT,null);return g?.registerApplication(p),u.onDestroy(()=>{this.detachView(u.hostView),rp(this.components,u),g?.unregisterApplication(p)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new ue(101,!1);try{this._runningTick=!0,this.detectChangesInAttachedViews()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}detectChangesInAttachedViews(){let e=0;do{if(100===e)throw new ue(103,!1);const i=0===e;for(let{_lView:o,notifyErrorHandler:r}of this._views)!i&&!CT(o)||this.detectChangesInView(o,r,i);this.afterRenderEffectManager.execute(),e++}while(this._views.some(({_lView:i})=>CT(i)))}detectChangesInView(e,i,o){let r;o?(r=0,e[lt]|=1024):r=64&e[lt]?0:1,Mm(e,i,r)}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;rp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Bv,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>rp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ue(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function rp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CT(t){return Wg(t)}class uz{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let wT=(()=>{class t{compileModuleSync(e){return new Yb(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Ro(Un(e).declarations).reduce((a,s)=>{const c=Ht(s);return c&&a.push(new Yd(c)),a},[]);return new uz(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pz=(()=>{class t{constructor(){this.zone=De(We),this.applicationRef=De(Za)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function fz(){const t=De(We),n=De(Go);return e=>t.runOutsideAngular(()=>n.handleError(e))}let _z=(()=>{class t{constructor(){this.subscription=new de,this.initialized=!1,this.zone=De(We),this.pendingTasks=De(Vs)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{We.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{We.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Br=new se("",{providedIn:"root",factory:()=>De(Br,$t.Optional|$t.SkipSelf)||function bz(){return typeof $localize<"u"&&$localize.locale||gl}()}),Vv=new se("");let kT=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function h8(t="zone.js",n){return"noop"===t?new YD:"zone.js"===t?new We(n):t}(i?.ngZone,function ST(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=function rB(t,n,e){return new Zb(t,n,e)}(e.moduleType,this.injector,function DT(t){return[{provide:We,useFactory:t},{provide:Es,multi:!0,useFactory:()=>{const n=De(pz,{optional:!0});return()=>n.initialize()}},{provide:Es,multi:!0,useFactory:()=>{const n=De(_z);return()=>{n.initialize()}}},{provide:p1,useFactory:fz}]}(()=>o)),a=r.injector.get(Go,null);return o.runOutsideAngular(()=>{const s=o.onError.subscribe({next:c=>{a.handleError(c)}});r.onDestroy(()=>{rp(this._modules,r),s.unsubscribe()})}),function vT(t,n,e){try{const i=e();return pu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const s=r.injector.get(Lv);return s.runInitializers(),s.donePromise.then(()=>(function Fk(t){"string"==typeof t&&(Nk=t.toLowerCase().replace(/_/g,"-"))}(r.injector.get(Br,gl)||gl),this._moduleDoBootstrap(r),r))})})}bootstrapModule(e,i=[]){const o=yT({},i);return function mz(t,n,e){const i=new Yb(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Za);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new ue(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ue(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Vv,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(X(ji))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),Ya=null;const MT=new se("");function TT(t,n,e=[]){const i=`Platform: ${n}`,o=new se(i);return(r=[])=>{let a=jv();if(!a||a.injector.get(MT,!1)){const s=[...e,...r,{provide:o,useValue:!0}];t?t(s):function Cz(t){if(Ya&&!Ya.get(MT,!1))throw new ue(400,!1);(function bT(){!function bt(t){fe=t}(()=>{throw new ue(600,!1)})})(),Ya=t;const n=t.get(kT);(function ET(t){t.get(Sx,null)?.forEach(e=>e())})(t)}(function IT(t=[],n){return ji.create({name:n,providers:[{provide:A_,useValue:"platform"},{provide:Vv,useValue:new Set([()=>Ya=null])},...t]})}(s,i))}return function wz(t){const n=jv();if(!n)throw new ue(401,!1);return n}()}}function jv(){return Ya?.get(kT)??null}const Mz=TT(null,"core",[]);let Tz=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(X(Za))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();function Cl(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let t2=null;function Qa(){return t2}class o7{}const ut=new se("");let Wv=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(a7),providedIn:"platform"})}return t})();const r7=new se("");let a7=(()=>{class t extends Wv{constructor(){super(),this._doc=De(ut),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qa().getBaseHref(this._doc)}onPopState(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Qa().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Kv(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function n2(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function la(t){return t&&"?"!==t[0]?"?"+t:t}let qs=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(r2),providedIn:"root"})}return t})();const o2=new se("");let r2=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??De(ut).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Kv(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+la(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){const a=this.prepareExternalUrl(o+la(r));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),s7=(()=>{class t extends qs{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Kv(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,r){let a=this.prepareExternalUrl(o+la(r));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Wv),X(o2,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Ws=(()=>{class t{constructor(e){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function d7(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(n2(a2(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+la(i))}normalize(e){return t.stripTrailingSlash(function l7(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,a2(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+la(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=la;static#t=this.joinWithSlash=Kv;static#i=this.stripTrailingSlash=n2;static#n=this.\u0275fac=function(i){return new(i||t)(X(qs))};static#o=this.\u0275prov=ke({token:t,factory:()=>function c7(){return new Ws(X(qs))}(),providedIn:"root"})}return t})();function a2(t){return t.replace(/\/index.html$/,"")}function f2(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}const oy=/\s+/,g2=[];let yr=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=g2,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(oy):g2}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(oy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(oy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngClass",""]],inputs:{klass:[ge.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class Z7{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let rn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new Z7(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===r?void 0:r);else if(null!==r){const s=i.get(r);i.move(s,a),b2(s,o)}});for(let o=0,r=i.length;o{b2(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function b2(t,n){t.context.$implicit=n.item}let It=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Y7,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){v2("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){v2("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Y7{constructor(){this.$implicit=null,this.ngIf=null}}function v2(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${yn(n)}'.`)}class ry{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let xl=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),Sp=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new ry(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),y2=(()=>{class t{constructor(e,i,o){o._addDefault(new ry(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(gi),_(xl,9))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),w2=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),a=-1===o.indexOf("-")?void 0:$a.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,a):this._renderer.removeStyle(this._ngEl.nativeElement,o,a)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Rm),_(ca))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),kp=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[fi]})}return t})();function Cr(t,n){return new ue(2100,!1)}class J7{createSubscription(n,e){return VD(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){VD(()=>n.unsubscribe())}}class e9{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const t9=new e9,i9=new J7;let x2=(()=>{class t{constructor(e){this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue:(e&&this._subscribe(e),this._latestValue)}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(pu(e))return t9;if(_T(e))return i9;throw Cr()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this._ref.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt,16))};static#t=this.\u0275pipe=bo({name:"async",type:t,pure:!1,standalone:!0})}return t})(),D2=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Cr();return e.toUpperCase()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=bo({name:"uppercase",type:t,pure:!0,standalone:!0})}return t})(),ay=(()=>{class t{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=S2}transform(e,i=S2){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const o=this.differ.diff(e),r=i!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(a=>{this.keyValues.push(function p9(t,n){return{key:t,value:n}}(a.key,a.currentValue))})),(o||r)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rm,16))};static#t=this.\u0275pipe=bo({name:"keyvalue",type:t,pure:!1,standalone:!0})}return t})();function S2(t,n){const e=t.key,i=n.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const k2="browser";function M2(t){return t===k2}function T2(t){return"server"===t}let C9=(()=>{class t{static#e=this.\u0275prov=ke({token:t,providedIn:"root",factory:()=>M2(De(ra))?new w9(De(ut),window):new D9})}return t})();class w9{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function x9(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const a=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class D9{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class I2{}class X9 extends o7{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class dy extends X9{static makeCurrent(){!function n7(t){t2??=t}(new dy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function J9(){return yu=yu||document.querySelector("base"),yu?yu.getAttribute("href"):null}();return null==e?null:function eH(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){yu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return f2(document.cookie,n)}}let yu=null,iH=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const uy=new se("");let B2=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new ue(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(uy),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class V2{constructor(n){this._doc=n}}const hy="ng-app-id";let j2=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=T2(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${hy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(hy),r;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(hy,this.appId),e.appendChild(a),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,a=r.get(i)?.elements;a?a.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(wd),X(s_,8),X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const my={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},py=/%COMP%/g,aH=new se("",{providedIn:"root",factory:()=>!0});function H2(t,n){return n.map(e=>e.replace(py,t))}let fy=(()=>{class t{constructor(e,i,o,r,a,s,c,u=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=a,this.platformId=s,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=T2(s),this.defaultRenderer=new gy(e,a,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===cr.ShadowDom&&(i={...i,encapsulation:cr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof $2?o.applyToHost(e):o instanceof _y&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const a=this.doc,s=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,p=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(i.encapsulation){case cr.Emulated:r=new $2(c,u,i,this.appId,p,a,s,g);break;case cr.ShadowDom:return new dH(c,u,e,i,a,s,this.nonce,g);default:r=new _y(c,u,i,p,a,s,g)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(X(B2),X(j2),X(wd),X(aH),X(ut),X(ra),X(We),X(s_))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class gy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(my[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(U2(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(U2(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new ue(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=my[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=my[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&($a.DashCase|$a.Important)?n.style.setProperty(e,i,o&$a.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&$a.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Qa().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function U2(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class dH extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=H2(o.id,o.styles);for(const p of u){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=p,this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class _y extends gy{constructor(n,e,i,o,r,a,s,c){super(n,r,a,s),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?H2(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class $2 extends _y{constructor(n,e,i,o,r,a,s,c){const u=o+"-"+i.id;super(n,e,i,r,a,s,c,u),this.contentAttr=function sH(t){return"_ngcontent-%COMP%".replace(py,t)}(u),this.hostAttr=function cH(t){return"_nghost-%COMP%".replace(py,t)}(u)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let uH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const G2=["alt","control","meta","shift"],hH={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},mH={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let pH=(()=>{class t extends V2{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),a=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qa().onAndCancel(e,r.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let a="",s=i.indexOf("code");if(s>-1&&(i.splice(s,1),a="code."),G2.forEach(u=>{const p=i.indexOf(u);p>-1&&(i.splice(p,1),a+=u+".")}),a+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=a,c}static matchEventFullKeyCode(e,i){let o=hH[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),G2.forEach(a=>{a!==o&&(0,mH[a])(e)&&(r+=a+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const bH=TT(Mz,"browser",[{provide:ra,useValue:k2},{provide:Sx,useValue:function fH(){dy.makeCurrent()},multi:!0},{provide:ut,useFactory:function _H(){return function qF(t){r_=t}(document),document},deps:[]}]),vH=new se(""),K2=[{provide:op,useClass:class tH{addToWindow(n){di.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new ue(5103,!1);return r},di.getAllAngularTestabilities=()=>n.getAllTestabilities(),di.getAllAngularRootElements=()=>n.getAllRootElements(),di.frameworkStabilizers||(di.frameworkStabilizers=[]),di.frameworkStabilizers.push(i=>{const o=di.getAllAngularTestabilities();let r=o.length;const a=function(){r--,0==r&&i()};o.forEach(s=>{s.whenStable(a)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Qa().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:gT,useClass:Pv,deps:[We,Rv,op]},{provide:Pv,useClass:Pv,deps:[We,Rv,op]}],Z2=[{provide:A_,useValue:"root"},{provide:Go,useFactory:function gH(){return new Go},deps:[]},{provide:uy,useClass:uH,multi:!0,deps:[ut,We,ra]},{provide:uy,useClass:pH,multi:!0,deps:[ut]},fy,j2,B2,{provide:Ab,useExisting:fy},{provide:I2,useClass:iH,deps:[]},[]];let Y2=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:wd,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(vH,12))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[...Z2,...K2],imports:[Vn,Tz]})}return t})(),yH=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),by=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:function(i){let o=null;return o=i?new(i||t):X(DH),o},providedIn:"root"})}return t})(),DH=(()=>{class t extends by{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Bn.NONE:return i;case Bn.HTML:return Ar(i,"HTML")?Po(i):k1(this._doc,String(i)).toString();case Bn.STYLE:return Ar(i,"Style")?Po(i):i;case Bn.SCRIPT:if(Ar(i,"Script"))return Po(i);throw new ue(5200,!1);case Bn.URL:return Ar(i,"URL")?Po(i):mm(String(i));case Bn.RESOURCE_URL:if(Ar(i,"ResourceURL"))return Po(i);throw new ue(5201,!1);default:throw new ue(5202,!1)}}bypassSecurityTrustHtml(e){return function wL(t){return new gL(t)}(e)}bypassSecurityTrustStyle(e){return function xL(t){return new _L(t)}(e)}bypassSecurityTrustScript(e){return function DL(t){return new bL(t)}(e)}bypassSecurityTrustUrl(e){return function SL(t){return new vL(t)}(e)}bypassSecurityTrustResourceUrl(e){return function kL(t){return new yL(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var St=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(St||{});const ha="*";function Lo(t,n){return{type:St.Trigger,name:t,definitions:n,options:{}}}function Yi(t,n=null){return{type:St.Animate,styles:n,timings:t}}function vy(t,n=null){return{type:St.Group,steps:t,options:n}}function Zt(t){return{type:St.Style,styles:t,offset:null}}function mn(t,n,e){return{type:St.State,name:t,styles:n,options:e}}function Qi(t,n,e=null){return{type:St.Transition,expr:t,animation:n,options:e}}function yy(t=null){return{type:St.AnimateChild,options:t}}function Cy(t,n,e=null){return{type:St.Query,selector:t,animation:n,options:e}}class wu{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eI{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==r&&this._onFinish()}),a.onDestroy(()=>{++i==r&&this._onDestroy()}),a.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((a,s)=>Math.max(a,s.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function tI(t){return new ue(3e3,!1)}function Xa(t){switch(t.length){case 0:return new wu;case 1:return t[0];default:return new eI(t)}}function iI(t,n,e=new Map,i=new Map){const o=[],r=[];let a=-1,s=null;if(n.forEach(c=>{const u=c.get("offset"),p=u==a,g=p&&s||new Map;c.forEach((b,w)=>{let k=w,T=b;if("offset"!==w)switch(k=t.normalizePropertyName(k,o),T){case"!":T=e.get(w);break;case ha:T=i.get(w);break;default:T=t.normalizeStyleValue(w,k,T,o)}g.set(k,T)}),p||r.push(g),s=g,a=u}),o.length)throw function XH(t){return new ue(3502,!1)}();return r}function xy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Dy(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Dy(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Dy(e,"destroy",t)))}}function Dy(t,n,e){const r=Sy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(r._data=a),r}function Sy(t,n,e,i,o="",r=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!a}}function Bo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function nI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const dU=typeof document>"u"?null:document.documentElement;function ky(t){const n=t.parentNode||t.host||null;return n===dU?null:n}let Ks=null,oI=!1;function rI(t,n){for(;n;){if(n===t)return!0;n=ky(n)}return!1}function aI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let My=(()=>{class t{validateStyleProperty(e){return function hU(t){Ks||(Ks=function mU(){return typeof document<"u"?document.body:null}()||{},oI=!!Ks.style&&"WebkitAppearance"in Ks.style);let n=!0;return Ks.style&&!function uU(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Ks.style,!n&&oI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Ks.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return rI(e,i)}getParentElement(e){return ky(e)}query(e,i,o){return aI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,a,s=[],c){return new wu(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();class Ty{static#e=this.NOOP=new My}class Iy{}const fU=1e3,Ey="ng-enter",Ip="ng-leave",Ep="ng-trigger",Op=".ng-trigger",cI="ng-animating",Oy=".ng-animating";function ma(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Ay(parseFloat(n[1]),n[2])}function Ay(t,n){return"s"===n?t*fU:t}function Ap(t,n,e){return t.hasOwnProperty("duration")?t:function _U(t,n,e){let o,r=0,a="";if("string"==typeof t){const s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return n.push(tI()),{duration:0,delay:0,easing:""};o=Ay(parseFloat(s[1]),s[2]);const c=s[3];null!=c&&(r=Ay(parseFloat(c),s[4]));const u=s[5];u&&(a=u)}else o=t;if(!e){let s=!1,c=n.length;o<0&&(n.push(function EH(){return new ue(3100,!1)}()),s=!0),r<0&&(n.push(function OH(){return new ue(3101,!1)}()),s=!0),s&&n.splice(c,0,tI())}return{duration:o,delay:r,easing:a}}(t,n,e)}function Vr(t,n,e){n.forEach((i,o)=>{const r=Ry(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function Zs(t,n){n.forEach((e,i)=>{const o=Ry(i);t.style[o]=""})}function xu(t){return Array.isArray(t)?1==t.length?t[0]:function SH(t,n=null){return{type:St.Sequence,steps:t,options:n}}(t):t}const Py=new RegExp("{{\\s*(.+?)\\s*}}","g");function dI(t){let n=[];if("string"==typeof t){let e;for(;e=Py.exec(t);)n.push(e[1]);Py.lastIndex=0}return n}function Du(t,n,e){const i=`${t}`,o=i.replace(Py,(r,a)=>{let s=n[a];return null==s&&(e.push(function PH(t){return new ue(3003,!1)}()),s=""),s.toString()});return o==i?t:o}const yU=/-+([a-z0-9])/g;function Ry(t){return t.replace(yU,(...n)=>n[1].toUpperCase())}function Vo(t,n,e){switch(n.type){case St.Trigger:return t.visitTrigger(n,e);case St.State:return t.visitState(n,e);case St.Transition:return t.visitTransition(n,e);case St.Sequence:return t.visitSequence(n,e);case St.Group:return t.visitGroup(n,e);case St.Animate:return t.visitAnimate(n,e);case St.Keyframes:return t.visitKeyframes(n,e);case St.Style:return t.visitStyle(n,e);case St.Reference:return t.visitReference(n,e);case St.AnimateChild:return t.visitAnimateChild(n,e);case St.AnimateRef:return t.visitAnimateRef(n,e);case St.Query:return t.visitQuery(n,e);case St.Stagger:return t.visitStagger(n,e);default:throw function RH(t){return new ue(3004,!1)}()}}function Ny(t,n){return window.getComputedStyle(t)[n]}const xU=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class uI extends Iy{normalizePropertyName(n,e){return Ry(n)}normalizeStyleValue(n,e,i,o){let r="";const a=i.toString().trim();if(xU.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const s=i.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&o.push(function NH(t,n){return new ue(3005,!1)}())}return a+r}}const Pp="*";const Rp=new Set(["true","1"]),Np=new Set(["false","0"]);function hI(t,n){const e=Rp.has(t)||Np.has(t),i=Rp.has(n)||Np.has(n);return(o,r)=>{let a=t==Pp||t==o,s=n==Pp||n==r;return!a&&e&&"boolean"==typeof o&&(a=o?Rp.has(t):Np.has(t)),!s&&i&&"boolean"==typeof r&&(s=r?Rp.has(n):Np.has(n)),a&&s}}const MU=new RegExp("s*:selfs*,?","g");function Fy(t,n,e,i){return new TU(t).build(n,e,i)}class TU{constructor(n){this._driver=n}build(n,e,i){const o=new OU(e);return this._resetContextStyleTimingState(o),Vo(this,xu(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function FH(){return new ue(3006,!1)}()),n.definitions.forEach(s=>{if(this._resetContextStyleTimingState(e),s.type==St.State){const c=s,u=c.name;u.toString().split(/\s*,\s*/).forEach(p=>{c.name=p,r.push(this.visitState(c,e))}),c.name=u}else if(s.type==St.Transition){const c=this.visitTransition(s,e);i+=c.queryCount,o+=c.depCount,a.push(c)}else e.errors.push(function LH(){return new ue(3007,!1)}())}),{type:St.Trigger,name:n.name,states:r,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,a=o||{};i.styles.forEach(s=>{s instanceof Map&&s.forEach(c=>{dI(c).forEach(u=>{a.hasOwnProperty(u)||r.add(u)})})}),r.size&&e.errors.push(function BH(t,n){return new ue(3008,!1)}(0,r.values()))}return{type:St.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Vo(this,xu(n.animation),e),o=function DU(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function SU(t,n,e){if(":"==t[0]){const c=function kU(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function WH(t){return new ue(3015,!1)}()),n;const o=i[1],r=i[2],a=i[3];n.push(hI(o,a)),"<"==r[0]&&(o!=Pp||a!=Pp)&&n.push(hI(a,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:St.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Ys(n.options)}}visitSequence(n,e){return{type:St.Sequence,steps:n.steps.map(i=>Vo(this,i,e)),options:Ys(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(a=>{e.currentTime=i;const s=Vo(this,a,e);return o=Math.max(o,e.currentTime),s});return e.currentTime=o,{type:St.Group,steps:r,options:Ys(n.options)}}visitAnimate(n,e){const i=function PU(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Ly(Ap(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Ly(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=Ap(e,n);return Ly(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Zt({});if(r.type==St.Keyframes)o=this.visitKeyframes(r,e);else{let a=n.styles,s=!1;if(!a){s=!0;const u={};i.easing&&(u.easing=i.easing),a=Zt(u)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=s,o=c}return e.currentAnimateTimings=null,{type:St.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let s of o)"string"==typeof s?s===ha?i.push(s):e.errors.push(new ue(3002,!1)):i.push(new Map(Object.entries(s)));let r=!1,a=null;return i.forEach(s=>{if(s instanceof Map&&(s.has("easing")&&(a=s.get("easing"),s.delete("easing")),!r))for(let c of s.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:St.Style,styles:i,easing:a,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((s,c)=>{const u=e.collectedStyles.get(e.currentQuerySelector),p=u.get(c);let g=!0;p&&(r!=o&&r>=p.startTime&&o<=p.endTime&&(e.errors.push(function jH(t,n,e,i,o){return new ue(3010,!1)}()),g=!1),r=p.startTime),g&&u.set(c,{startTime:r,endTime:o}),e.options&&function vU(t,n,e){const i=n.params||{},o=dI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function AH(t){return new ue(3001,!1)}())})}(s,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:St.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function zH(){return new ue(3011,!1)}()),i;let r=0;const a=[];let s=!1,c=!1,u=0;const p=n.steps.map(re=>{const ae=this._makeStyleAst(re,e);let Ue=null!=ae.offset?ae.offset:function AU(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(ae.styles),tt=0;return null!=Ue&&(r++,tt=ae.offset=Ue),c=c||tt<0||tt>1,s=s||tt0&&r{const Ue=b>0?ae==w?1:b*ae:a[ae],tt=Ue*z;e.currentTime=k+T.delay+tt,T.duration=tt,this._validateStyleAst(re,e),re.offset=Ue,i.styles.push(re)}),i}visitReference(n,e){return{type:St.Reference,animation:Vo(this,xu(n.animation),e),options:Ys(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:St.AnimateChild,options:Ys(n.options)}}visitAnimateRef(n,e){return{type:St.AnimateRef,animation:this.visitReference(n.animation,e),options:Ys(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,a]=function IU(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(MU,"")),t=t.replace(/@\*/g,Op).replace(/@\w+/g,e=>Op+"-"+e.slice(1)).replace(/:animating/g,Oy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,Bo(e.collectedStyles,e.currentQuerySelector,new Map);const s=Vo(this,xu(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:St.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:s,originalSelector:n.selector,options:Ys(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function GH(){return new ue(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:Ap(n.timings,e.errors,!0);return{type:St.Stagger,animation:Vo(this,xu(n.animation),e),timings:i,options:null}}}class OU{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Ys(t){return t?(t={...t}).params&&(t.params=function EU(t){return t?{...t}:null}(t.params)):t={},t}function Ly(t,n,e){return{duration:t,delay:n,easing:e}}function By(t,n,e,i,o,r,a=null,s=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:a,subTimeline:s}}class Fp{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const FU=new RegExp(":enter","g"),BU=new RegExp(":leave","g");function Vy(t,n,e,i,o,r=new Map,a=new Map,s,c,u=[]){return(new VU).buildKeyframes(t,n,e,i,o,r,a,s,c,u)}class VU{buildKeyframes(n,e,i,o,r,a,s,c,u,p=[]){u=u||new Fp;const g=new jy(n,e,u,o,r,p,[]);g.options=c;const b=c.delay?ma(c.delay):0;g.currentTimeline.delayNextStep(b),g.currentTimeline.setStyles([a],null,g.errors,c),Vo(this,i,g);const w=g.timelines.filter(k=>k.containsAnimation());if(w.length&&s.size){let k;for(let T=w.length-1;T>=0;T--){const z=w[T];if(z.element===e){k=z;break}}k&&!k.allowOnlyTimelineStyles()&&k.setStyles([s],null,g.errors,c)}return w.length?w.map(k=>k.buildKeyframes()):[By(e,[],[],[],0,b,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);r!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const a="number"==typeof r?r:ma(Du(r,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const a=null!=i.duration?ma(i.duration):null,s=null!=i.delay?ma(i.delay):null;return 0!==a&&n.forEach(c=>{const u=e.appendInstructionToTimeline(c,a,s);r=Math.max(r,u.duration+u.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),Vo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==St.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Lp);const a=ma(r.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>Vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?ma(n.options.delay):0;n.steps.forEach(a=>{const s=e.createSubContext(n.options);r&&s.delayNextStep(r),Vo(this,a,s),o=Math.max(o,s.currentTimeline.currentTime),i.push(s.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return Ap(e.params?Du(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==St.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,s=e.createSubContext().currentTimeline;s.easing=i.easing,n.styles.forEach(c=>{s.forwardTime((c.offset||0)*r),s.setStyles(c.styles,c.easing,e.errors,e.options),s.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(s),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?ma(o.delay):0;r&&(e.previousNode.type===St.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Lp);let a=i;const s=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=s.length;let c=null;s.forEach((u,p)=>{e.currentQueryIndex=p;const g=e.createSubContext(n.options,u);r&&g.delayNextStep(r),u===e.element&&(c=g.currentTimeline),Vo(this,n.animation,g),g.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,g.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,a=Math.abs(r.duration),s=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=s-c;break;case"full":c=i.currentStaggerTime}const p=e.currentTimeline;c&&p.delayNextStep(c);const g=p.currentTime;Vo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-g+(o.startTime-i.currentTimeline.startTime)}}const Lp={};class jy{constructor(n,e,i,o,r,a,s,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=a,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Lp,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Bp(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ma(i.duration)),null!=i.delay&&(o.delay=ma(i.delay));const r=i.params;if(r){let a=o.params;a||(a=this.options.params={}),Object.keys(r).forEach(s=>{(!e||!a.hasOwnProperty(s))&&(a[s]=Du(r[s],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new jy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Lp,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new jU(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,a){let s=[];if(o&&s.push(this.element),n.length>0){n=(n=n.replace(FU,"."+this._enterClassName)).replace(BU,"."+this._leaveClassName);let u=this._driver.query(this.element,n,1!=i);0!==i&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),s.push(...u)}return!r&&0==s.length&&a.push(function qH(t){return new ue(3014,!1)}()),s}}class Bp{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Bp(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ha),this._currentKeyframe.set(e,ha);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},a=function zU(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,ha)}else for(let[r,a]of o)e.set(r,a)}),e}(n,this._globalTimelineStyles);for(let[s,c]of a){const u=Du(c,r,i);this._pendingStyles.set(s,u),this._localTimelineStyles.has(s)||this._backFill.set(s,this._globalTimelineStyles.get(s)??ha),this._updateStyle(s,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((s,c)=>{const u=new Map([...this._backFill,...s]);u.forEach((p,g)=>{"!"===p?n.add(g):p===ha&&e.add(g)}),i||u.set("offset",c/this.duration),o.push(u)});const r=[...n.values()],a=[...e.values()];if(i){const s=o[0],c=new Map(s);s.set("offset",0),c.set("offset",1),o=[s,c]}return By(this.element,o,r,a,this.duration,this.startTime,this.easing,!1)}}class jU extends Bp{constructor(n,e,i,o,r,a,s=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=s,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],a=i+e,s=e/a,c=new Map(n[0]);c.set("offset",0),r.push(c);const u=new Map(n[0]);u.set("offset",fI(s)),r.push(u);const p=n.length-1;for(let g=1;g<=p;g++){let b=new Map(n[g]);const w=b.get("offset");b.set("offset",fI((e+w*i)/a)),r.push(b)}i=a,e=0,o="",n=r}return By(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function fI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function gI(t,n,e,i,o,r,a,s,c,u,p,g,b){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:a,timelines:s,queriedElements:c,preStyleProps:u,postStyleProps:p,totalTime:g,errors:b}}const zy={};class _I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function HU(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,a,s,c,u,p){const g=[],b=this.ast.options&&this.ast.options.params||zy,k=this.buildStyles(i,s&&s.params||zy,g),T=c&&c.params||zy,z=this.buildStyles(o,T,g),re=new Set,ae=new Map,Ue=new Map,tt="void"===o,ft={params:bI(T,b),delay:this.ast.options?.delay},zt=p?[]:Vy(n,e,this.ast.animation,r,a,k,z,ft,u,g);let Ni=0;return zt.forEach(On=>{Ni=Math.max(On.duration+On.delay,Ni)}),g.length?gI(e,this._triggerName,i,o,tt,k,z,[],[],ae,Ue,Ni,g):(zt.forEach(On=>{const Pa=On.element,cd=Bo(ae,Pa,new Set);On.preStyleProps.forEach(fc=>cd.add(fc));const UN=Bo(Ue,Pa,new Set);On.postStyleProps.forEach(fc=>UN.add(fc)),Pa!==e&&re.add(Pa)}),gI(e,this._triggerName,i,o,tt,k,z,zt,[...re.values()],ae,Ue,Ni))}}function bI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class UU{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=bI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((a,s)=>{a&&(a=Du(a,o,e));const c=this.normalizer.normalizePropertyName(s,e);a=this.normalizer.normalizeStyleValue(s,c,a,e),i.set(s,a)})}),i}}class GU{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new UU(o.style,o.options&&o.options.params||{},i))}),vI(this.states,"true","1"),vI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new _I(n,o,this.states))}),this.fallbackTransition=function qU(t,n,e){return new _I(t,{type:St.Transition,animation:{type:St.Sequence,steps:[],options:null},matchers:[(a,s)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function vI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const WU=new Fp;class KU{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Fy(this._driver,e,i,[]);if(i.length)throw function JH(t){return new ue(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=iI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let a;const s=new Map;if(r?(a=Vy(this._driver,e,r,Ey,Ip,new Map,new Map,i,WU,o),a.forEach(p=>{const g=Bo(s,p.element,new Map);p.postStyleProps.forEach(b=>g.set(b,null))})):(o.push(function eU(){return new ue(3300,!1)}()),a=[]),o.length)throw function tU(t){return new ue(3504,!1)}();s.forEach((p,g)=>{p.forEach((b,w)=>{p.set(w,this._driver.computeStyle(g,w,ha))})});const u=Xa(a.map(p=>{const g=s.get(p.element);return this._buildPlayer(p,new Map,g)}));return this._playersById.set(n,u),u.onDestroy(()=>this.destroy(n)),this.players.push(u),u}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function iU(t){return new ue(3301,!1)}();return e}listen(n,e,i,o){const r=Sy(e,"","","");return xy(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const yI="ng-animate-queued",Hy="ng-animate-disabled",JU=[],CI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},e$={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},wr="__ng_removed";class Uy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function o$(t){return t??null}(i?n.value:n),i){const{value:r,...a}=n;this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const Su="void",$y=new Uy(Su);class t${constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,Qo(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function nU(t,n){return new ue(3302,!1)}();if(null==i||0==i.length)throw function oU(t){return new ue(3303,!1)}();if(!function r$(t){return"start"==t||"done"==t}(i))throw function rU(t,n){return new ue(3400,!1)}();const r=Bo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};r.push(a);const s=Bo(this._engine.statesByElement,n,new Map);return s.has(e)||(Qo(n,Ep),Qo(n,Ep+"-"+e),s.set(e,$y)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(a);c>=0&&r.splice(c,1),this._triggers.has(e)||s.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function aU(t){return new ue(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),a=new Gy(this.id,e,n);let s=this._engine.statesByElement.get(n);s||(Qo(n,Ep),Qo(n,Ep+"-"+e),this._engine.statesByElement.set(n,s=new Map));let c=s.get(e);const u=new Uy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&u.absorbOptions(c.options),s.set(e,u),c||(c=$y),u.value!==Su&&c.value===u.value){if(!function c$(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Zs(n,z),Vr(n,re)})}return}const b=Bo(this._engine.playersByElement,n,[]);b.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let w=r.matchTransition(c.value,u.value,n,u.params),k=!1;if(!w){if(!o)return;w=r.fallbackTransition,k=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:w,fromState:c,toState:u,player:a,isFallbackTransition:k}),k||(Qo(n,yI),a.onStart(()=>{Dl(n,yI)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);const z=this._engine.playersByElement.get(n);if(z){let re=z.indexOf(a);re>=0&&z.splice(re,1)}}),this.players.push(a),b.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,Op,!0);i.forEach(o=>{if(o[wr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),a=new Map;if(r){const s=[];if(r.forEach((c,u)=>{if(a.set(u,c.value),this._triggers.has(u)){const p=this.trigger(n,u,Su,o);p&&s.push(p)}}),s.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Xa(s).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const a=r.name;if(o.has(a))return;o.add(a);const c=this._triggers.get(a).fallbackTransition,u=i.get(a)||$y,p=new Uy(Su),g=new Gy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:c,fromState:u,toState:p,player:g,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[wr];(!r||r===CI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){Qo(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,a=this._elementListeners.get(r);a&&a.forEach(s=>{if(s.name==i.triggerName){const c=Sy(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,xy(i.player,s.phase,c,s.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==r||0==a?r-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class i${_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i,o){this.bodyNode=n,this.driver=e,this._normalizer=i,this.scheduler=o,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(r,a)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new t$(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,s=this.driver.getParentElement(e);for(;s;){const c=o.get(s);if(c){const u=i.indexOf(c);i.splice(u+1,0,n),a=!0;break}s=this.driver.getParentElement(s)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(Vp(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!Vp(e))return;const r=e[wr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),Qo(n,Hy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Dl(n,Hy))}removeNode(n,e,i){if(Vp(e)){this.scheduler?.notify();const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[wr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return Vp(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,Op,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Oy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[wr];if(e&&e.setForRemoval){if(n[wr]=CI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Hy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function sU(t){return new ue(3402,!1)}()}_flushAnimations(n,e){const i=new Fp,o=[],r=new Map,a=[],s=new Map,c=new Map,u=new Map,p=new Set;this.disabledNodes.forEach(at=>{p.add(at);const _t=this.driver.query(at,".ng-animate-queued",!0);for(let xt=0;xt<_t.length;xt++)p.add(_t[xt])});const g=this.bodyNode,b=Array.from(this.statesByElement.keys()),w=DI(b,this.collectedEnterElements),k=new Map;let T=0;w.forEach((at,_t)=>{const xt=Ey+T++;k.set(_t,xt),at.forEach(ii=>Qo(ii,xt))});const z=[],re=new Set,ae=new Set;for(let at=0;atre.add(ii)):ae.add(_t))}const Ue=new Map,tt=DI(b,Array.from(re));tt.forEach((at,_t)=>{const xt=Ip+T++;Ue.set(_t,xt),at.forEach(ii=>Qo(ii,xt))}),n.push(()=>{w.forEach((at,_t)=>{const xt=k.get(_t);at.forEach(ii=>Dl(ii,xt))}),tt.forEach((at,_t)=>{const xt=Ue.get(_t);at.forEach(ii=>Dl(ii,xt))}),z.forEach(at=>{this.processLeaveNode(at)})});const ft=[],zt=[];for(let at=this._namespaceList.length-1;at>=0;at--)this._namespaceList[at].drainQueuedTransitions(e).forEach(xt=>{const ii=xt.player,Nn=xt.element;if(ft.push(ii),this.collectedEnterElements.length){const to=Nn[wr];if(to&&to.setForMove){if(to.previousTriggersValues&&to.previousTriggersValues.has(xt.triggerName)){const gc=to.previousTriggersValues.get(xt.triggerName),rr=this.statesByElement.get(xt.element);if(rr&&rr.has(xt.triggerName)){const Og=rr.get(xt.triggerName);Og.value=gc,rr.set(xt.triggerName,Og)}}return void ii.destroy()}}const Yr=!g||!this.driver.containsElement(g,Nn),$o=Ue.get(Nn),Cs=k.get(Nn),Ki=this._buildInstruction(xt,i,Cs,$o,Yr);if(Ki.errors&&Ki.errors.length)return void zt.push(Ki);if(Yr)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);if(xt.isFallbackTransition)return ii.onStart(()=>Zs(Nn,Ki.fromStyles)),ii.onDestroy(()=>Vr(Nn,Ki.toStyles)),void o.push(ii);const qN=[];Ki.timelines.forEach(to=>{to.stretchStartingKeyframe=!0,this.disabledNodes.has(to.element)||qN.push(to)}),Ki.timelines=qN,i.append(Nn,Ki.timelines),a.push({instruction:Ki,player:ii,element:Nn}),Ki.queriedElements.forEach(to=>Bo(s,to,[]).push(ii)),Ki.preStyleProps.forEach((to,gc)=>{if(to.size){let rr=c.get(gc);rr||c.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))}}),Ki.postStyleProps.forEach((to,gc)=>{let rr=u.get(gc);rr||u.set(gc,rr=new Set),to.forEach((Og,Mw)=>rr.add(Mw))})});if(zt.length){const at=[];zt.forEach(_t=>{at.push(function cU(t,n){return new ue(3505,!1)}())}),ft.forEach(_t=>_t.destroy()),this.reportError(at)}const Ni=new Map,On=new Map;a.forEach(at=>{const _t=at.element;i.has(_t)&&(On.set(_t,_t),this._beforeAnimationBuild(at.player.namespaceId,at.instruction,Ni))}),o.forEach(at=>{const _t=at.element;this._getPreviousPlayers(_t,!1,at.namespaceId,at.triggerName,null).forEach(ii=>{Bo(Ni,_t,[]).push(ii),ii.destroy()})});const Pa=z.filter(at=>kI(at,c,u)),cd=new Map;xI(cd,this.driver,ae,u,ha).forEach(at=>{kI(at,c,u)&&Pa.push(at)});const fc=new Map;w.forEach((at,_t)=>{xI(fc,this.driver,new Set(at),c,"!")}),Pa.forEach(at=>{const _t=cd.get(at),xt=fc.get(at);cd.set(at,new Map([..._t?.entries()??[],...xt?.entries()??[]]))});const kw=[],$N=[],GN={};a.forEach(at=>{const{element:_t,player:xt,instruction:ii}=at;if(i.has(_t)){if(p.has(_t))return xt.onDestroy(()=>Vr(_t,ii.toStyles)),xt.disabled=!0,xt.overrideTotalTime(ii.totalTime),void o.push(xt);let Nn=GN;if(On.size>1){let $o=_t;const Cs=[];for(;$o=$o.parentNode;){const Ki=On.get($o);if(Ki){Nn=Ki;break}Cs.push($o)}Cs.forEach(Ki=>On.set(Ki,Nn))}const Yr=this._buildAnimation(xt.namespaceId,ii,Ni,r,fc,cd);if(xt.setRealPlayer(Yr),Nn===GN)kw.push(xt);else{const $o=this.playersByElement.get(Nn);$o&&$o.length&&(xt.parentPlayer=Xa($o)),o.push(xt)}}else Zs(_t,ii.fromStyles),xt.onDestroy(()=>Vr(_t,ii.toStyles)),$N.push(xt),p.has(_t)&&o.push(xt)}),$N.forEach(at=>{const _t=r.get(at.element);if(_t&&_t.length){const xt=Xa(_t);at.setRealPlayer(xt)}}),o.forEach(at=>{at.parentPlayer?at.syncPlayerEvents(at.parentPlayer):at.destroy()});for(let at=0;at!Yr.destroyed);Nn.length?a$(this,_t,Nn):this.processLeaveNode(_t)}return z.length=0,kw.forEach(at=>{this.players.push(at),at.onDone(()=>{at.destroy();const _t=this.players.indexOf(at);this.players.splice(_t,1)}),at.play()}),kw}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let a=[];if(e){const s=this.playersByQueriedElement.get(n);s&&(a=s)}else{const s=this.playersByElement.get(n);if(s){const c=!r||r==Su;s.forEach(u=>{u.queued||!c&&u.triggerName!=o||a.push(u)})}}return(i||o)&&(a=a.filter(s=>!(i&&i!=s.namespaceId||o&&o!=s.triggerName))),a}_beforeAnimationBuild(n,e,i){const r=e.element,a=e.isRemovalTransition?void 0:n,s=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const u=c.element,p=u!==r,g=Bo(i,u,[]);this._getPreviousPlayers(u,p,a,s,e.toState).forEach(w=>{const k=w.getRealPlayer();k.beforeDestroy&&k.beforeDestroy(),w.destroy(),g.push(w)})}Zs(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,a){const s=e.triggerName,c=e.element,u=[],p=new Set,g=new Set,b=e.timelines.map(k=>{const T=k.element;p.add(T);const z=T[wr];if(z&&z.removedBeforeQueried)return new wu(k.duration,k.delay);const re=T!==c,ae=function s$(t){const n=[];return SI(t,n),n}((i.get(T)||JU).map(Ni=>Ni.getRealPlayer())).filter(Ni=>!!Ni.element&&Ni.element===T),Ue=r.get(T),tt=a.get(T),ft=iI(this._normalizer,k.keyframes,Ue,tt),zt=this._buildPlayer(k,ft,ae);if(k.subTimeline&&o&&g.add(T),re){const Ni=new Gy(n,s,T);Ni.setRealPlayer(zt),u.push(Ni)}return zt});u.forEach(k=>{Bo(this.playersByQueriedElement,k.element,[]).push(k),k.onDone(()=>function n$(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,k.element,k))}),p.forEach(k=>Qo(k,cI));const w=Xa(b);return w.onDestroy(()=>{p.forEach(k=>Dl(k,cI)),Vr(c,e.toStyles)}),g.forEach(k=>{Bo(o,k,[]).push(w)}),w}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new wu(n.duration,n.delay)}}class Gy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new wu,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>xy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Bo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function Vp(t){return t&&1===t.nodeType}function wI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function xI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(wI(c)));const a=[];i.forEach((c,u)=>{const p=new Map;c.forEach(g=>{const b=n.computeStyle(u,g,o);p.set(g,b),(!b||0==b.length)&&(u[wr]=e$,a.push(u))}),t.set(u,p)});let s=0;return e.forEach(c=>wI(c,r[s++])),a}function DI(t,n){const e=new Map;if(t.forEach(s=>e.set(s,[])),0==n.length)return e;const o=new Set(n),r=new Map;function a(s){if(!s)return 1;let c=r.get(s);if(c)return c;const u=s.parentNode;return c=e.has(u)?u:o.has(u)?1:a(u),r.set(s,c),c}return n.forEach(s=>{const c=a(s);1!==c&&e.get(c).push(s)}),e}function Qo(t,n){t.classList?.add(n)}function Dl(t,n){t.classList?.remove(n)}function a$(t,n,e){Xa(e).onDone(()=>t.processLeaveNode(n))}function SI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class ku{constructor(n,e,i,o){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,a)=>{},this._transitionEngine=new i$(n.body,e,i,o),this._timelineEngine=new KU(n.body,e,i),this._transitionEngine.onRemovalComplete=(r,a)=>this.onRemovalComplete(r,a)}registerTrigger(n,e,i,o,r){const a=n+"-"+o;let s=this._triggerCache[a];if(!s){const c=[],p=Fy(this._driver,r,c,[]);if(c.length)throw function QH(t,n){return new ue(3404,!1)}();s=function $U(t,n,e){return new GU(t,n,e)}(o,p,this._normalizer),this._triggerCache[a]=s}this._transitionEngine.registerTrigger(e,o,s)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,a]=nI(i);this._timelineEngine.command(r,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[a,s]=nI(i);return this._timelineEngine.listen(a,e,s,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class Mu{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=Mu.initialStylesByElement.get(n);o||Mu.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Vr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Vr(this._element,this._initialStyles),this._endStyles&&(Vr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Mu.initialStylesByElement.delete(this._element),this._startStyles&&(Zs(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Zs(this._element,this._endStyles),this._endStyles=null),Vr(this._element,this._initialStyles),this._state=3)}}function qy(t){let n=null;return t.forEach((e,i)=>{(function d$(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class MI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Ny(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class TI{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return rI(n,e)}getParentElement(n){return ky(n)}query(n,e,i){return aI(n,e,i)}computeStyle(n,e,i){return Ny(n,e)}animate(n,e,i,o,r,a=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const u=new Map,p=a.filter(w=>w instanceof MI);(function CU(t,n){return 0===t||0===n})(i,o)&&p.forEach(w=>{w.currentSnapshot.forEach((k,T)=>u.set(T,k))});let g=function bU(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(w=>new Map(w));g=function wU(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,a)=>{i.has(a)||o.push(a),i.set(a,r)}),o.length)for(let r=1;ra.set(s,Ny(t,s)))}}return n}(n,g,u);const b=function l$(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=qy(n[0]),n.length>1&&(i=qy(n[n.length-1]))):n instanceof Map&&(e=qy(n)),e||i?new Mu(t,e,i):null}(n,g);return new MI(n,g,c,b)}}const II="@.disabled";class EI{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==II?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class u$ extends EI{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==II?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function h$(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),a="";return"@"!=r.charAt(0)&&([r,a]=function m$(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,a,s=>{this.factory.scheduleListenerCallback(s._data||-1,i,s)})}return this.delegate.listen(n,e,i)}}class p${constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const a=r?.parentNode(o);a&&r.removeChild(a,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const u=this._rendererCache;let p=u.get(o);return p||(p=new EI("",o,this.engine,()=>u.delete(o)),u.set(o,p)),p}const r=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);const s=u=>{Array.isArray(u)?u.forEach(s):this.engine.registerTrigger(r,a,n,u.name,u)};return e.data.animation.forEach(s),new u$(this,a,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[a,s]=r;a(s)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const OI=[{provide:Iy,useFactory:function g$(){return new uI}},{provide:ku,useClass:(()=>{class t extends ku{constructor(e,i,o){super(e,i,o,De(Ob,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(Ty),X(Iy))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})()},{provide:Ab,useFactory:function _$(t,n,e){return new p$(t,n,e)},deps:[fy,ku,We]}],Wy=[{provide:Ty,useFactory:()=>new TI},{provide:ui,useValue:"BrowserAnimations"},...OI],AI=[{provide:Ty,useClass:My},{provide:ui,useValue:"NoopAnimations"},...OI];let Ky,b$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?AI:Wy}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:Wy,imports:[Y2]})}return t})();try{Ky=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Ky=!1}let Sl,ci=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?M2(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!Ky)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(X(ra))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const PI=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function RI(){if(Sl)return Sl;if("object"!=typeof document||!document)return Sl=new Set(PI),Sl;let t=document.createElement("input");return Sl=new Set(PI.filter(n=>(t.setAttribute("type",n),t.type===n))),Sl}let Tu,zp,Qs,Zy;function Ja(t){return function v$(){if(null==Tu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Tu=!0}))}finally{Tu=Tu||!1}return Tu}()?t:!!t.capture}function NI(){if(null==Qs){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Qs=!1,Qs;if("scrollBehavior"in document.documentElement.style)Qs=!0;else{const t=Element.prototype.scrollTo;Qs=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Qs}function Iu(){if("object"!=typeof document||!document)return 0;if(null==zp){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),zp=0,0===t.scrollLeft&&(t.scrollLeft=1,zp=0===t.scrollLeft?1:2),t.remove()}return zp}function Hp(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function pa(t){return t.composedPath?t.composedPath()[0]:t.target}function Yy(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function FI(t){return t&&J(t.schedule)}function Qy(t){return t[t.length-1]}function LI(t){return J(Qy(t))?t.pop():void 0}function Eu(t){return FI(Qy(t))?t.pop():void 0}function es(t){return this instanceof es?(this.v=t,this):new es(t)}function zI(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function t0(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(a){return new Promise(function(s,c){!function o(r,a,s,c){Promise.resolve(c).then(function(u){r({value:u,done:s})},a)}(s,c,(a=t[r](a)).done,a.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const n0=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function HI(t){return J(t?.then)}function UI(t){return J(t[Pg])}function $I(t){return Symbol.asyncIterator&&J(t?.[Symbol.asyncIterator])}function GI(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const qI=function $$(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function WI(t){return J(t?.[qI])}function KI(t){return function jI(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(b){i[b]&&(o[b]=function(w){return new Promise(function(k,T){r.push([b,w,k,T])>1||s(b,w)})})}function s(b,w){try{!function c(b){b.value instanceof es?Promise.resolve(b.value.v).then(u,p):g(r[0][2],b)}(i[b](w))}catch(k){g(r[0][3],k)}}function u(b){s("next",b)}function p(b){s("throw",b)}function g(b,w){b(w),r.shift(),r.length&&s(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield es(e.read());if(o)return yield es(void 0);yield yield es(i)}}finally{e.releaseLock()}})}function ZI(t){return J(t?.getReader)}function Yn(t){if(t instanceof li)return t;if(null!=t){if(UI(t))return function G$(t){return new li(n=>{const e=t[Pg]();if(J(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(n0(t))return function q$(t){return new li(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,ht)})}(t);if($I(t))return YI(t);if(WI(t))return function K$(t){return new li(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(ZI(t))return function Z$(t){return YI(KI(t))}(t)}throw GI(t)}function YI(t){return new li(n=>{(function Y$(t,n){var e,i,o,r;return function BI(t,n,e,i){return new(e||(e=Promise))(function(r,a){function s(p){try{u(i.next(p))}catch(g){a(g)}}function c(p){try{u(i.throw(p))}catch(g){a(g)}}function u(p){p.done?r(p.value):function o(r){return r instanceof e?r:new e(function(a){a(r)})}(p.value).then(s,c)}u((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=zI(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(a){o={error:a}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function fa(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function QI(t,n=0){return $i((e,i)=>{e.subscribe(Fi(i,o=>fa(i,t,()=>i.next(o),n),()=>fa(i,t,()=>i.complete(),n),o=>fa(i,t,()=>i.error(o),n)))})}function XI(t,n=0){return $i((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function JI(t,n){if(!t)throw new Error("Iterable cannot be null");return new li(e=>{fa(e,n,()=>{const i=t[Symbol.asyncIterator]();fa(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function Xi(t,n){return n?function iG(t,n){if(null!=t){if(UI(t))return function Q$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if(n0(t))return function J$(t,n){return new li(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(HI(t))return function X$(t,n){return Yn(t).pipe(XI(n),QI(n))}(t,n);if($I(t))return JI(t,n);if(WI(t))return function eG(t,n){return new li(e=>{let i;return fa(e,n,()=>{i=t[qI](),fa(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(a){return void e.error(a)}r?e.complete():e.next(o)},0,!0)}),()=>J(i?.return)&&i.return()})}(t,n);if(ZI(t))return function tG(t,n){return JI(KI(t),n)}(t,n)}throw GI(t)}(t,n):Yn(t)}function Ke(...t){return Xi(t,Eu(t))}function An(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}function qt(t,n,e){const i=J(t)||n||e?{next:t,error:n,complete:e}:t;return i?$i((o,r)=>{var a;null===(a=i.subscribe)||void 0===a||a.call(i);let s=!0;o.subscribe(Fi(r,c=>{var u;null===(u=i.next)||void 0===u||u.call(i,c),r.next(c)},()=>{var c;s=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var u;s=!1,null===(u=i.error)||void 0===u||u.call(i,c),r.error(c)},()=>{var c,u;s&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(u=i.finalize)||void 0===u||u.call(i)}))}):Ra}class gG extends de{constructor(n,e){super()}schedule(n,e=0){return this}}const qp={setInterval(t,n,...e){const{delegate:i}=qp;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=qp;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class a0 extends gG{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){var i;if(this.closed)return this;this.state=n;const o=this.id,r=this.scheduler;return null!=o&&(this.id=this.recycleAsyncId(r,o,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(r,this.id,e),this}requestAsyncId(n,e,i=0){return qp.setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&qp.clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(r){i=!0,o=r||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),o}unsubscribe(){if(!this.closed){const{id:n,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Z(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const s0={now:()=>(s0.delegate||Date).now(),delegate:void 0};class Au{constructor(n,e=Au.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Au.now=s0.now;class c0 extends Au{constructor(n,e=Au.now){super(n,e),this.actions=[],this._active=!1}flush(n){const{actions:e}=this;if(this._active)return void e.push(n);let i;this._active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this._active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Pu=new c0(a0),_G=Pu;function Wp(t,n=Pu){return $i((e,i)=>{let o=null,r=null,a=null;const s=()=>{if(o){o.unsubscribe(),o=null;const u=r;r=null,i.next(u)}};function c(){const u=a+t,p=n.now();if(p{r=u,a=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{s(),i.complete()},void 0,()=>{r=o=null}))})}function kt(t,n){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>t.call(n,r,o++)&&i.next(r)))})}const jo=new li(t=>t.complete());function Pt(t){return t<=0?()=>jo:$i((n,e)=>{let i=0;n.subscribe(Fi(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function l0(t){return kt((n,e)=>t<=e)}function Ru(t,n=Ra){return t=t??vG,$i((e,i)=>{let o,r=!0;e.subscribe(Fi(i,a=>{const s=n(a);(r||!t(o,s))&&(r=!1,o=s,i.next(a))}))})}function vG(t,n){return t===n}function ot(t){return $i((n,e)=>{Yn(t).subscribe(Fi(e,()=>e.complete(),oi)),!e.closed&&n.subscribe(e)})}function $e(t){return null!=t&&"false"!=`${t}`}function yi(t,n=0){return eE(t)?Number(t):n}function eE(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}function Kp(t){return Array.isArray(t)?t:[t]}function pn(t){return null==t?"":"string"==typeof t?t:`${t}px`}function _a(t){return t instanceof Be?t.nativeElement:t}let tE=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),CG=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=_a(e);return new li(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new qe,o=this._mutationObserverFactory.create(r=>i.next(r));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(tE))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),iE=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=yi(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new Ne,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(Wp(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(CG),_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[ge.None,"cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return t})(),Zp=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[tE]})}return t})();const{isArray:wG}=Array,{getPrototypeOf:xG,prototype:DG,keys:SG}=Object;function nE(t){if(1===t.length){const n=t[0];if(wG(n))return{args:n,keys:null};if(function kG(t){return t&&"object"==typeof t&&xG(t)===DG}(n)){const e=SG(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:MG}=Array;function d0(t){return nt(n=>function TG(t,n){return MG(n)?t(...n):t(n)}(t,n))}function oE(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function Xs(...t){const n=Eu(t),e=LI(t),{args:i,keys:o}=nE(t);if(0===i.length)return Xi([],n);const r=new li(function IG(t,n,e=Ra){return i=>{rE(n,()=>{const{length:o}=t,r=new Array(o);let a=o,s=o;for(let c=0;c{const u=Xi(t[c],n);let p=!1;u.subscribe(Fi(i,g=>{r[c]=g,p||(p=!0,s--),s||i.next(e(r.slice()))},()=>{--a||i.complete()}))},i)},i)}}(i,n,o?a=>oE(o,a):Ra));return e?r.pipe(d0(e)):r}function rE(t,n,e){t?fa(e,t,n):n()}function Pn(t,n,e=1/0){return J(n)?Pn((i,o)=>nt((r,a)=>n(i,r,o,a))(Yn(t(i,o))),e):("number"==typeof n&&(e=n),$i((i,o)=>function EG(t,n,e,i,o,r,a,s){const c=[];let u=0,p=0,g=!1;const b=()=>{g&&!c.length&&!u&&n.complete()},w=T=>u{r&&n.next(T),u++;let z=!1;Yn(e(T,p++)).subscribe(Fi(n,re=>{o?.(re),r?w(re):n.next(re)},()=>{z=!0},void 0,()=>{if(z)try{for(u--;c.length&&uk(re)):k(re)}b()}catch(re){n.error(re)}}))};return t.subscribe(Fi(n,w,()=>{g=!0,b()})),()=>{s?.()}}(i,o,t,e)))}function Ml(t=1/0){return Pn(Ra,t)}function Nu(...t){return function OG(){return Ml(1)}()(Xi(t,Eu(t)))}function an(...t){const n=Eu(t);return $i((e,i)=>{(n?Nu(t,e,n):Nu(t,e)).subscribe(i)})}const aE=new Set;let Js,AG=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):RG}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function PG(t,n){if(!aE.has(t))try{Js||(Js=document.createElement("style"),n&&(Js.nonce=n),Js.setAttribute("type","text/css"),document.head.appendChild(Js)),Js.sheet&&(Js.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(s_,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function RG(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let u0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new qe}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return sE(Kp(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=Xs(sE(Kp(e)).map(a=>this._registerQuery(a).observable));return r=Nu(r.pipe(Pt(1)),r.pipe(l0(1),Wp(0))),r.pipe(nt(a=>{const s={matches:!1,breakpoints:{}};return a.forEach(({matches:c,query:u})=>{s.matches=s.matches||c,s.breakpoints[u]=c}),s}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new li(a=>{const s=c=>this._zone.run(()=>a.next(c));return i.addListener(s),()=>{i.removeListener(s)}}).pipe(an(i),nt(({matches:a})=>({query:e,matches:a})),ot(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(X(AG),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function sE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function Yp(t,n,e){const i=Qp(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))}function Tl(t,n,e){const o=Qp(t,n).filter(r=>r!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}function Qp(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const lE="cdk-describedby-message",Xp="cdk-describedby-host";let h0=0,FG=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+h0++,this._document=e,this._id=De(wd)+"-"+h0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const r=m0(i,o);"string"!=typeof i?(dE(i,this._id),this._messageRegistry.set(r,{messageElement:i,referenceCount:0})):this._messageRegistry.has(r)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,r)||this._addMessageReference(e,r)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const r=m0(i,o);if(this._isElementDescribedByMessage(e,r)&&this._removeMessageReference(e,r),"string"==typeof i){const a=this._messageRegistry.get(r);a&&0===a.referenceCount&&this._deleteMessageElement(r)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${Xp}="${this._id}"]`);for(let i=0;i0!=o.indexOf(lE));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);Yp(e,"aria-describedby",o.messageElement.id),e.setAttribute(Xp,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,Tl(e,"aria-describedby",o.messageElement.id),e.removeAttribute(Xp)}_isElementDescribedByMessage(e,i){const o=Qp(e,"aria-describedby"),r=this._messageRegistry.get(i),a=r&&r.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),r=e.getAttribute("aria-label");return!(!o||r&&r.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function m0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function dE(t,n){t.id||(t.id=`${lE}-${n}-${h0++}`)}class uE{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new qe,this._typeaheadSubscription=de.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new qe,this.change=new qe,n instanceof oa&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(qt(e=>this._pressedLetters.push(e)),Wp(n),kt(()=>this._pressedLetters.length>0),nt(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof oa?this._items.toArray():this._items}}class hE extends uE{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class Jp extends uE{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let Fu=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function BG(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function LG(t){try{return t.frameElement}catch{return null}}(function qG(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===pE(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=pE(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function $G(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function GG(t){return!function jG(t){return function HG(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function VG(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function zG(t){return function UG(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||mE(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function mE(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function pE(t){if(!mE(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class fE{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Pt(1)).subscribe(n)}}let ef=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new fE(e,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(Fu),X(We),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function p0(t){return 0===t.buttons||0===t.detail}function f0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const WG=new se("cdk-input-modality-detector-options"),KG={ignoreKeys:[18,17,224,91,16]},Il=Ja({passive:!0,capture:!0});let ZG=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new pt(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(s=>s===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(p0(a)?"keyboard":"mouse"),this._mostRecentTarget=pa(a))},this._onTouchstart=a=>{f0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pa(a))},this._options={...KG,...r},this.modalityDetected=this._modality.pipe(l0(1)),this.modalityChanged=this.modalityDetected.pipe(Ru()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Il),o.addEventListener("mousedown",this._onMousedown,Il),o.addEventListener("touchstart",this._onTouchstart,Il)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Il),document.removeEventListener("mousedown",this._onMousedown,Il),document.removeEventListener("touchstart",this._onTouchstart,Il))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(ut),X(WG,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const YG=new se("liveAnnouncerElement",{providedIn:"root",factory:function QG(){return null}}),XG=new se("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let JG=0,g0=(()=>{class t{constructor(e,i,o,r){this._ngZone=i,this._defaultOptions=r,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let r,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[r,a]=i,this.clear(),clearTimeout(this._previousTimeout),r||(r=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",r),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(s=>this._currentResolve=s)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let r=0;r .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,r,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new qe,this._rootNodeFocusAndBlurListener=s=>{for(let u=pa(s);u;u=u.parentElement)"focus"===s.type?this._onFocus(s,u):this._onBlur(s,u)},this._document=r,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=_a(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ke();const r=function C$(t){if(function y$(){if(null==Zy){const t=typeof document<"u"?document.head:null;Zy=!(!t||!t.createShadowRoot&&!t.attachShadow)}return Zy}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const s={checkChildren:i,subject:new qe,rootNode:r};return this._elementInfo.set(o,s),this._registerGlobalListeners(s),s.subject}stopMonitoring(e){const i=_a(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=_a(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([s,c])=>this._originChanged(s,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=pa(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,tf)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(ot(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,tf),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,tf),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new Ne}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(zo))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return t})();const _E="cdk-high-contrast-black-on-white",bE="cdk-high-contrast-white-on-black",_0="cdk-high-contrast-active";let vE=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=De(u0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(_0,_E,bE),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(_0,_E):2===i&&e.add(_0,bE)}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Zp]})}return t})();const iq=new se("cdk-dir-doc",{providedIn:"root",factory:function nq(){return De(ut)}}),oq=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let fn=(()=>{class t{constructor(e){this.value="ltr",this.change=new Ne,e&&(this.value=function rq(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?oq.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(X(iq,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lu=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const aq=["*",[["mat-option"],["ng-container"]]],sq=["*","mat-option, ng-container"],cq=["text"];function lq(t,n){if(1&t&&D(0,"mat-pseudo-checkbox",6),2&t){const e=C();f("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dq(t,n){1&t&&D(0,"mat-pseudo-checkbox",7),2&t&&f("disabled",C().disabled)}function uq(t,n){if(1&t&&(d(0,"span",8),h(1),l()),2&t){const e=C();m(),xe("(",e.group.label,")")}}const hq=[[["mat-icon"]],"*"],mq=["mat-icon","*"],fq=new se("mat-sanity-checks",{providedIn:"root",factory:function pq(){return!0}});let Mt=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!Yy()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static#e=this.\u0275fac=function(i){return new(i||t)(X(vE),X(fq,8),X(ut))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Lu,Lu]})}return t})();function jr(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=$e(n)}constructor(...n){super(...n),this._disabled=!1}}}function is(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function ns(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=$e(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function os(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?yi(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function v0(t){return class extends t{updateErrorState(){const n=this.errorState,r=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);r!==n&&(this.errorState=r,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}function gq(t){return class extends t{constructor(...n){super(...n),this._isInitialized=!1,this._pendingSubscribers=[],this.initialized=new li(e=>{this._isInitialized?this._notifySubscriber(e):this._pendingSubscribers.push(e)})}_markInitialized(){this._isInitialized=!0,this._pendingSubscribers.forEach(this._notifySubscriber),this._pendingSubscribers=null}_notifySubscriber(n){n.next(),n.complete()}}}let nf=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class bq{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wE=Ja({passive:!0,capture:!0});class vq{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=pa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(r=>r.handleEvent(n))})}}addHandler(n,e,i,o){const r=this._events.get(e);if(r){const a=r.get(i);a?a.add(o):r.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wE)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const r=o.get(e);r&&(r.delete(i),0===r.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,wE)))}}const xE={enterDuration:225,exitDuration:150},DE=Ja({passive:!0,capture:!0}),SE=["mousedown","touchstart"],kE=["mouseup","mouseleave","touchend","touchcancel"];class Vu{static#e=this._eventManager=new vq;constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=_a(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),r={...xE,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function Cq(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),s=n-o.left,c=e-o.top,u=r.enterDuration,p=document.createElement("div");p.classList.add("mat-ripple-element"),p.style.left=s-a+"px",p.style.top=c-a+"px",p.style.height=2*a+"px",p.style.width=2*a+"px",null!=i.color&&(p.style.backgroundColor=i.color),p.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(p);const g=window.getComputedStyle(p),w=g.transitionDuration,k="none"===g.transitionProperty||"0s"===w||"0s, 0s"===w||0===o.width&&0===o.height,T=new bq(this,p,i,k);p.style.transform="scale3d(1, 1, 1)",T.state=0,i.persistent||(this._mostRecentTransientRipple=T);let z=null;return!k&&(u||r.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const re=()=>this._finishRippleTransition(T),ae=()=>this._destroyRipple(T);p.addEventListener("transitionend",re),p.addEventListener("transitioncancel",ae),z={onTransitionEnd:re,onTransitionCancel:ae}}),this._activeRipples.set(T,z),(k||!u)&&this._finishRippleTransition(T),T}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...xE,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=_a(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,SE.forEach(i=>{Vu._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{kE.forEach(e=>{this._triggerElement.addEventListener(e,this,DE)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=p0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(SE.forEach(e=>Vu._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&kE.forEach(e=>n.removeEventListener(e,this,DE)))}}const El=new se("mat-ripple-global-options");let rs=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,r,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new Vu(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(ci),_(El,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-ripple-unbounded",o.unbounded)},inputs:{color:[ge.None,"matRippleColor","color"],unbounded:[ge.None,"matRippleUnbounded","unbounded"],centered:[ge.None,"matRippleCentered","centered"],radius:[ge.None,"matRippleRadius","radius"],animation:[ge.None,"matRippleAnimation","animation"],disabled:[ge.None,"matRippleDisabled","disabled"],trigger:[ge.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return t})(),as=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})(),wq=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static#e=this.\u0275fac=function(i){return new(i||t)(_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&et("mat-pseudo-checkbox-indeterminate","indeterminate"===o.state)("mat-pseudo-checkbox-checked","checked"===o.state)("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal","minimal"===o.appearance)("mat-pseudo-checkbox-full","full"===o.appearance)("_mat-animation-noopable","NoopAnimations"===o._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,o){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return t})(),ME=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt]})}return t})();const rf=new se("MAT_OPTION_PARENT_COMPONENT"),xq=jr(class{});let Dq=0,Sq=(()=>{class t extends xq{constructor(e){super(),this._labelId="mat-optgroup-label-"+Dq++,this._inert=e?.inertGroups??!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(rf,8))};static#t=this.\u0275dir=Q({type:t,inputs:{label:"label"},features:[ve]})}return t})();const af=new se("MatOptgroup");let TE=(()=>{class t extends Sq{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-optgroup"]],hostAttrs:[1,"mat-mdc-optgroup"],hostVars:3,hostBindings:function(i,o){2&i&&Xe("role",o._inert?null:"group")("aria-disabled",o._inert?null:o.disabled.toString())("aria-labelledby",o._inert?null:o._labelId)},inputs:{disabled:"disabled"},exportAs:["matOptgroup"],features:[Ye([{provide:af,useExisting:t}]),ve],ngContentSelectors:sq,decls:5,vars:4,consts:[["role","presentation",1,"mat-mdc-optgroup-label",3,"id"],[1,"mdc-list-item__primary-text"]],template:function(i,o){1&i&&(Ut(aq),d(0,"span",0)(1,"span",1),h(2),Ze(3),l()(),Ze(4,1)),2&i&&(et("mdc-list-item--disabled",o.disabled),f("id",o._labelId),m(2),xe("",o.label," "))},styles:[".mat-mdc-optgroup{color:var(--mat-optgroup-label-text-color);font-family:var(--mat-optgroup-label-text-font);line-height:var(--mat-optgroup-label-text-line-height);font-size:var(--mat-optgroup-label-text-size);letter-spacing:var(--mat-optgroup-label-text-tracking);font-weight:var(--mat-optgroup-label-text-weight)}.mat-mdc-optgroup-label{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;min-height:48px}.mat-mdc-optgroup-label:focus{outline:none}[dir=rtl] .mat-mdc-optgroup-label,.mat-mdc-optgroup-label[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-optgroup-label.mdc-list-item--disabled{opacity:.38}.mat-mdc-optgroup-label .mdc-list-item__primary-text{font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;white-space:normal}"],encapsulation:2,changeDetection:0})}return t})(),kq=0;class IE{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let Mq=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=$e(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,r){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=r,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+kq++,this.onSelectionChange=new Ne,this._stateChanges=new qe}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!An(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new IE(this,e))}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(cq,7),2&i){let r;Oe(r=Ae())&&(o._text=r.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}})}return t})(),Tn=(()=>{class t extends Mq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(rf,8),_(af,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,o){1&i&&A("click",function(){return o._selectViaInteraction()})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("aria-selected",o.selected)("aria-disabled",o.disabled.toString()),et("mdc-list-item--selected",o.selected)("mat-mdc-option-multiple",o.multiple)("mat-mdc-option-active",o.active)("mdc-list-item--disabled",o.disabled))},exportAs:["matOption"],features:[ve],ngContentSelectors:mq,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox","aria-hidden","true",3,"disabled","state",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","aria-hidden","true","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(i,o){1&i&&(Ut(hq),y(0,lq,1,2,"mat-pseudo-checkbox",0),Ze(1),d(2,"span",1,2),Ze(4,1),l(),y(5,dq,1,1,"mat-pseudo-checkbox",3)(6,uq,2,1,"span",4),D(7,"div",5)),2&i&&(f("ngIf",o.multiple),m(5),f("ngIf",!o.multiple&&o.selected&&!o.hideSingleSelectionIndicator),m(),f("ngIf",o.group&&o.group._inert),m(),f("matRippleTrigger",o._getHostElement())("matRippleDisabled",o.disabled||o.disableRipple))},dependencies:[rs,It,wq],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();function EE(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),r=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}let sf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[as,Vn,Mt,ME]})}return t})();const AE={capture:!0},PE=["focus","click","mouseenter","touchstart"],y0="mat-ripple-loader-uninitialized",C0="mat-ripple-loader-class-name",RE="mat-ripple-loader-centered",cf="mat-ripple-loader-disabled";let NE=(()=>{class t{constructor(){this._document=De(ut,{optional:!0}),this._animationMode=De(ui,{optional:!0}),this._globalRippleOptions=De(El,{optional:!0}),this._platform=De(ci),this._ngZone=De(We),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const o=e.target.closest(`[${y0}]`);o&&this._createRipple(o)},this._ngZone.runOutsideAngular(()=>{for(const e of PE)this._document?.addEventListener(e,this._onInteraction,AE)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of PE)this._document?.removeEventListener(i,this._onInteraction,AE)}configureRipple(e,i){e.setAttribute(y0,""),(i.className||!e.hasAttribute(C0))&&e.setAttribute(C0,i.className||""),i.centered&&e.setAttribute(RE,""),i.disabled&&e.setAttribute(cf,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const o=this._hosts.get(e);o?o.disabled=i:i?e.setAttribute(cf,""):e.removeAttribute(cf)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const o=this._document.createElement("span");o.classList.add("mat-ripple",e.getAttribute(C0)),e.append(o);const r=new rs(new Be(o),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return r._isInitialized=!0,r.trigger=e,r.centered=e.hasAttribute(RE),r.disabled=e.hasAttribute(cf),this.attachRipple(e,r),r}attachRipple(e,i){e.removeAttribute(y0),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Tq=["*",[["mat-toolbar-row"]]],Iq=["*","mat-toolbar-row"],Eq=is(class{constructor(t){this._elementRef=t}});let Oq=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]})}return t})(),Aq=(()=>{class t extends Eq{constructor(e,i,o){super(e),this._platform=i,this._document=o}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(ut))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-toolbar"]],contentQueries:function(i,o,r){if(1&i&>(r,Oq,5),2&i){let a;Oe(a=Ae())&&(o._toolbarRows=a)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-toolbar-multiple-rows",o._toolbarRows.length>0)("mat-toolbar-single-row",0===o._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[ve],ngContentSelectors:Iq,decls:2,vars:0,template:function(i,o){1&i&&(Ut(Tq),Ze(0),Ze(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}return t})(),FE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();const LE=["mat-button",""],BE=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],VE=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],jE=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",Rq=["mat-icon-button",""],Nq=["*"],Fq=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],Lq=is(jr(ns(class{constructor(t){this._elementRef=t}})));let w0=(()=>{class t extends Lq{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e),this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._updateRippleDisabled()}constructor(e,i,o,r){super(e),this._platform=i,this._ngZone=o,this._animationMode=r,this._focusMonitor=De(zo),this._rippleLoader=De(NE),this._isFab=!1,this._disableRipple=!1,this._disabled=!1,this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-button-ripple"});const a=e.nativeElement.classList;for(const s of Fq)this._hasHostAttributes(s.selector)&&s.mdcClasses.forEach(c=>{a.add(c)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Vq=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})(),Yt=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),zE=(()=>{class t extends Vq{constructor(e,i,o,r){super(e,i,o,r)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null)("tabindex",o.disabled?-1:o.tabIndex)("aria-disabled",o.disabled.toString()),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[ve],attrs:LE,ngContentSelectors:VE,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(BE),D(0,"span",0),Ze(1),d(2,"span",1),Ze(3,1),l(),Ze(4,2),D(5,"span",2)(6,"span",3)),2&i&&et("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',jE],encapsulation:2,changeDetection:0})}return t})(),ba=(()=>{class t extends w0{constructor(e,i,o,r){super(e,i,o,r),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("disabled",o.disabled||null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[ve],attrs:Rq,ngContentSelectors:Nq,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,o){1&i&&(Ut(),D(0,"span",0),Ze(1),D(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',jE],encapsulation:2,changeDetection:0})}return t})(),lf=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,as,Mt]})}return t})();function ju(t,n){const e=J(t)?t:()=>t,i=o=>o.error(e());return new li(n?o=>n.schedule(i,0,o):i)}function x0(...t){const n=LI(t),{args:e,keys:i}=nE(t),o=new li(r=>{const{length:a}=e;if(!a)return void r.complete();const s=new Array(a);let c=a,u=a;for(let p=0;p{g||(g=!0,u--),s[p]=b},()=>c--,void 0,()=>{(!c||!g)&&(u||r.next(i?oE(i,s):s),r.complete())}))}});return n?o.pipe(d0(n)):o}function Li(t){return $i((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Fi(e,void 0,void 0,a=>{r=Yn(t(a,Li(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function ec(t){return $i((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function HE(t={}){const{connector:n=(()=>new qe),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let a,s,c,u=0,p=!1,g=!1;const b=()=>{s?.unsubscribe(),s=void 0},w=()=>{b(),a=c=void 0,p=g=!1},k=()=>{const T=a;w(),T?.unsubscribe()};return $i((T,z)=>{u++,!g&&!p&&b();const re=c=c??n();z.add(()=>{u--,0===u&&!g&&!p&&(s=D0(k,o))}),re.subscribe(z),!a&&u>0&&(a=new Ds({next:ae=>re.next(ae),error:ae=>{g=!0,b(),s=D0(w,e,ae),re.error(ae)},complete:()=>{p=!0,b(),s=D0(w,i),re.complete()}}),Yn(T).subscribe(a))})(r)}}function D0(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Ds({next:()=>{i.unsubscribe(),t()}});return Yn(n(...e)).subscribe(i)}function Ol(t,n){return J(n)?Pn(t,n,1):Pn(t,1)}function gn(t,n){return $i((e,i)=>{let o=null,r=0,a=!1;const s=()=>a&&!o&&i.complete();e.subscribe(Fi(i,c=>{o?.unsubscribe();let u=0;const p=r++;Yn(t(c,p)).subscribe(o=Fi(i,g=>i.next(n?n(c,g,p,u++):g),()=>{o=null,s()}))},()=>{a=!0,s()}))})}class df{}class uf{}class Jo{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(a):this.headers.set(r,[a])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Jo?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Jo;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Jo?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let a=this.headers.get(e);if(!a)return;a=a.filter(s=>-1===r.indexOf(s)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class zq{encodeKey(n){return UE(n)}encodeValue(n){return UE(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const Uq=/%(\d[a-f0-9])/gi,$q={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function UE(t){return encodeURIComponent(t).replace(Uq,(n,e)=>$q[e]??n)}function hf(t){return`${t}`}class ss{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new zq,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Hq(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[a,s]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(a)||[];c.push(s),e.set(a,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(hf):[hf(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ss({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(hf(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(hf(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class Gq{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function $E(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function GE(t){return typeof Blob<"u"&&t instanceof Blob}function qE(t){return typeof FormData<"u"&&t instanceof FormData}class zu{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function qq(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Jo,this.context??=new Gq,this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":sg.set(b,n.setHeaders[b]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,b)=>g.set(b,n.setParams[b]),u)),new zu(e,i,r,{params:u,headers:c,context:p,reportProgress:s,responseType:o,withCredentials:a})}}var cs=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(cs||{});class S0{constructor(n,e=Hu.Ok,i="OK"){this.headers=n.headers||new Jo,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class mf extends S0{constructor(n={}){super(n),this.type=cs.ResponseHeader}clone(n={}){return new mf({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class tc extends S0{constructor(n={}){super(n),this.type=cs.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new tc({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Al extends S0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var Hu=function(t){return t[t.Continue=100]="Continue",t[t.SwitchingProtocols=101]="SwitchingProtocols",t[t.Processing=102]="Processing",t[t.EarlyHints=103]="EarlyHints",t[t.Ok=200]="Ok",t[t.Created=201]="Created",t[t.Accepted=202]="Accepted",t[t.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",t[t.NoContent=204]="NoContent",t[t.ResetContent=205]="ResetContent",t[t.PartialContent=206]="PartialContent",t[t.MultiStatus=207]="MultiStatus",t[t.AlreadyReported=208]="AlreadyReported",t[t.ImUsed=226]="ImUsed",t[t.MultipleChoices=300]="MultipleChoices",t[t.MovedPermanently=301]="MovedPermanently",t[t.Found=302]="Found",t[t.SeeOther=303]="SeeOther",t[t.NotModified=304]="NotModified",t[t.UseProxy=305]="UseProxy",t[t.Unused=306]="Unused",t[t.TemporaryRedirect=307]="TemporaryRedirect",t[t.PermanentRedirect=308]="PermanentRedirect",t[t.BadRequest=400]="BadRequest",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Gone=410]="Gone",t[t.LengthRequired=411]="LengthRequired",t[t.PreconditionFailed=412]="PreconditionFailed",t[t.PayloadTooLarge=413]="PayloadTooLarge",t[t.UriTooLong=414]="UriTooLong",t[t.UnsupportedMediaType=415]="UnsupportedMediaType",t[t.RangeNotSatisfiable=416]="RangeNotSatisfiable",t[t.ExpectationFailed=417]="ExpectationFailed",t[t.ImATeapot=418]="ImATeapot",t[t.MisdirectedRequest=421]="MisdirectedRequest",t[t.UnprocessableEntity=422]="UnprocessableEntity",t[t.Locked=423]="Locked",t[t.FailedDependency=424]="FailedDependency",t[t.TooEarly=425]="TooEarly",t[t.UpgradeRequired=426]="UpgradeRequired",t[t.PreconditionRequired=428]="PreconditionRequired",t[t.TooManyRequests=429]="TooManyRequests",t[t.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",t[t.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",t[t.InternalServerError=500]="InternalServerError",t[t.NotImplemented=501]="NotImplemented",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t[t.HttpVersionNotSupported=505]="HttpVersionNotSupported",t[t.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",t[t.InsufficientStorage=507]="InsufficientStorage",t[t.LoopDetected=508]="LoopDetected",t[t.NotExtended=510]="NotExtended",t[t.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",t}(Hu||{});function k0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let pf=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof zu)r=e;else{let c,u;c=o.headers instanceof Jo?o.headers:new Jo(o.headers),o.params&&(u=o.params instanceof ss?o.params:new ss({fromObject:o.params})),r=new zu(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const a=Ke(r).pipe(Ol(c=>this.handler.handle(c)));if(e instanceof zu||"events"===o.observe)return a;const s=a.pipe(kt(c=>c instanceof tc));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return s.pipe(nt(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return s.pipe(nt(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return s.pipe(nt(c=>c.body))}case"response":return s;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ss).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,k0(o,i))}post(e,i,o={}){return this.request("POST",e,k0(o,i))}put(e,i,o={}){return this.request("PUT",e,k0(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(df))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function KE(t,n){return n(t)}function Xq(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const ZE=new se(""),Uu=new se(""),YE=new se(""),QE=new se("");function eW(){let t=null;return(n,e)=>{null===t&&(t=(De(ZE,{optional:!0})??[]).reduceRight(Xq,KE));const i=De(Vs),o=i.add();return t(n,e).pipe(ec(()=>i.remove(o)))}}let XE=(()=>{class t extends df{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=De(Vs);const o=De(QE,{optional:!0});this.backend=o??e}handle(e){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Uu),...this.injector.get(YE,[])]));this.chain=o.reduceRight((r,a)=>function Jq(t,n,e){return(i,o)=>Ha(e,()=>n(i,r=>t(r,o)))}(r,a,this.injector),KE)}const i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(ec(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||t)(X(uf),X(Ao))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const rW=/^\)\]\}',?\n/;let eO=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ue(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?Xi(i.\u0275loadImpl()):Ke(null)).pipe(gn(()=>new li(r=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((T,z)=>a.setRequestHeader(T,z.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const T=e.detectContentTypeHeader();null!==T&&a.setRequestHeader("Content-Type",T)}if(e.responseType){const T=e.responseType.toLowerCase();a.responseType="json"!==T?T:"text"}const s=e.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const T=a.statusText||"OK",z=new Jo(a.getAllResponseHeaders()),re=function aW(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return c=new mf({headers:z,status:a.status,statusText:T,url:re}),c},p=()=>{let{headers:T,status:z,statusText:re,url:ae}=u(),Ue=null;z!==Hu.NoContent&&(Ue=typeof a.response>"u"?a.responseText:a.response),0===z&&(z=Ue?Hu.Ok:0);let tt=z>=200&&z<300;if("json"===e.responseType&&"string"==typeof Ue){const ft=Ue;Ue=Ue.replace(rW,"");try{Ue=""!==Ue?JSON.parse(Ue):null}catch(zt){Ue=ft,tt&&(tt=!1,Ue={error:zt,text:Ue})}}tt?(r.next(new tc({body:Ue,headers:T,status:z,statusText:re,url:ae||void 0})),r.complete()):r.error(new Al({error:Ue,headers:T,status:z,statusText:re,url:ae||void 0}))},g=T=>{const{url:z}=u(),re=new Al({error:T,status:a.status||0,statusText:a.statusText||"Unknown Error",url:z||void 0});r.error(re)};let b=!1;const w=T=>{b||(r.next(u()),b=!0);let z={type:cs.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),"text"===e.responseType&&a.responseText&&(z.partialText=a.responseText),r.next(z)},k=T=>{let z={type:cs.UploadProgress,loaded:T.loaded};T.lengthComputable&&(z.total=T.total),r.next(z)};return a.addEventListener("load",p),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),e.reportProgress&&(a.addEventListener("progress",w),null!==s&&a.upload&&a.upload.addEventListener("progress",k)),a.send(s),r.next({type:cs.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",p),a.removeEventListener("timeout",g),e.reportProgress&&(a.removeEventListener("progress",w),null!==s&&a.upload&&a.upload.removeEventListener("progress",k)),a.readyState!==a.DONE&&a.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||t)(X(I2))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();const I0=new se(""),tO=new se("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),iO=new se("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class nO{}let lW=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=f2(e,this.cookieName),this.lastCookieString=e),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ra),X(tO))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function dW(t,n){const e=t.url.toLowerCase();if(!De(I0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=De(nO).getToken(),o=De(iO);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var ls=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(ls||{});function uW(...t){const n=[pf,eO,XE,{provide:df,useExisting:XE},{provide:uf,useExisting:eO},{provide:Uu,useValue:dW,multi:!0},{provide:I0,useValue:!0},{provide:nO,useClass:lW}];for(const e of t)n.push(...e.\u0275providers);return function Qh(t){return{\u0275providers:t}}(n)}const oO=new se("");function hW(){return function ic(t,n){return{\u0275kind:t,\u0275providers:n}}(ls.LegacyInterceptors,[{provide:oO,useFactory:eW},{provide:Uu,useExisting:oO,multi:!0}])}let mW=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[uW(hW())]})}return t})();const vW=["*"];let gf;function $u(t){return function yW(){if(void 0===gf&&(gf=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(gf=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return gf}()?.createHTML(t)||t}function uO(t){return Error(`Unable to find icon with the name "${t}"`)}function hO(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function mO(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class nc{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let _f=(()=>{class t{constructor(e,i,o,r){this._httpClient=e,this._sanitizer=i,this._errorHandler=r,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,r){return this._addSvgIconConfig(e,i,new nc(o,null,r))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,r){const a=this._sanitizer.sanitize(Bn.HTML,o);if(!a)throw mO(o);const s=$u(a);return this._addSvgIconConfig(e,i,new nc("",s,r))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new nc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const r=this._sanitizer.sanitize(Bn.HTML,i);if(!r)throw mO(i);const a=$u(r);return this._addSvgIconSetConfig(e,new nc("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(Bn.RESOURCE_URL,e);if(!i)throw hO(e);const o=this._cachedIconsByUrl.get(i);return o?Ke(bf(o)):this._loadSvgIconFromConfig(new nc(e,null)).pipe(qt(r=>this._cachedIconsByUrl.set(i,r)),nt(r=>bf(r)))}getNamedSvgIcon(e,i=""){const o=pO(i,e);let r=this._svgIconConfigs.get(o);if(r)return this._getSvgFromConfig(r);if(r=this._getIconConfigFromResolvers(i,e),r)return this._svgIconConfigs.set(o,r),this._getSvgFromConfig(r);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):ju(uO(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ke(bf(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(nt(i=>bf(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ke(o):x0(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Li(s=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(Bn.RESOURCE_URL,a.url)} failed: ${s.message}`;return this._errorHandler.handleError(new Error(u)),Ke(null)})))).pipe(nt(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw uO(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const r=i[o];if(r.svgText&&r.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(r),s=this._extractSvgIconFromSet(a,e,r.options);if(s)return s}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(qt(i=>e.svgText=i),nt(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ke(null):this._fetchIcon(e).pipe(qt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const r=e.querySelector(`[id="${i}"]`);if(!r)return null;const a=r.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const s=this._svgElementFromString($u(""));return s.appendChild(a),this._setSvgAttributes(s,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString($u("")),o=e.attributes;for(let r=0;r$u(u)),ec(()=>this._inProgressUrlFetches.delete(a)),HE());return this._inProgressUrlFetches.set(a,c),c}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(pO(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),fO=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],TW=fO.map(t=>`[${t}]`).join(", "),IW=/^url\(['"]?#(.*?)['"]?\)$/;let Mi=(()=>{class t extends DW{get inline(){return this._inline}set inline(e){this._inline=$e(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,r,a,s){super(e),this._iconRegistry=i,this._location=r,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=de.EMPTY,s&&(s.color&&(this.color=this.defaultColor=s.color),s.fontSet&&(this.fontSet=s.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,r)=>{o.forEach(a=>{r.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(TW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let r=0;r{const s=i[r],c=s.getAttribute(a),u=c?c.match(IW):null;if(u){let p=o.get(s);p||(p=[],o.set(s,p)),p.push({name:a,value:u[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Pt(1)).subscribe(r=>this._setSvgElement(r),r=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${r.message}`))})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(_f),oo("aria-hidden"),_(kW),_(Go),_(SW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("data-mat-icon-type",o._usingFontIcon()?"font":"svg")("data-mat-icon-name",o._svgName||o.fontIcon)("data-mat-icon-namespace",o._svgNamespace||o.fontSet)("fontIcon",o._usingFontIcon()?o.fontIcon:null),et("mat-icon-inline",o.inline)("mat-icon-no-color","primary"!==o.color&&"accent"!==o.color&&"warn"!==o.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[ve],ngContentSelectors:vW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return t})(),gO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();const EW=["*"],PW=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],RW=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],NW=new se("MAT_CARD_CONFIG");let Gu=(()=>{class t{constructor(e){this.appearance=e?.appearance||"raised"}static#e=this.\u0275fac=function(i){return new(i||t)(_(NW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-card-outlined","outlined"===o.appearance)("mdc-card--outlined","outlined"===o.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:EW,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation);--mdc-elevated-card-container-shape:4px;--mdc-outlined-card-container-shape:4px;--mdc-outlined-card-outline-width:1px}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return t})(),E0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return t})(),O0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return t})(),_O=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:RW,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,o){1&i&&(Ut(PW),Ze(0),d(1,"div",0),Ze(2,1),l(),Ze(3,2))},encapsulation:2,changeDetection:0})}return t})(),bO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,Mt]})}return t})();const VW=new se("MAT_PROGRESS_BAR_DEFAULT_OPTIONS"),zW=is(class{constructor(t){this._elementRef=t}},"primary");let vO=(()=>{class t extends zW{constructor(e,i,o,r,a){super(e),this._ngZone=i,this._changeDetectorRef=o,this._animationMode=r,this._isNoopAnimation=!1,this._value=0,this._bufferValue=0,this.animationEnd=new Ne,this._mode="determinate",this._transitionendHandler=s=>{0===this.animationEnd.observers.length||!s.target||!s.target.classList.contains("mdc-linear-progress__primary-bar")||("determinate"===this.mode||"buffer"===this.mode)&&this._ngZone.run(()=>this.animationEnd.next({value:this.value}))},this._isNoopAnimation="NoopAnimations"===r,a&&(a.color&&(this.color=this.defaultColor=a.color),this.mode=a.mode||this.mode)}get value(){return this._value}set value(e){this._value=yO(yi(e)),this._changeDetectorRef.markForCheck()}get bufferValue(){return this._bufferValue||0}set bufferValue(e){this._bufferValue=yO(yi(e)),this._changeDetectorRef.markForCheck()}get mode(){return this._mode}set mode(e){this._mode=e,this._changeDetectorRef.markForCheck()}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._transitionendHandler)})}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._transitionendHandler)}_getPrimaryBarTransform(){return`scaleX(${this._isIndeterminate()?1:this.value/100})`}_getBufferBarFlexBasis(){return`${"buffer"===this.mode?this.bufferValue:100}%`}_isIndeterminate(){return"indeterminate"===this.mode||"query"===this.mode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(Lt),_(ui,8),_(VW,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-bar"]],hostAttrs:["role","progressbar","aria-valuemin","0","aria-valuemax","100","tabindex","-1",1,"mat-mdc-progress-bar","mdc-linear-progress"],hostVars:8,hostBindings:function(i,o){2&i&&(Xe("aria-valuenow",o._isIndeterminate()?null:o.value)("mode",o.mode),et("_mat-animation-noopable",o._isNoopAnimation)("mdc-linear-progress--animation-ready",!o._isNoopAnimation)("mdc-linear-progress--indeterminate",o._isIndeterminate()))},inputs:{color:"color",value:"value",bufferValue:"bufferValue",mode:"mode"},outputs:{animationEnd:"animationEnd"},exportAs:["matProgressBar"],features:[ve],decls:7,vars:4,consts:[["aria-hidden","true",1,"mdc-linear-progress__buffer"],[1,"mdc-linear-progress__buffer-bar"],[1,"mdc-linear-progress__buffer-dots"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__primary-bar"],[1,"mdc-linear-progress__bar-inner"],["aria-hidden","true",1,"mdc-linear-progress__bar","mdc-linear-progress__secondary-bar"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"div",1)(2,"div",2),l(),d(3,"div",3),D(4,"span",4),l(),d(5,"div",5),D(6,"span",4),l()),2&i&&(m(),Sn("flex-basis",o._getBufferBarFlexBasis()),m(2),Sn("transform",o._getPrimaryBarTransform()))},styles:["@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}"],encapsulation:2,changeDetection:0})}return t})();function yO(t,n=0,e=100){return Math.max(n,Math.min(e,t))}let CO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt]})}return t})();function Ri(...t){const n=Eu(t),e=function w$(t,n){return"number"==typeof Qy(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Yn(i[0]):Ml(e)(Xi(i,n)):jo}let wO=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=$e(e)}get inset(){return this._inset}set inset(e){this._inset=$e(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,o){2&i&&(Xe("aria-orientation",o.vertical?"vertical":"horizontal"),et("mat-divider-vertical",o.vertical)("mat-divider-horizontal",!o.vertical)("mat-divider-inset",o.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,o){},styles:[".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return t})(),A0=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Mt]})}return t})();function P0(){return $i((t,n)=>{let e=null;t._refCount++;const i=Fi(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class R0 extends li{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Ow(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new de;const e=this.getSubject();n.add(this.source.subscribe(Fi(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=de.EMPTY)}return n}refCount(){return P0()(this)}}function Pl(t){return!!t&&(t instanceof li||J(t.lift)&&J(t.subscribe))}class vf{}function yf(t){return t&&"function"==typeof t.connect&&!(t instanceof R0)}class xO{applyChanges(n,e,i,o,r){n.forEachOperation((a,s,c)=>{let u,p;if(null==a.previousIndex){const g=i(a,s,c);u=e.createEmbeddedView(g.templateRef,g.context,g.index),p=1}else null==c?(e.remove(s),p=3):(u=e.get(s),e.move(u,c),p=2);r&&r({context:u?.context,operation:p,record:a})})}detach(){}}class qu{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new qe,e&&e.length&&(n?e.forEach(r=>this._markSelected(r)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(r=>this._markSelected(r)),e.filter(r=>!i.has(r)).forEach(r=>this._unmarkSelected(r));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}let N0=(()=>{class t{constructor(){this._listeners=[]}notify(e,i){for(let o of this._listeners)o(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Wu=new se("_ViewRepeater");let SO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be))};static#t=this.\u0275dir=Q({type:t})}return t})(),oc=(()=>{class t extends SO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const uo=new se(""),UW={provide:uo,useExisting:Qt(()=>Ci),multi:!0},GW=new se("");let Ci=(()=>{class t extends SO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function $W(){const t=Qa()?Qa().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ca),_(Be),_(GW,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o._handleInput(a.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(a){return o._compositionEnd(a.target.value)})},features:[Ye([UW]),ve]})}return t})();function ds(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function MO(t){return null!=t&&"number"==typeof t.length}const jn=new se(""),us=new se(""),qW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ee{static min(n){return function TO(t){return n=>{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(ds(n.value)||ds(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return EO(n)}static requiredTrue(n){return function OO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function AO(t){return ds(t.value)||qW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return PO(n)}static maxLength(n){return RO(n)}static pattern(n){return NO(n)}static nullValidator(n){return null}static compose(n){return zO(n)}static composeAsync(n){return HO(n)}}function EO(t){return ds(t.value)?{required:!0}:null}function PO(t){return n=>ds(n.value)||!MO(n.value)?null:n.value.lengthMO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function NO(t){if(!t)return Cf;let n,e;return"string"==typeof t?(e="","^"!==t.charAt(0)&&(e+="^"),e+=t,"$"!==t.charAt(t.length-1)&&(e+="$"),n=new RegExp(e)):(e=t.toString(),n=t),i=>{if(ds(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}function Cf(t){return null}function FO(t){return null!=t}function LO(t){return pu(t)?Xi(t):t}function BO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function VO(t,n){return n.map(e=>e(t))}function jO(t){return t.map(n=>function WW(t){return!t.validate}(n)?n:e=>n.validate(e))}function zO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return BO(VO(e,n))}}function F0(t){return null!=t?zO(jO(t)):null}function HO(t){if(!t)return null;const n=t.filter(FO);return 0==n.length?null:function(e){return x0(VO(e,n).map(LO)).pipe(nt(BO))}}function L0(t){return null!=t?HO(jO(t)):null}function UO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function $O(t){return t._rawValidators}function GO(t){return t._rawAsyncValidators}function B0(t){return t?Array.isArray(t)?t:[t]:[]}function wf(t,n){return Array.isArray(t)?t.includes(n):t===n}function qO(t,n){const e=B0(n);return B0(t).forEach(o=>{wf(e,o)||e.push(o)}),e}function WO(t,n){return B0(n).filter(e=>!wf(t,e))}class KO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=F0(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=L0(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class ho extends KO{get formDirective(){return null}get path(){return null}}class xr extends KO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class ZO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let _i=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xr,2))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[ve]})}return t})(),Bi=(()=>{class t extends ZO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&et("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[ve]})}return t})();const Ku="VALID",Df="INVALID",Rl="PENDING",Zu="DISABLED";function z0(t){return(Sf(t)?t.validators:t)||null}function H0(t,n){return(Sf(n)?n.asyncValidators:t)||null}function Sf(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function QO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new ue(1e3,"");if(!i[e])throw new ue(1001,"")}function XO(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new ue(1002,"")})}class kf{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ku}get invalid(){return this.status===Df}get pending(){return this.status==Rl}get disabled(){return this.status===Zu}get enabled(){return this.status!==Zu}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(qO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(qO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(WO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(WO(n,this._rawAsyncValidators))}hasValidator(n){return wf(this._rawValidators,n)}hasAsyncValidator(n){return wf(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Rl,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Zu,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Ku,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ku||this.status===Rl)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Zu:Ku}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Rl,this._hasOwnPendingAsyncValidator=!0;const e=LO(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?Zu:this.errors?Df:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Rl)?Rl:this._anyControlsHaveStatus(Df)?Df:Ku}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Sf(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function QW(t){return Array.isArray(t)?F0(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function XW(t){return Array.isArray(t)?L0(t):t||null}(this._rawAsyncValidators)}}class ti extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){XO(this,0,n),Object.keys(n).forEach(i=>{QO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class JO extends ti{}const rc=new se("CallSetDisabledState",{providedIn:"root",factory:()=>Yu}),Yu="always";function Mf(t,n){return[...n.path,t]}function Qu(t,n,e=Yu){U0(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function eK(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&eA(t,n)})}(t,n),function iK(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function tK(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&eA(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function JW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function Tf(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Ef(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function If(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function U0(t,n){const e=$O(t);null!==n.validator?t.setValidators(UO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=GO(t);null!==n.asyncValidator?t.setAsyncValidators(UO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();If(n._rawValidators,o),If(n._rawAsyncValidators,o)}function Ef(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=$O(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=GO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(a=>a!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return If(n._rawValidators,i),If(n._rawAsyncValidators,i),e}function eA(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function tA(t,n){U0(t,n)}function G0(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function iA(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function q0(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Ci?e=r:function rK(t){return Object.getPrototypeOf(t.constructor)===oc}(r)?i=r:o=r}),o||i||e||null}const sK={provide:ho,useExisting:Qt(()=>hs)},Xu=Promise.resolve();let hs=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new ti({},F0(e),L0(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Xu.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Qu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path),o=new ti({});tA(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Xu.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Xu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,iA(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{options:[ge.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([sK]),ve]})}return t})();function nA(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function oA(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const U=class extends kf{constructor(n=null,e,i){super(z0(e),H0(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Sf(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=oA(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){nA(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){nA(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){oA(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let rA=(()=>{class t extends ho{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})();const dK={provide:xr,useExisting:Qt(()=>Nl)},sA=Promise.resolve();let Nl=(()=>{class t extends xr{constructor(e,i,o,r,a,s){super(),this._changeDetectorRef=a,this.callSetDisabledState=s,this.control=new U,this._registered=!1,this.name="",this.update=new Ne,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),G0(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Qu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){sA.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&Cl(i);sA.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Mf(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,9),_(jn,10),_(us,10),_(uo,10),_(Lt,8),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"],options:[ge.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ye([dK]),ve,fi]})}return t})(),_n=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const uK={provide:uo,useExisting:Qt(()=>W0),multi:!0};let W0=(()=>{class t extends oc{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&A("input",function(a){return o.onChange(a.target.value)})("blur",function(){return o.onTouched()})},features:[Ye([uK]),ve]})}return t})();const K0=new se(""),fK={provide:xr,useExisting:Qt(()=>Fl)};let Fl=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=a,this.update=new Ne,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=q0(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&Tf(i,this,!1),Qu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}G0(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Tf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(uo,10),_(K0,8),_(rc,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControl",""]],inputs:{form:[ge.None,"formControl","form"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[Ye([fK]),ve,fi]})}return t})();const gK={provide:ho,useExisting:Qt(()=>wi)};let wi=(()=>{class t extends ho{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ne,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ef(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Qu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tf(e.control||null,e,!1),function aK(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,iA(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tf(i||null,e),(t=>t instanceof U)(o)&&(Qu(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);tA(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function nK(t,n){return Ef(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){U0(this.form,this),this._oldForm&&Ef(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(jn,10),_(us,10),_(rc,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&A("submit",function(a){return o.onSubmit(a)})("reset",function(){return o.onReset()})},inputs:{form:[ge.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ye([gK]),ve,fi]})}return t})();const _K={provide:ho,useExisting:Qt(()=>Ju)};let Ju=(()=>{class t extends rA{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formGroupName",""]],inputs:{name:[ge.None,"formGroupName","name"]},features:[Ye([_K]),ve]})}return t})();const bK={provide:ho,useExisting:Qt(()=>eh)};let eh=(()=>{class t extends ho{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){dA(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10))};static#t=this.\u0275dir=Q({type:t,selectors:[["","formArrayName",""]],inputs:{name:[ge.None,"formArrayName","name"]},features:[Ye([bK]),ve]})}return t})();function dA(t){return!(t instanceof Ju||t instanceof wi||t instanceof eh)}const vK={provide:xr,useExisting:Qt(()=>zi)};let zi=(()=>{class t extends xr{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new Ne,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=q0(0,r)}ngOnChanges(e){this._added||this._setUpControl(),G0(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Mf(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(_(ho,13),_(jn,10),_(us,10),_(uo,10),_(K0,8))};static#i=this.\u0275dir=Q({type:t,selectors:[["","formControlName",""]],inputs:{name:[ge.None,"formControlName","name"],isDisabled:[ge.None,"disabled","isDisabled"],model:[ge.None,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[Ye([vK]),ve,fi]})}return t})();function mA(t){return"number"==typeof t?t:parseInt(t,10)}let ac=(()=>{class t{constructor(){this._validator=Cf}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Cf,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();const TK={provide:jn,useExisting:Qt(()=>Do),multi:!0};let Do=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Cl,this.createValidator=e=>EO}enabled(e){return e}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ye([TK]),ve]})}return t})();const OK={provide:jn,useExisting:Qt(()=>X0),multi:!0};let X0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="minlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>PO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("minlength",o._enabled?o.minlength:null)},inputs:{minlength:"minlength"},features:[Ye([OK]),ve]})}return t})();const AK={provide:jn,useExisting:Qt(()=>J0),multi:!0};let J0=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>mA(e),this.createValidator=e=>RO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ye([AK]),ve]})}return t})();const PK={provide:jn,useExisting:Qt(()=>eC),multi:!0};let eC=(()=>{class t extends ac{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=e=>e,this.createValidator=e=>NO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Xe("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ye([PK]),ve]})}return t})(),bA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();class vA extends kf{constructor(n,e,i){super(z0(e),H0(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){XO(this,0,n),n.forEach((i,o)=>{QO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function yA(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let Dr=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return yA(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new ti(o,r)}record(e,i=null){const o=this._reduceControls(e);return new JO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(yA(i)?r=i:(r.validators=i,r.asyncValidators=o),new U(e,{...r,nonNullable:!0})):new U(e,i,o)}array(e,i,o){const r=e.map(a=>this._createControl(a));return new vA(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof U||e instanceof kf?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),RK=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[bA]})}return t})(),CA=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:K0,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:rc,useValue:e.callSetDisabledState??Yu}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[bA]})}return t})(),kA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Zp,Vn,Mt,as,ME,A0]})}return t})();class dZ extends qe{constructor(n=1/0,e=1/0,i=s0){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:a}=this;e||(i.push(n),!o&&i.push(r.now()+a)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let a=0;athis._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new li(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(kt(e=>e.some(i=>i.target===n)),function uZ(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,HE({connector:()=>new dZ(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}({bufferSize:1,refCount:!0}),ot(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let mZ=(()=>{class t{constructor(){this._observers=new Map,this._ngZone=De(We)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const o=i?.box||"content-box";return this._observers.has(o)||this._observers.set(o,new hZ(o)),this._observers.get(o).observe(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const pZ=["notch"],fZ=["matFormFieldNotchedOutline",""],gZ=["*"],_Z=["textField"],bZ=["iconPrefixContainer"],vZ=["textPrefixContainer"];function yZ(t,n){1&t&&D(0,"span",19)}function CZ(t,n){if(1&t&&(d(0,"label",17),Ze(1,1),y(2,yZ,1,0,"span",18),l()),2&t){const e=C(2);f("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Xe("for",e._control.id),m(2),f("ngIf",!e.hideRequiredMarker&&e._control.required)}}function wZ(t,n){1&t&&y(0,CZ,3,5,"label",16),2&t&&f("ngIf",C()._hasFloatingLabel())}function xZ(t,n){1&t&&D(0,"div",20)}function DZ(t,n){}function SZ(t,n){1&t&&y(0,DZ,0,0,"ng-template",22),2&t&&(C(2),f("ngTemplateOutlet",Ft(1)))}function kZ(t,n){if(1&t&&(d(0,"div",21),y(1,SZ,1,1,"ng-template",9),l()),2&t){const e=C();f("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),m(),f("ngIf",!e._forceDisplayInfixLabel())}}function MZ(t,n){1&t&&(d(0,"div",23,24),Ze(2,2),l())}function TZ(t,n){1&t&&(d(0,"div",25,26),Ze(2,3),l())}function IZ(t,n){}function EZ(t,n){1&t&&y(0,IZ,0,0,"ng-template",22),2&t&&(C(),f("ngTemplateOutlet",Ft(1)))}function OZ(t,n){1&t&&(d(0,"div",27),Ze(1,4),l())}function AZ(t,n){1&t&&(d(0,"div",28),Ze(1,5),l())}function PZ(t,n){1&t&&D(0,"div",29)}function RZ(t,n){1&t&&(d(0,"div",30),Ze(1,6),l()),2&t&&f("@transitionMessages",C()._subscriptAnimationState)}function NZ(t,n){if(1&t&&(d(0,"mat-hint",34),h(1),l()),2&t){const e=C(2);f("id",e._hintLabelId),m(),Pe(e.hintLabel)}}function FZ(t,n){if(1&t&&(d(0,"div",31),y(1,NZ,2,2,"mat-hint",32),Ze(2,7),D(3,"div",33),Ze(4,8),l()),2&t){const e=C();f("@transitionMessages",e._subscriptAnimationState),m(),f("ngIf",e.hintLabel)}}const LZ=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],BZ=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let xi=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-label"]]})}return t})(),VZ=0;const MA=new se("MatError");let iC=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+VZ++,e||i.nativeElement.setAttribute("aria-live","polite")}static#e=this.\u0275fac=function(i){return new(i||t)(oo("aria-live"),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},features:[Ye([{provide:MA,useExisting:t}])]})}return t})(),jZ=0,sc=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+jZ++}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("align",null),et("mat-mdc-form-field-hint-end","end"===o.align))},inputs:{align:"align",id:"id"}})}return t})();const zZ=new se("MatPrefix"),TA=new se("MatSuffix");let nC=(()=>{class t{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSuffix",""],["","matIconSuffix",""],["","matTextSuffix",""]],inputs:{_isTextSelector:[ge.None,"matTextSuffix","_isTextSelector"]},features:[Ye([{provide:TA,useExisting:t}])]})}return t})();const IA=new se("FloatingLabelParent");let EA=(()=>{class t{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=De(mZ),this._ngZone=De(We),this._parent=De(IA),this._resizeSubscription=new de}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function HZ(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-floating-label--float-above",o.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return t})();const OA="mdc-line-ripple--active",Of="mdc-line-ripple--deactivating";let AA=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const r=this._elementRef.nativeElement.classList,a=r.contains(Of);"opacity"===o.propertyName&&a&&r.remove(OA,Of)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Of),e.add(OA)}deactivate(){this._elementRef.nativeElement.classList.add(Of)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275dir=Q({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return t})(),PA=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,o){if(1&i&&vt(pZ,5),2&i){let r;Oe(r=Ae())&&(o._notch=r.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-notched-outline--notched",o.open)},inputs:{open:[ge.None,"matFormFieldNotchedOutlineOpen","open"]},attrs:fZ,ngContentSelectors:gZ,decls:5,vars:0,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],["notch",""],[1,"mdc-notched-outline__trailing"]],template:function(i,o){1&i&&(Ut(),D(0,"div",0),d(1,"div",1,2),Ze(3),l(),D(4,"div",3))},encapsulation:2,changeDetection:0})}return t})();const UZ={transitionMessages:Lo("transitionMessages",[mn("enter",Zt({opacity:1,transform:"translateY(0%)"})),Qi("void => enter",[Zt({opacity:0,transform:"translateY(-5px)"}),Yi("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let Af=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t})}return t})();const th=new se("MatFormField"),$Z=new se("MAT_FORM_FIELD_DEFAULT_OPTIONS");let RA=0,Di=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=$e(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=r,this._platform=a,this._defaults=s,this._animationMode=c,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+RA++,this._hintLabelId="mat-mdc-hint-"+RA++,this._subscriptAnimationState="",this._destroyed=new qe,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,s&&(s.appearance&&(this.appearance=s.appearance),this._hideRequiredMarker=!!s?.hideRequiredMarker,s.color&&(this.color=s.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(ot(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Ri(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ot(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(ot(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(r=>"start"===r.align):null,o=this._hintChildren?this._hintChildren.find(r=>"end"===r.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,r=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${r+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),_(fn),_(ci),_($Z,8),_(ui,8),_(ut))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,xi,5),gt(r,xi,7),gt(r,Af,5),gt(r,zZ,5),gt(r,TA,5),gt(r,MA,5),gt(r,sc,5)),2&i){let a;Oe(a=Ae())&&(o._labelChildNonStatic=a.first),Oe(a=Ae())&&(o._labelChildStatic=a.first),Oe(a=Ae())&&(o._formFieldControl=a.first),Oe(a=Ae())&&(o._prefixChildren=a),Oe(a=Ae())&&(o._suffixChildren=a),Oe(a=Ae())&&(o._errorChildren=a),Oe(a=Ae())&&(o._hintChildren=a)}},viewQuery:function(i,o){if(1&i&&(vt(_Z,5),vt(bZ,5),vt(vZ,5),vt(EA,5),vt(PA,5),vt(AA,5)),2&i){let r;Oe(r=Ae())&&(o._textField=r.first),Oe(r=Ae())&&(o._iconPrefixContainer=r.first),Oe(r=Ae())&&(o._textPrefixContainer=r.first),Oe(r=Ae())&&(o._floatingLabel=r.first),Oe(r=Ae())&&(o._notchedOutline=r.first),Oe(r=Ae())&&(o._lineRipple=r.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,o){2&i&&et("mat-mdc-form-field-label-always-float",o._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",o._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",o._hasIconSuffix)("mat-form-field-invalid",o._control.errorState)("mat-form-field-disabled",o._control.disabled)("mat-form-field-autofilled",o._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===o._animationMode)("mat-form-field-appearance-fill","fill"==o.appearance)("mat-form-field-appearance-outline","outline"==o.appearance)("mat-form-field-hide-placeholder",o._hasFloatingLabel()&&!o._shouldLabelFloat())("mat-focused",o._control.focused)("mat-primary","accent"!==o.color&&"warn"!==o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("ng-untouched",o._shouldForward("untouched"))("ng-touched",o._shouldForward("touched"))("ng-pristine",o._shouldForward("pristine"))("ng-dirty",o._shouldForward("dirty"))("ng-valid",o._shouldForward("valid"))("ng-invalid",o._shouldForward("invalid"))("ng-pending",o._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Ye([{provide:th,useExisting:t},{provide:IA,useExisting:t}])],ngContentSelectors:BZ,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(i,o){1&i&&(Ut(LZ),y(0,wZ,1,1,"ng-template",null,0,br),d(2,"div",1,2),A("click",function(a){return o._control.onContainerClick(a)}),y(4,xZ,1,0,"div",3),d(5,"div",4),y(6,kZ,2,2,"div",5)(7,MZ,3,0,"div",6)(8,TZ,3,0,"div",7),d(9,"div",8),y(10,EZ,1,1,"ng-template",9),Ze(11),l(),y(12,OZ,2,0,"div",10)(13,AZ,2,0,"div",11),l(),y(14,PZ,1,0,"div",12),l(),d(15,"div",13),y(16,RZ,2,1,"div",14)(17,FZ,5,2,"div",15),l()),2&i&&(m(2),et("mdc-text-field--filled",!o._hasOutline())("mdc-text-field--outlined",o._hasOutline())("mdc-text-field--no-label",!o._hasFloatingLabel())("mdc-text-field--disabled",o._control.disabled)("mdc-text-field--invalid",o._control.errorState),m(2),f("ngIf",!o._hasOutline()&&!o._control.disabled),m(2),f("ngIf",o._hasOutline()),m(),f("ngIf",o._hasIconPrefix),m(),f("ngIf",o._hasTextPrefix),m(2),f("ngIf",!o._hasOutline()||o._forceDisplayInfixLabel()),m(2),f("ngIf",o._hasTextSuffix),m(),f("ngIf",o._hasIconSuffix),m(),f("ngIf",!o._hasOutline()),m(),et("mat-mdc-form-field-subscript-dynamic-size","dynamic"===o.subscriptSizing),f("ngSwitch",o._getDisplayedMessages()),m(),f("ngSwitchCase","error"),m(),f("ngSwitchCase","hint"))},dependencies:[It,kp,xl,Sp,sc,EA,PA,AA],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[UZ.transitionMessages]},changeDetection:0})}return t})(),ih=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,Zp,Mt]})}return t})();const WZ=["addListener","removeListener"],KZ=["addEventListener","removeEventListener"],ZZ=["on","off"];function er(t,n,e,i){if(J(e)&&(i=e,e=void 0),i)return er(t,n,e).pipe(d0(i));const[o,r]=function XZ(t){return J(t.addEventListener)&&J(t.removeEventListener)}(t)?KZ.map(a=>s=>t[a](n,s,e)):function YZ(t){return J(t.addListener)&&J(t.removeListener)}(t)?WZ.map(LA(t,n)):function QZ(t){return J(t.on)&&J(t.off)}(t)?ZZ.map(LA(t,n)):[];if(!o&&n0(t))return Pn(a=>er(a,n,e))(Yn(t));if(!o)throw new TypeError("Invalid event target");return new li(a=>{const s=(...c)=>a.next(1r(s)})}function LA(t,n){return e=>i=>t[e](n,i)}function Pf(t=0,n,e=_G){let i=-1;return null!=n&&(FI(n)?e=n:i=n),new li(o=>{let r=function eY(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let a=0;return e.schedule(function(){o.closed||(o.next(a++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function oC(t,n=Pu){return function JZ(t){return $i((n,e)=>{let i=!1,o=null,r=null,a=!1;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const u=o;o=null,e.next(u)}a&&e.complete()},c=()=>{r=null,a&&e.complete()};n.subscribe(Fi(e,u=>{i=!0,o=u,r||Yn(t(u)).subscribe(r=Fi(e,s,c))},()=>{a=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>Pf(t,n))}const BA=Ja({passive:!0});let tY=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return jo;const i=_a(e),o=this._monitoredElements.get(i);if(o)return o.subject;const r=new qe,a="cdk-text-field-autofilled",s=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>r.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",s,BA),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:r,unlisten:()=>{i.removeEventListener("animationstart",s,BA)}}),r}stopMonitoring(e){const i=_a(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),VA=(()=>{class t{get minRows(){return this._minRows}set minRows(e){this._minRows=yi(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=yi(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){e=$e(e),this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,o,r){this._elementRef=e,this._platform=i,this._ngZone=o,this._destroyed=new qe,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=a=>{this._hasFocus="focus"===a.type},this._document=r,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{er(this._getWindow(),"resize").pipe(oC(16),ot(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",o=this._platform.FIREFOX,r=o&&this._hasFocus,a=o?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";r&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);const s=e.scrollHeight-4;return e.classList.remove(a),r&&(e.style.marginBottom=i),s}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,o=i.value;if(!e&&this._minRows===this._previousMinRows&&o===this._previousValue)return;const r=this._measureScrollHeight(),a=Math.max(r,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=o,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:o}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(We),_(ut,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,o){1&i&&A("input",function(){return o._noopInputHandler()})},inputs:{minRows:[ge.None,"cdkAutosizeMinRows","minRows"],maxRows:[ge.None,"cdkAutosizeMaxRows","maxRows"],enabled:[ge.None,"cdkTextareaAutosize","enabled"],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return t})(),iY=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const nY=new se("MAT_INPUT_VALUE_ACCESSOR"),oY=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let rY=0;const aY=v0(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new qe}});let qi=(()=>{class t extends aY{get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&RI().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g){super(s,r,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=u,this._formField=g,this._uid="mat-input-"+rY++,this.focused=!1,this.stateChanges=new qe,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(k=>RI().has(k)),this._iOSKeyupListener=k=>{const T=k.target;!T.value&&0===T.selectionStart&&0===T.selectionEnd&&(T.setSelectionRange(1,1),T.setSelectionRange(0,0))};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=c||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&p.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!g,this._isNativeSelect&&(this.controlType=b.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){oY.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ci),_(xr,10),_(hs,8),_(wi,8),_(nf),_(nY,10),_(tY),_(We),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,o){1&i&&A("focus",function(){return o._focusChanged(!0)})("blur",function(){return o._focusChanged(!1)})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id)("disabled",o.disabled)("required",o.required),Xe("name",o.name||null)("readonly",o.readonly&&!o._isNativeSelect||null)("aria-invalid",o.empty&&o.required?null:o.errorState)("aria-required",o.required)("id",o.id),et("mat-input-server",o._isServer)("mat-mdc-form-field-textarea-control",o._isInFormField&&o._isTextarea)("mat-mdc-form-field-input-control",o._isInFormField)("mdc-text-field__input",o._isInFormField)("mat-mdc-native-select-inline",o._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Ye([{provide:Af,useExisting:t}]),ve,fi]})}return t})(),jA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,ih,ih,iY,Mt]})}return t})();const nh={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=nh;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new de(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=nh;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=nh;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class cY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class sY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=nh.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(nh.cancelAnimationFrame(e),n._scheduled=void 0)}});let rC,dY=1;const Rf={};function zA(t){return t in Rf&&(delete Rf[t],!0)}const uY={setImmediate(t){const n=dY++;return Rf[n]=!0,rC||(rC=Promise.resolve()),rC.then(()=>zA(n)&&t()),n},clearImmediate(t){zA(t)}},{setImmediate:hY,clearImmediate:mY}=uY,Nf={setImmediate(...t){const{delegate:n}=Nf;return(n?.setImmediate||hY)(...t)},clearImmediate(t){const{delegate:n}=Nf;return(n?.clearImmediate||mY)(t)},delegate:void 0},aC=new class fY extends c0{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class pY extends a0{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=Nf.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(Nf.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});let oh=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new qe,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new li(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(oC(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ke()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(kt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=_a(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>er(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(X(We),X(ci),X(ut,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),rh=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new qe,this._elementScrolled=new li(a=>this.ngZone.runOutsideAngular(()=>er(this.elementRef.nativeElement,"scroll").pipe(ot(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=Iu()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==Iu()?e.left=e.right:1==Iu()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;NI()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==Iu()?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:a&&1==Iu()?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(oh),_(We),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),va=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new qe,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(oC(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(X(ci),X(We),X(ut,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ms=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),sC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Lu,ms,Lu,ms]})}return t})();class cC{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ll extends cC{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class ya extends cC{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class vY extends cC{constructor(n){super(),this.element=n instanceof Be?n.nativeElement:n}}class Ff{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ll?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof ya?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof vY?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class yY extends Ff{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const s=a.element,c=this._document.createComment("dom-portal");s.parentNode.insertBefore(c,s),this.outletElement.appendChild(s),this._attachedPortal=a,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(s,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||ji.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let CY=(()=>{class t extends ya{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[ve]})}return t})(),Ca=(()=>{class t extends Ff{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ne,this.attachDomPortal=r=>{const a=r.element,s=this._document.createComment("dom-portal");r.setAttachedHost(this),a.parentNode.insertBefore(s,a),this._getRootNode().appendChild(a),this._attachedPortal=r,super.setDisposeFn(()=>{s.parentNode&&s.parentNode.replaceChild(a,s)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[ge.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ve]})}return t})(),cc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const HA=NI();class wY{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=pn(-this._previousScrollPosition.left),n.style.top=pn(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),HA&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),HA&&(i.scrollBehavior=r,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class xY{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(kt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class UA{enable(){}disable(){}attach(){}}function lC(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function $A(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class DY{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();lC(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let SY=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new UA,this.close=a=>new xY(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new wY(this._viewportRuler,this._document),this.reposition=a=>new DY(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(X(oh),X(va),X(We),X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class Bl{constructor(n){if(this.scrollStrategy=new UA,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class kY{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let GA=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),MY=(()=>{class t extends GA{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let a=r.length-1;a>-1;a--)if(r[a]._keydownEvents.observers.length>0){const s=r[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(o)):s.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TY=(()=>{class t extends GA{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=pa(r)},this._clickListener=r=>{const a=pa(r),s="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let u=c.length-1;u>-1;u--){const p=c[u];if(p._outsidePointerEvents.observers.length<1||!p.hasAttached())continue;if(p.overlayElement.contains(a)||p.overlayElement.contains(s))break;const g=p._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>g.next(r)):g.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut),X(ci),X(We,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Lf=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||Yy()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(g),this._backdropTransitionendHandler=g=>{this._disposeBackdrop(g.target)},this._keydownEvents=new qe,this._outsidePointerEvents=new qe,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=pn(this._config.width),n.height=pn(this._config.height),n.minWidth=pn(this._config.minWidth),n.minHeight=pn(this._config.minHeight),n.maxWidth=pn(this._config.maxWidth),n.maxHeight=pn(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Kp(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(ot(Ri(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const qA="cdk-overlay-connected-position-bounding-box",IY=/([A-Za-z%]+)$/;class EY{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new qe,this._resizeSubscription=de.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(qA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let a;for(let s of this._preferredPositions){let c=this._getOriginPoint(n,o,s),u=this._getOverlayPoint(c,e,s),p=this._getOverlayFit(u,e,i,s);if(p.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(s,c);this._canFitWithFlexibleDimensions(p,u,i)?r.push({position:s,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,s)}):(!a||a.overlayFit.visibleAreac&&(c=p,s=u)}return this._isPushed=!1,void this._applyPosition(s.position,s.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&lc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(qA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,s=this._isRtl()?n.left:n.right;o="start"==i.originX?a:s}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=KA(e);let{x:a,y:s}=n,c=this._getOffset(o,"x"),u=this._getOffset(o,"y");c&&(a+=c),u&&(s+=u);let b=0-s,w=s+r.height-i.height,k=this._subtractOverflows(r.width,0-a,a+r.width-i.width),T=this._subtractOverflows(r.height,b,w),z=k*T;return{visibleArea:z,isCompletelyWithinViewport:r.width*r.height===z,fitsInViewportVertically:T===r.height,fitsInViewportHorizontally:k==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,a=WA(this._overlayRef.getConfig().minHeight),s=WA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=s&&s<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=KA(e),r=this._viewportRect,a=Math.max(n.x+o.width-r.width,0),s=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),u=Math.max(r.left-i.left-n.x,0);let p=0,g=0;return p=o.width<=r.width?u||-a:n.xk&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-k/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)b=i.width-n.x+this._viewportMargin,p=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)g=n.x,p=i.right-n.x;else{const w=Math.min(i.right-n.x+i.left,n.x),k=this._lastBoundingBoxSize.width;p=2*w,g=n.x-w,p>k&&!this._isInitialRender&&!this._growAfterOpen&&(g=n.x-k/2)}return{top:a,left:g,bottom:s,right:b,width:p,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=pn(i.height),o.top=pn(i.top),o.bottom=pn(i.bottom),o.width=pn(i.width),o.left=pn(i.left),o.right=pn(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=pn(r)),a&&(o.maxWidth=pn(a))}this._lastBoundingBoxSize=i,lc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){lc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){lc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const p=this._viewportRuler.getViewportScrollPosition();lc(i,this._getExactOverlayY(e,n,p)),lc(i,this._getExactOverlayX(e,n,p))}else i.position="static";let s="",c=this._getOffset(e,"x"),u=this._getOffset(e,"y");c&&(s+=`translateX(${c}px) `),u&&(s+=`translateY(${u}px)`),i.transform=s.trim(),a.maxHeight&&(o?i.maxHeight=pn(a.maxHeight):r&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=pn(a.maxWidth):r&&(i.maxWidth="")),lc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=pn(r.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=pn(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:$A(n,i),isOriginOutsideView:lC(n,i),isOverlayClipped:$A(e,i),isOverlayOutsideView:lC(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Kp(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Be)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function lc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function WA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(IY);return e&&"px"!==e?null:parseFloat(n)}return t||null}function KA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const ZA="cdk-global-overlay-wrapper";class OY{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(ZA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:a,maxHeight:s}=i,c=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),u=!("100%"!==r&&"100vh"!==r||s&&"100%"!==s&&"100vh"!==s),p=this._xPosition,g=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",k="",T="";c?T="flex-start":"center"===p?(T="center",b?k=g:w=g):b?"left"===p||"end"===p?(T="flex-end",w=g):("right"===p||"start"===p)&&(T="flex-start",k=g):"left"===p||"start"===p?(T="flex-start",w=g):("right"===p||"end"===p)&&(T="flex-end",k=g),n.position=this._cssPosition,n.marginLeft=c?"0":w,n.marginTop=u?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":k,e.justifyContent=T,e.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(ZA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let AY=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new OY}flexibleConnectedTo(e){return new EY(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(X(va),X(ut),X(ci),X(Lf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),PY=0,Qn=(()=>{class t{constructor(e,i,o,r,a,s,c,u,p,g,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=a,this._injector=s,this._ngZone=c,this._document=u,this._directionality=p,this._location=g,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),a=new Bl(e);return a.direction=a.direction||this._directionality.value,new ah(r,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+PY++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Za)),new yY(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(SY),X(Lf),X(Ns),X(AY),X(MY),X(ji),X(We),X(ut),X(fn),X(Ws),X(TY),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const RY=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],YA=new se("cdk-connected-overlay-scroll-strategy");let dC=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),QA=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=$e(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=$e(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=$e(e)}get push(){return this._push}set push(e){this._push=$e(e)}constructor(e,i,o,r,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=de.EMPTY,this._attachSubscription=de.EMPTY,this._detachSubscription=de.EMPTY,this._positionSubscription=de.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new Ne,this.positionChange=new Ne,this.attach=new Ne,this.detach=new Ne,this.overlayKeydown=new Ne,this.overlayOutsideClick=new Ne,this._templatePortal=new ya(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=RY);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Bl({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof dC?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function bY(t,n=!1){return $i((e,i)=>{let o=0;e.subscribe(Fi(i,r=>{const a=t(r,o++);(a||n)&&i.next(r),!a&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(gi),_(vi),_(YA),_(fn,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[ge.None,"cdkConnectedOverlayOrigin","origin"],positions:[ge.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[ge.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[ge.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[ge.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[ge.None,"cdkConnectedOverlayWidth","width"],height:[ge.None,"cdkConnectedOverlayHeight","height"],minWidth:[ge.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[ge.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[ge.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[ge.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[ge.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[ge.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[ge.None,"cdkConnectedOverlayOpen","open"],disableClose:[ge.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[ge.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[ge.None,"cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:[ge.None,"cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:[ge.None,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:[ge.None,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:[ge.None,"cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[fi]})}return t})();const FY={provide:YA,deps:[Qn],useFactory:function NY(t){return()=>t.scrollStrategies.reposition()}};let dc=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Qn,FY],imports:[Lu,cc,sC,sC]})}return t})();function Vl(t){return new li(n=>{Yn(t()).subscribe(n)})}const LY=["trigger"],BY=["panel"];function VY(t,n){if(1&t&&(d(0,"span",10),h(1),l()),2&t){const e=C();m(),Pe(e.placeholder)}}function jY(t,n){if(1&t&&(d(0,"span",14),h(1),l()),2&t){const e=C(2);m(),Pe(e.triggerValue)}}function zY(t,n){1&t&&Ze(0,0,["*ngSwitchCase","true"])}function HY(t,n){1&t&&(d(0,"span",11),y(1,jY,2,1,"span",12)(2,zY,1,0,"ng-content",13),l()),2&t&&(f("ngSwitch",!!C().customTrigger),m(2),f("ngSwitchCase",!0))}function UY(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"div",15,16),A("@transformPanel.done",function(o){return ie(e),ne(C()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))}),Ze(2,1),l()}if(2&t){const e=C();Mk("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),f("ngClass",e.panelClass)("@transformPanel","showing"),Xe("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const $Y=[[["mat-select-trigger"]],"*"],GY=["mat-select-trigger","*"],qY={transformPanelWrap:Lo("transformPanelWrap",[Qi("* => void",Cy("@transformPanel",[yy()],{optional:!0}))]),transformPanel:Lo("transformPanel",[mn("void",Zt({opacity:0,transform:"scale(1, 0.8)"})),Qi("void => showing",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1, 1)"}))),Qi("* => void",Yi("100ms linear",Zt({opacity:0})))])};let XA=0;const JA=new se("mat-select-scroll-strategy"),KY=new se("MAT_SELECT_CONFIG"),ZY={provide:JA,deps:[Qn],useFactory:function WY(t){return()=>t.scrollStrategies.reposition()}},YY=new se("MatSelectTrigger");class QY{constructor(n,e){this.source=n,this.value=e}}const XY=ns(os(jr(v0(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new qe}}))));let JY=(()=>{class t extends XY{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=$e(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=$e(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=yi(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,r,a,s,c,u,p,g,b,w,k,T){super(a,r,c,u,g),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._parentFormField=p,this._liveAnnouncer=k,this._defaultOptions=T,this._panelOpen=!1,this._compareWith=(z,re)=>z===re,this._uid="mat-select-"+XA++,this._triggerAriaLabelledBy=null,this._destroy=new qe,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+XA++,this._panelDoneAnimatingStream=new qe,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=Vl(()=>{const z=this.options;return z?z.changes.pipe(an(z),gn(()=>Ri(...z.map(re=>re.onSelectionChange)))):this._ngZone.onStable.pipe(Pt(1),gn(()=>this.optionSelectionChanges))}),this.openedChange=new Ne,this._openedStream=this.openedChange.pipe(kt(z=>z),nt(()=>{})),this._closedStream=this.openedChange.pipe(kt(z=>!z),nt(()=>{})),this.selectionChange=new Ne,this.valueChange=new Ne,this._trackedModal=null,this.ngControl&&(this.ngControl.valueAccessor=this),null!=T?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=T.typeaheadDebounceInterval),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new qu(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ru(),ot(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(ot(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(an(null),ot(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,r=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&r&&!An(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const s=this.selected;a.onKeydown(e);const c=this.selected;c&&s!==c&&this._liveAnnouncer.announce(c.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,r=40===o||38===o,a=i.isTyping();if(r&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||An(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const s=this.options.some(c=>!c.disabled&&!c.selected);this.options.forEach(c=>{c.disabled||(s?c.select():c.deselect())})}else{const s=i.activeItemIndex;i.onKeydown(e),this._multiple&&r&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==s&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Pt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new hE(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Ri(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(ot(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Ri(...this.options.map(i=>i._stateChanges)).pipe(ot(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}static#e=this.\u0275fac=function(i){return new(i||t)(_(va),_(Lt),_(We),_(nf),_(Be),_(fn,8),_(hs,8),_(wi,8),_(th,8),_(xr,10),oo("tabindex"),_(JA),_(g0),_(KY,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(LY,5),vt(BY,5),vt(QA,5)),2&i){let r;Oe(r=Ae())&&(o.trigger=r.first),Oe(r=Ae())&&(o.panel=r.first),Oe(r=Ae())&&(o._overlayDir=r.first)}},inputs:{userAriaDescribedBy:[ge.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[ve,fi]})}return t})(),Xn=(()=>{class t extends JY{constructor(){super(...arguments),this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(ot(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}open(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,r=EE(e,this.options,this.optionGroups),a=i._getHostElement();o.scrollTop=0===e&&1===r?0:OE(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new QY(this,e)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof dC?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-select"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,YY,5),gt(r,Tn,5),gt(r,af,5)),2&i){let a;Oe(a=Ae())&&(o.customTrigger=a.first),Oe(a=Ae())&&(o.options=a),Oe(a=Ae())&&(o.optionGroups=a)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)})("focus",function(){return o._onFocus()})("blur",function(){return o._onBlur()}),2&i&&(Xe("id",o.id)("tabindex",o.tabIndex)("aria-controls",o.panelOpen?o.id+"-panel":null)("aria-expanded",o.panelOpen)("aria-label",o.ariaLabel||null)("aria-required",o.required.toString())("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState)("aria-activedescendant",o._getAriaActiveDescendant()),et("mat-mdc-select-disabled",o.disabled)("mat-mdc-select-invalid",o.errorState)("mat-mdc-select-required",o.required)("mat-mdc-select-empty",o.empty)("mat-mdc-select-multiple",o.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",panelWidth:"panelWidth",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[Ye([{provide:Af,useExisting:t},{provide:rf,useExisting:t}]),ve],ngContentSelectors:GY,decls:11,vars:10,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(i,o){if(1&i&&(Ut($Y),d(0,"div",0,1),A("click",function(){return o.toggle()}),d(3,"div",2),y(4,VY,2,1,"span",3)(5,HY,3,2,"span",4),l(),d(6,"div",5)(7,"div",6),ei(),d(8,"svg",7),D(9,"path",8),l()()()(),y(10,UY,3,9,"ng-template",9),A("backdropClick",function(){return o.close()})("attach",function(){return o._onAttached()})("detach",function(){return o.close()})),2&i){const r=Ft(1);m(3),f("ngSwitch",o.empty),Xe("id",o._valueId),m(),f("ngSwitchCase",!0),m(),f("ngSwitchCase",!1),m(5),f("cdkConnectedOverlayPanelClass",o._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",o._scrollStrategy)("cdkConnectedOverlayOrigin",o._preferredOverlayOrigin||r)("cdkConnectedOverlayOpen",o.panelOpen)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayWidth",o._overlayWidth)}},dependencies:[yr,xl,Sp,y2,QA,dC],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[qY.transformPanel]},changeDetection:0})}return t})(),uC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ZY],imports:[Vn,dc,sf,Mt,ms,ih,sf,Mt]})}return t})();function Bf(t){return nt(()=>t)}function eP(t,n){return n?e=>Nu(n.pipe(Pt(1),function eQ(){return $i((t,n)=>{t.subscribe(Fi(n,oi))})}()),e.pipe(eP(t))):Pn((e,i)=>Yn(t(e,i)).pipe(Pt(1),Bf(e)))}function hC(t,n=Pu){const e=Pf(t,n);return eP(()=>e)}const tQ=["mat-menu-item",""];function iQ(t,n){1&t&&(ei(),d(0,"svg",3),D(1,"polygon",4),l())}const nQ=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],oQ=["mat-icon, [matMenuItemIcon]","*"];function rQ(t,n){if(1&t){const e=_e();d(0,"div",0),A("keydown",function(o){return ie(e),ne(C()._handleKeydown(o))})("click",function(){return ie(e),ne(C().closed.emit("click"))})("@transformMenu.start",function(o){return ie(e),ne(C()._onAnimationStart(o))})("@transformMenu.done",function(o){return ie(e),ne(C()._onAnimationDone(o))}),d(1,"div",1),Ze(2),l()()}if(2&t){const e=C();f("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Xe("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const aQ=["*"],mC=new se("MAT_MENU_PANEL"),sQ=ns(jr(class{}));let wa=(()=>{class t extends sQ{constructor(e,i,o,r,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=r,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new qe,this._focused=new qe,this._highlighted=!1,this._triggersSubmenu=!1,r?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Yi("120ms cubic-bezier(0, 0, 0.2, 1)",Zt({opacity:1,transform:"scale(1)"}))),Qi("* => void",Yi("100ms 25ms linear",Zt({opacity:0})))]),fadeInItems:Lo("fadeInItems",[mn("showing",Zt({opacity:1})),Qi("void => *",[Zt({opacity:0}),Yi("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lQ=0;const tP=new se("mat-menu-default-options",{providedIn:"root",factory:function dQ(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let sh=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=$e(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=$e(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,r){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=r,this._directDescendantItems=new oa,this._classList={},this._panelAnimationState="void",this._animationDone=new qe,this.closed=new Ne,this.close=this.closed,this.panelId="mat-menu-panel-"+lQ++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new Jp(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(e=>Ri(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),r=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[r]&&!o[r].disabled?i.setActiveItem(r):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(an(this._directDescendantItems),gn(i=>Ri(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:An(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,r=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!r||r===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(an(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275dir=Q({type:t,contentQueries:function(i,o,r){if(1&i&&(gt(r,cQ,5),gt(r,wa,5),gt(r,wa,4)),2&i){let a;Oe(a=Ae())&&(o.lazyContent=a.first),Oe(a=Ae())&&(o._allItems=a),Oe(a=Ae())&&(o.items=a)}},viewQuery:function(i,o){if(1&i&&vt(gi,5),2&i){let r;Oe(r=Ae())&&(o.templateRef=r.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:[ge.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}})}return t})(),jl=(()=>{class t extends sh{constructor(e,i,o,r){super(e,i,o,r),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(We),_(tP),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration",""],hostVars:3,hostBindings:function(i,o){2&i&&Xe("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Ye([{provide:mC,useExisting:t}]),ve],ngContentSelectors:aQ,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content"]],template:function(i,o){1&i&&(Ut(),y(0,rQ,3,6,"ng-template"))},dependencies:[yr],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Vf.transformMenu,Vf.fadeInItems]},changeDetection:0})}return t})();const iP=new se("mat-menu-scroll-strategy"),hQ={provide:iP,deps:[Qn],useFactory:function uQ(t){return()=>t.scrollStrategies.reposition()}},nP=Ja({passive:!0});let mQ=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,r,a,s,c,u,p){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=s,this._dir=c,this._focusMonitor=u,this._ngZone=p,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=de.EMPTY,this._hoverSubscription=de.EMPTY,this._menuCloseSubscription=de.EMPTY,this._changeDetectorRef=De(Lt),this._handleTouchStart=g=>{f0(g)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ne,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ne,this.onMenuClose=this.menuClosed,this._scrollStrategy=r,this._parentMaterialMenu=a instanceof sh?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,nP)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,nP),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),r=o.positionStrategy;this._setPosition(e,r),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof sh&&(e._startAnimation(),e._directDescendantItems.changes.pipe(ot(e.close)).subscribe(()=>{r.withLockedPosition(!1).reapplyLastPosition(),r.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof sh?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(kt(o=>"void"===o.toState),Pt(1),ot(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Bl({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const r="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(r,a)):e.setPositionClasses(r,a)})}_setPosition(e,i){let[o,r]="before"===e.xPosition?["end","start"]:["start","end"],[a,s]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[c,u]=[a,s],[p,g]=[o,r],b=0;if(this.triggersSubmenu()){if(g=o="before"===e.xPosition?"start":"end",r=p="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(c="top"===a?"bottom":"top",u="top"===s?"bottom":"top");i.withPositions([{originX:o,originY:c,overlayX:p,overlayY:a,offsetY:b},{originX:r,originY:c,overlayX:g,overlayY:a,offsetY:b},{originX:o,originY:u,overlayX:p,overlayY:s,offsetY:-b},{originX:r,originY:u,overlayX:g,overlayY:s,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Ri(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ke(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(kt(a=>a!==this._menuItemInstance),kt(()=>this._menuOpen)):Ke(),i)}_handleMousedown(e){p0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(kt(e=>e===this._menuItemInstance&&!e.disabled),hC(0,aC)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof sh&&this.menu._isAnimating?this.menu._animationDone.pipe(Pt(1),hC(0,aC),ot(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ya(e.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(vi),_(iP),_(mC,8),_(wa,10),_(fn,8),_(zo),_(We))};static#t=this.\u0275dir=Q({type:t,hostVars:3,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("mousedown",function(a){return o._handleMousedown(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("aria-haspopup",o.menu?"menu":null)("aria-expanded",o.menuOpen)("aria-controls",o.menuOpen?o.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[ge.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[ge.None,"matMenuTriggerFor","menu"],menuData:[ge.None,"matMenuTriggerData","menuData"],restoreFocus:[ge.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}})}return t})(),zl=(()=>{class t extends mQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[ve]})}return t})(),oP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[hQ],imports:[Vn,as,Mt,dc,ms,Mt]})}return t})();const pQ=[[["caption"]],[["colgroup"],["col"]]],fQ=["caption","colgroup, col"];function pC(t){return class extends t{get sticky(){return this._sticky}set sticky(n){const e=this._sticky;this._sticky=$e(n),this._hasStickyChanged=e!==this._sticky}hasStickyChanged(){const n=this._hasStickyChanged;return this._hasStickyChanged=!1,n}resetStickyChanged(){this._hasStickyChanged=!1}constructor(...n){super(...n),this._sticky=!1,this._hasStickyChanged=!1}}}const Hl=new se("CDK_TABLE");let Ul=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCellDef",""]]})}return t})(),$l=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderCellDef",""]]})}return t})(),jf=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterCellDef",""]]})}return t})();class vQ{}const yQ=pC(vQ);let xa=(()=>{class t extends yQ{get name(){return this._name}set name(e){this._setNameInput(e)}get stickyEnd(){return this._stickyEnd}set stickyEnd(e){const i=this._stickyEnd;this._stickyEnd=$e(e),this._hasStickyChanged=i!==this._stickyEnd}constructor(e){super(),this._table=e,this._stickyEnd=!1}_updateColumnCssClassName(){this._columnCssClassName=[`cdk-column-${this.cssClassFriendlyName}`]}_setNameInput(e){e&&(this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-"),this._updateColumnCssClassName())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkColumnDef",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Ul,5),gt(r,$l,5),gt(r,jf,5)),2&i){let a;Oe(a=Ae())&&(o.cell=a.first),Oe(a=Ae())&&(o.headerCell=a.first),Oe(a=Ae())&&(o.footerCell=a.first)}},inputs:{sticky:"sticky",name:[ge.None,"cdkColumnDef","name"],stickyEnd:"stickyEnd"},features:[Ye([{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})();class fC{constructor(n,e){e.nativeElement.classList.add(...n._columnCssClassName)}}let gC=(()=>{class t extends fC{constructor(e,i){super(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-header-cell"],["th","cdk-header-cell",""]],hostAttrs:["role","columnheader",1,"cdk-header-cell"],features:[ve]})}return t})(),_C=(()=>{class t extends fC{constructor(e,i){if(super(e,i),1===e._table?._elementRef.nativeElement.nodeType){const o=e._table._elementRef.nativeElement.getAttribute("role");i.nativeElement.setAttribute("role","grid"===o||"treegrid"===o?"gridcell":"cell")}}static#e=this.\u0275fac=function(i){return new(i||t)(_(xa),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-cell"],["td","cdk-cell",""]],hostAttrs:[1,"cdk-cell"],features:[ve]})}return t})();class aP{constructor(){this.tasks=[],this.endTasks=[]}}const bC=new se("_COALESCED_STYLE_SCHEDULER");let sP=(()=>{class t{constructor(e){this._ngZone=e,this._currentSchedule=null,this._destroyed=new qe}schedule(e){this._createScheduleIfNeeded(),this._currentSchedule.tasks.push(e)}scheduleEnd(e){this._createScheduleIfNeeded(),this._currentSchedule.endTasks.push(e)}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}_createScheduleIfNeeded(){this._currentSchedule||(this._currentSchedule=new aP,this._getScheduleObservable().pipe(ot(this._destroyed)).subscribe(()=>{for(;this._currentSchedule.tasks.length||this._currentSchedule.endTasks.length;){const e=this._currentSchedule;this._currentSchedule=new aP;for(const i of e.tasks)i();for(const i of e.endTasks)i()}this._currentSchedule=null}))}_getScheduleObservable(){return this._ngZone.isStable?Xi(Promise.resolve(void 0)):this._ngZone.onStable.pipe(Pt(1))}static#e=this.\u0275fac=function(i){return new(i||t)(X(We))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),vC=(()=>{class t{constructor(e,i){this.template=e,this._differs=i}ngOnChanges(e){if(!this._columnsDiffer){const i=e.columns&&e.columns.currentValue||[];this._columnsDiffer=this._differs.find(i).create(),this._columnsDiffer.diff(i)}}getColumnsDiff(){return this._columnsDiffer.diff(this.columns)}extractCellTemplate(e){return this instanceof ch?e.headerCell.template:this instanceof lh?e.footerCell.template:e.cell.template}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr))};static#t=this.\u0275dir=Q({type:t,features:[fi]})}return t})();class CQ extends vC{}const wQ=pC(CQ);let ch=(()=>{class t extends wQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkHeaderRowDef",""]],inputs:{columns:[ge.None,"cdkHeaderRowDef","columns"],sticky:[ge.None,"cdkHeaderRowDefSticky","sticky"]},features:[ve,fi]})}return t})();class xQ extends vC{}const DQ=pC(xQ);let lh=(()=>{class t extends DQ{constructor(e,i,o){super(e,i),this._table=o}ngOnChanges(e){super.ngOnChanges(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkFooterRowDef",""]],inputs:{columns:[ge.None,"cdkFooterRowDef","columns"],sticky:[ge.None,"cdkFooterRowDefSticky","sticky"]},features:[ve,fi]})}return t})(),zf=(()=>{class t extends vC{constructor(e,i,o){super(e,i),this._table=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(fr),_(Hl,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkRowDef",""]],inputs:{columns:[ge.None,"cdkRowDefColumns","columns"],when:[ge.None,"cdkRowDefWhen","when"]},features:[ve]})}return t})(),Da=(()=>{class t{static#e=this.mostRecentCellOutlet=null;constructor(e){this._viewContainer=e,t.mostRecentCellOutlet=this}ngOnDestroy(){t.mostRecentCellOutlet===this&&(t.mostRecentCellOutlet=null)}static#t=this.\u0275fac=function(i){return new(i||t)(_(vi))};static#i=this.\u0275dir=Q({type:t,selectors:[["","cdkCellOutlet",""]]})}return t})(),yC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-header-row"],["tr","cdk-header-row",""]],hostAttrs:["role","row",1,"cdk-header-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),wC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-row"],["tr","cdk-row",""]],hostAttrs:["role","row",1,"cdk-row"],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),Hf=(()=>{class t{constructor(e){this.templateRef=e,this._contentClassName="cdk-no-data-row"}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","cdkNoDataRow",""]]})}return t})();const cP=["top","bottom","left","right"];class SQ{constructor(n,e,i,o,r=!0,a=!0,s){this._isNativeHtmlTable=n,this._stickCellCss=e,this.direction=i,this._coalescedStyleScheduler=o,this._isBrowser=r,this._needsPositionStickyOnElement=a,this._positionListener=s,this._cachedCellWidths=[],this._borderCellCss={top:`${e}-border-elem-top`,bottom:`${e}-border-elem-bottom`,left:`${e}-border-elem-left`,right:`${e}-border-elem-right`}}clearStickyPositioning(n,e){const i=[];for(const o of n)if(o.nodeType===o.ELEMENT_NODE){i.push(o);for(let r=0;r{for(const o of i)this._removeStickyStyle(o,e)})}updateStickyColumns(n,e,i,o=!0){if(!n.length||!this._isBrowser||!e.some(b=>b)&&!i.some(b=>b))return void(this._positionListener&&(this._positionListener.stickyColumnsUpdated({sizes:[]}),this._positionListener.stickyEndColumnsUpdated({sizes:[]})));const r=n[0],a=r.children.length,s=this._getCellWidths(r,o),c=this._getStickyStartColumnPositions(s,e),u=this._getStickyEndColumnPositions(s,i),p=e.lastIndexOf(!0),g=i.indexOf(!0);this._coalescedStyleScheduler.schedule(()=>{const b="rtl"===this.direction,w=b?"right":"left",k=b?"left":"right";for(const T of n)for(let z=0;ze[z]?T:null)}),this._positionListener.stickyEndColumnsUpdated({sizes:-1===g?[]:s.slice(g).map((T,z)=>i[z+g]?T:null).reverse()}))})}stickRows(n,e,i){if(!this._isBrowser)return;const o="bottom"===i?n.slice().reverse():n,r="bottom"===i?e.slice().reverse():e,a=[],s=[],c=[];for(let p=0,g=0;p{for(let p=0;p{e.some(o=>!o)?this._removeStickyStyle(i,["bottom"]):this._addStickyStyle(i,"bottom",0,!1)})}_removeStickyStyle(n,e){for(const o of e)n.style[o]="",n.classList.remove(this._borderCellCss[o]);cP.some(o=>-1===e.indexOf(o)&&n.style[o])?n.style.zIndex=this._getCalculatedZIndex(n):(n.style.zIndex="",this._needsPositionStickyOnElement&&(n.style.position=""),n.classList.remove(this._stickCellCss))}_addStickyStyle(n,e,i,o){n.classList.add(this._stickCellCss),o&&n.classList.add(this._borderCellCss[e]),n.style[e]=`${i}px`,n.style.zIndex=this._getCalculatedZIndex(n),this._needsPositionStickyOnElement&&(n.style.cssText+="position: -webkit-sticky; position: sticky; ")}_getCalculatedZIndex(n){const e={top:100,bottom:10,left:1,right:1};let i=0;for(const o of cP)n.style[o]&&(i+=e[o]);return i?`${i}`:""}_getCellWidths(n,e=!0){if(!e&&this._cachedCellWidths.length)return this._cachedCellWidths;const i=[],o=n.children;for(let r=0;r0;r--)e[r]&&(i[r]=o,o+=n[r]);return i}}const xC=new se("CDK_SPL");let Uf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","rowOutlet",""]]})}return t})(),$f=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","headerRowOutlet",""]]})}return t})(),Gf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","footerRowOutlet",""]]})}return t})(),qf=(()=>{class t{constructor(e,i){this.viewContainer=e,this.elementRef=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(Be))};static#t=this.\u0275dir=Q({type:t,selectors:[["","noDataRowOutlet",""]]})}return t})(),Wf=(()=>{class t{get trackBy(){return this._trackByFn}set trackBy(e){this._trackByFn=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource!==e&&this._switchDataSource(e)}get multiTemplateDataRows(){return this._multiTemplateDataRows}set multiTemplateDataRows(e){this._multiTemplateDataRows=$e(e),this._rowOutlet&&this._rowOutlet.viewContainer.length&&(this._forceRenderDataRows(),this.updateStickyColumnStyles())}get fixedLayout(){return this._fixedLayout}set fixedLayout(e){this._fixedLayout=$e(e),this._forceRecalculateCellWidths=!0,this._stickyColumnStylesNeedReset=!0}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._differs=e,this._changeDetectorRef=i,this._elementRef=o,this._dir=a,this._platform=c,this._viewRepeater=u,this._coalescedStyleScheduler=p,this._viewportRuler=g,this._stickyPositioningListener=b,this._ngZone=w,this._onDestroy=new qe,this._columnDefsByName=new Map,this._customColumnDefs=new Set,this._customRowDefs=new Set,this._customHeaderRowDefs=new Set,this._customFooterRowDefs=new Set,this._headerRowDefChanged=!0,this._footerRowDefChanged=!0,this._stickyColumnStylesNeedReset=!0,this._forceRecalculateCellWidths=!0,this._cachedRenderRowsMap=new Map,this.stickyCssClass="cdk-table-sticky",this.needsPositionStickyOnElement=!0,this._isShowingNoDataRow=!1,this._multiTemplateDataRows=!1,this._fixedLayout=!1,this.contentChanged=new Ne,this.viewChange=new pt({start:0,end:Number.MAX_VALUE}),r||this._elementRef.nativeElement.setAttribute("role","table"),this._document=s,this._isNativeHtmlTable="TABLE"===this._elementRef.nativeElement.nodeName}ngOnInit(){this._setupStickyStyler(),this._isNativeHtmlTable&&this._applyNativeTableSections(),this._dataDiffer=this._differs.find([]).create((e,i)=>this.trackBy?this.trackBy(i.dataIndex,i.data):i),this._viewportRuler.change().pipe(ot(this._onDestroy)).subscribe(()=>{this._forceRecalculateCellWidths=!0})}ngAfterContentChecked(){this._cacheRowDefs(),this._cacheColumnDefs();const i=this._renderUpdatedColumns()||this._headerRowDefChanged||this._footerRowDefChanged;this._stickyColumnStylesNeedReset=this._stickyColumnStylesNeedReset||i,this._forceRecalculateCellWidths=i,this._headerRowDefChanged&&(this._forceRenderHeaderRows(),this._headerRowDefChanged=!1),this._footerRowDefChanged&&(this._forceRenderFooterRows(),this._footerRowDefChanged=!1),this.dataSource&&this._rowDefs.length>0&&!this._renderChangeSubscription?this._observeRenderChanges():this._stickyColumnStylesNeedReset&&this.updateStickyColumnStyles(),this._checkStickyStates()}ngOnDestroy(){[this._rowOutlet.viewContainer,this._headerRowOutlet.viewContainer,this._footerRowOutlet.viewContainer,this._cachedRenderRowsMap,this._customColumnDefs,this._customRowDefs,this._customHeaderRowDefs,this._customFooterRowDefs,this._columnDefsByName].forEach(e=>{e.clear()}),this._headerRowDefs=[],this._footerRowDefs=[],this._defaultRowDef=null,this._onDestroy.next(),this._onDestroy.complete(),yf(this.dataSource)&&this.dataSource.disconnect(this)}renderRows(){this._renderRows=this._getAllRenderRows();const e=this._dataDiffer.diff(this._renderRows);if(!e)return this._updateNoDataRow(),void this.contentChanged.next();const i=this._rowOutlet.viewContainer;this._viewRepeater.applyChanges(e,i,(o,r,a)=>this._getEmbeddedViewArgs(o.item,a),o=>o.item.data,o=>{1===o.operation&&o.context&&this._renderCellTemplateForItem(o.record.item.rowDef,o.context)}),this._updateRowIndexContext(),e.forEachIdentityChange(o=>{i.get(o.currentIndex).context.$implicit=o.item.data}),this._updateNoDataRow(),this._ngZone&&We.isInAngularZone()?this._ngZone.onStable.pipe(Pt(1),ot(this._onDestroy)).subscribe(()=>{this.updateStickyColumnStyles()}):this.updateStickyColumnStyles(),this.contentChanged.next()}addColumnDef(e){this._customColumnDefs.add(e)}removeColumnDef(e){this._customColumnDefs.delete(e)}addRowDef(e){this._customRowDefs.add(e)}removeRowDef(e){this._customRowDefs.delete(e)}addHeaderRowDef(e){this._customHeaderRowDefs.add(e),this._headerRowDefChanged=!0}removeHeaderRowDef(e){this._customHeaderRowDefs.delete(e),this._headerRowDefChanged=!0}addFooterRowDef(e){this._customFooterRowDefs.add(e),this._footerRowDefChanged=!0}removeFooterRowDef(e){this._customFooterRowDefs.delete(e),this._footerRowDefChanged=!0}setNoDataRow(e){this._customNoDataRow=e}updateStickyHeaderRowStyles(){const e=this._getRenderedRows(this._headerRowOutlet),o=this._elementRef.nativeElement.querySelector("thead");o&&(o.style.display=e.length?"":"none");const r=this._headerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["top"]),this._stickyStyler.stickRows(e,r,"top"),this._headerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyFooterRowStyles(){const e=this._getRenderedRows(this._footerRowOutlet),o=this._elementRef.nativeElement.querySelector("tfoot");o&&(o.style.display=e.length?"":"none");const r=this._footerRowDefs.map(a=>a.sticky);this._stickyStyler.clearStickyPositioning(e,["bottom"]),this._stickyStyler.stickRows(e,r,"bottom"),this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement,r),this._footerRowDefs.forEach(a=>a.resetStickyChanged())}updateStickyColumnStyles(){const e=this._getRenderedRows(this._headerRowOutlet),i=this._getRenderedRows(this._rowOutlet),o=this._getRenderedRows(this._footerRowOutlet);(this._isNativeHtmlTable&&!this._fixedLayout||this._stickyColumnStylesNeedReset)&&(this._stickyStyler.clearStickyPositioning([...e,...i,...o],["left","right"]),this._stickyColumnStylesNeedReset=!1),e.forEach((r,a)=>{this._addStickyColumnStyles([r],this._headerRowDefs[a])}),this._rowDefs.forEach(r=>{const a=[];for(let s=0;s{this._addStickyColumnStyles([r],this._footerRowDefs[a])}),Array.from(this._columnDefsByName.values()).forEach(r=>r.resetStickyChanged())}_getAllRenderRows(){const e=[],i=this._cachedRenderRowsMap;this._cachedRenderRowsMap=new Map;for(let o=0;o{const s=o&&o.has(a)?o.get(a):[];if(s.length){const c=s.shift();return c.dataIndex=i,c}return{data:e,rowDef:a,dataIndex:i}})}_cacheColumnDefs(){this._columnDefsByName.clear(),Kf(this._getOwnDefs(this._contentColumnDefs),this._customColumnDefs).forEach(i=>{this._columnDefsByName.has(i.name),this._columnDefsByName.set(i.name,i)})}_cacheRowDefs(){this._headerRowDefs=Kf(this._getOwnDefs(this._contentHeaderRowDefs),this._customHeaderRowDefs),this._footerRowDefs=Kf(this._getOwnDefs(this._contentFooterRowDefs),this._customFooterRowDefs),this._rowDefs=Kf(this._getOwnDefs(this._contentRowDefs),this._customRowDefs);const e=this._rowDefs.filter(i=>!i.when);this._defaultRowDef=e[0]}_renderUpdatedColumns(){const e=(a,s)=>a||!!s.getColumnsDiff(),i=this._rowDefs.reduce(e,!1);i&&this._forceRenderDataRows();const o=this._headerRowDefs.reduce(e,!1);o&&this._forceRenderHeaderRows();const r=this._footerRowDefs.reduce(e,!1);return r&&this._forceRenderFooterRows(),i||o||r}_switchDataSource(e){this._data=[],yf(this.dataSource)&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||(this._dataDiffer&&this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear()),this._dataSource=e}_observeRenderChanges(){if(!this.dataSource)return;let e;yf(this.dataSource)?e=this.dataSource.connect(this):Pl(this.dataSource)?e=this.dataSource:Array.isArray(this.dataSource)&&(e=Ke(this.dataSource)),this._renderChangeSubscription=e.pipe(ot(this._onDestroy)).subscribe(i=>{this._data=i||[],this.renderRows()})}_forceRenderHeaderRows(){this._headerRowOutlet.viewContainer.length>0&&this._headerRowOutlet.viewContainer.clear(),this._headerRowDefs.forEach((e,i)=>this._renderRow(this._headerRowOutlet,e,i)),this.updateStickyHeaderRowStyles()}_forceRenderFooterRows(){this._footerRowOutlet.viewContainer.length>0&&this._footerRowOutlet.viewContainer.clear(),this._footerRowDefs.forEach((e,i)=>this._renderRow(this._footerRowOutlet,e,i)),this.updateStickyFooterRowStyles()}_addStickyColumnStyles(e,i){const o=Array.from(i.columns||[]).map(s=>this._columnDefsByName.get(s)),r=o.map(s=>s.sticky),a=o.map(s=>s.stickyEnd);this._stickyStyler.updateStickyColumns(e,r,a,!this._fixedLayout||this._forceRecalculateCellWidths)}_getRenderedRows(e){const i=[];for(let o=0;o!r.when||r.when(i,e));else{let r=this._rowDefs.find(a=>a.when&&a.when(i,e))||this._defaultRowDef;r&&o.push(r)}return o}_getEmbeddedViewArgs(e,i){return{templateRef:e.rowDef.template,context:{$implicit:e.data},index:i}}_renderRow(e,i,o,r={}){const a=e.viewContainer.createEmbeddedView(i.template,r,o);return this._renderCellTemplateForItem(i,r),a}_renderCellTemplateForItem(e,i){for(let o of this._getCellTemplates(e))Da.mostRecentCellOutlet&&Da.mostRecentCellOutlet._viewContainer.createEmbeddedView(o,i);this._changeDetectorRef.markForCheck()}_updateRowIndexContext(){const e=this._rowOutlet.viewContainer;for(let i=0,o=e.length;i{const o=this._columnDefsByName.get(i);return e.extractCellTemplate(o)}):[]}_applyNativeTableSections(){const e=this._document.createDocumentFragment(),i=[{tag:"thead",outlets:[this._headerRowOutlet]},{tag:"tbody",outlets:[this._rowOutlet,this._noDataRowOutlet]},{tag:"tfoot",outlets:[this._footerRowOutlet]}];for(const o of i){const r=this._document.createElement(o.tag);r.setAttribute("role","rowgroup");for(const a of o.outlets)r.appendChild(a.elementRef.nativeElement);e.appendChild(r)}this._elementRef.nativeElement.appendChild(e)}_forceRenderDataRows(){this._dataDiffer.diff([]),this._rowOutlet.viewContainer.clear(),this.renderRows()}_checkStickyStates(){const e=(i,o)=>i||o.hasStickyChanged();this._headerRowDefs.reduce(e,!1)&&this.updateStickyHeaderRowStyles(),this._footerRowDefs.reduce(e,!1)&&this.updateStickyFooterRowStyles(),Array.from(this._columnDefsByName.values()).reduce(e,!1)&&(this._stickyColumnStylesNeedReset=!0,this.updateStickyColumnStyles())}_setupStickyStyler(){this._stickyStyler=new SQ(this._isNativeHtmlTable,this.stickyCssClass,this._dir?this._dir.value:"ltr",this._coalescedStyleScheduler,this._platform.isBrowser,this.needsPositionStickyOnElement,this._stickyPositioningListener),(this._dir?this._dir.change:Ke()).pipe(ot(this._onDestroy)).subscribe(i=>{this._stickyStyler.direction=i,this.updateStickyColumnStyles()})}_getOwnDefs(e){return e.filter(i=>!i._table||i._table===this)}_updateNoDataRow(){const e=this._customNoDataRow||this._noDataRow;if(!e)return;const i=0===this._rowOutlet.viewContainer.length;if(i===this._isShowingNoDataRow)return;const o=this._noDataRowOutlet.viewContainer;if(i){const r=o.createEmbeddedView(e.templateRef),a=r.rootNodes[0];1===r.rootNodes.length&&a?.nodeType===this._document.ELEMENT_NODE&&(a.setAttribute("role","row"),a.classList.add(e._contentClassName))}else o.clear();this._isShowingNoDataRow=i,this._changeDetectorRef.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(fr),_(Lt),_(Be),oo("role"),_(fn,8),_(ut),_(ci),_(Wu),_(bC),_(va),_(xC,12),_(We,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-table"],["table","cdk-table",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,Hf,5),gt(r,xa,5),gt(r,zf,5),gt(r,ch,5),gt(r,lh,5)),2&i){let a;Oe(a=Ae())&&(o._noDataRow=a.first),Oe(a=Ae())&&(o._contentColumnDefs=a),Oe(a=Ae())&&(o._contentRowDefs=a),Oe(a=Ae())&&(o._contentHeaderRowDefs=a),Oe(a=Ae())&&(o._contentFooterRowDefs=a)}},viewQuery:function(i,o){if(1&i&&(vt(Uf,7),vt($f,7),vt(Gf,7),vt(qf,7)),2&i){let r;Oe(r=Ae())&&(o._rowOutlet=r.first),Oe(r=Ae())&&(o._headerRowOutlet=r.first),Oe(r=Ae())&&(o._footerRowOutlet=r.first),Oe(r=Ae())&&(o._noDataRowOutlet=r.first)}},hostAttrs:["ngSkipHydration","",1,"cdk-table"],hostVars:2,hostBindings:function(i,o){2&i&&et("cdk-table-fixed-layout",o.fixedLayout)},inputs:{trackBy:"trackBy",dataSource:"dataSource",multiTemplateDataRows:"multiTemplateDataRows",fixedLayout:"fixedLayout"},outputs:{contentChanged:"contentChanged"},exportAs:["cdkTable"],features:[Ye([{provide:Hl,useExisting:t},{provide:Wu,useClass:xO},{provide:bC,useClass:sP},{provide:xC,useValue:null}])],ngContentSelectors:fQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(pQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".cdk-table-fixed-layout{table-layout:fixed}"],encapsulation:2})}return t})();function Kf(t,n){return t.concat(Array.from(n))}let MQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[sC]})}return t})();const TQ=[[["caption"]],[["colgroup"],["col"]]],IQ=["caption","colgroup, col"];let ps=(()=>{class t extends Wf{constructor(){super(...arguments),this.stickyCssClass="mat-mdc-table-sticky",this.needsPositionStickyOnElement=!1}ngOnInit(){super.ngOnInit(),this._isNativeHtmlTable&&this._elementRef.nativeElement.querySelector("tbody").classList.add("mdc-data-table__content")}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-table"],["table","mat-table",""]],hostAttrs:["ngSkipHydration","",1,"mat-mdc-table","mdc-data-table__table"],hostVars:2,hostBindings:function(i,o){2&i&&et("mdc-table-fixed-layout",o.fixedLayout)},exportAs:["matTable"],features:[Ye([{provide:Wf,useExisting:t},{provide:Hl,useExisting:t},{provide:bC,useClass:sP},{provide:Wu,useClass:xO},{provide:xC,useValue:null}]),ve],ngContentSelectors:IQ,decls:6,vars:0,consts:[["headerRowOutlet",""],["rowOutlet",""],["noDataRowOutlet",""],["footerRowOutlet",""]],template:function(i,o){1&i&&(Ut(TQ),Ze(0),Ze(1,1),ro(2,0)(3,1)(4,2)(5,3))},dependencies:[Uf,$f,Gf,qf],styles:[".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"],encapsulation:2})}return t})(),Sa=(()=>{class t extends Ul{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matCellDef",""]],features:[Ye([{provide:Ul,useExisting:t}]),ve]})}return t})(),ka=(()=>{class t extends $l{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderCellDef",""]],features:[Ye([{provide:$l,useExisting:t}]),ve]})}return t})(),Ma=(()=>{class t extends xa{get name(){return this._name}set name(e){this._setNameInput(e)}_updateColumnCssClassName(){super._updateColumnCssClassName(),this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matColumnDef",""]],inputs:{sticky:"sticky",name:[ge.None,"matColumnDef","name"]},features:[Ye([{provide:xa,useExisting:t},{provide:"MAT_SORT_HEADER_COLUMN_DEF",useExisting:t}]),ve]})}return t})(),Ta=(()=>{class t extends gC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-header-cell"],["th","mat-header-cell",""]],hostAttrs:["role","columnheader",1,"mat-mdc-header-cell","mdc-data-table__header-cell"],features:[ve]})}return t})(),Ia=(()=>{class t extends _C{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-cell"],["td","mat-cell",""]],hostAttrs:[1,"mat-mdc-cell","mdc-data-table__cell"],features:[ve]})}return t})(),fs=(()=>{class t extends ch{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matHeaderRowDef",""]],inputs:{columns:[ge.None,"matHeaderRowDef","columns"],sticky:[ge.None,"matHeaderRowDefSticky","sticky"]},features:[Ye([{provide:ch,useExisting:t}]),ve]})}return t})(),gs=(()=>{class t extends zf{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matRowDef",""]],inputs:{columns:[ge.None,"matRowDefColumns","columns"],when:[ge.None,"matRowDefWhen","when"]},features:[Ye([{provide:zf,useExisting:t}]),ve]})}return t})(),_s=(()=>{class t extends yC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-header-row"],["tr","mat-header-row",""]],hostAttrs:["role","row",1,"mat-mdc-header-row","mdc-data-table__header-row"],exportAs:["matHeaderRow"],features:[Ye([{provide:yC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),bs=(()=>{class t extends wC{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-row"],["tr","mat-row",""]],hostAttrs:["role","row",1,"mat-mdc-row","mdc-data-table__row"],exportAs:["matRow"],features:[Ye([{provide:wC,useExisting:t}]),ve],decls:1,vars:0,consts:[["cdkCellOutlet",""]],template:function(i,o){1&i&&ro(0,0)},dependencies:[Da],encapsulation:2})}return t})(),dP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,MQ,Mt]})}return t})();class BQ extends vf{get data(){return this._data.value}set data(n){n=Array.isArray(n)?n:[],this._data.next(n),this._renderChangesSubscription||this._filterData(n)}get filter(){return this._filter.value}set filter(n){this._filter.next(n),this._renderChangesSubscription||this._filterData(this.data)}get sort(){return this._sort}set sort(n){this._sort=n,this._updateChangeSubscription()}get paginator(){return this._paginator}set paginator(n){this._paginator=n,this._updateChangeSubscription()}constructor(n=[]){super(),this._renderData=new pt([]),this._filter=new pt(""),this._internalPageChanges=new qe,this._renderChangesSubscription=null,this.sortingDataAccessor=(e,i)=>{const o=e[i];if(eE(o)){const r=Number(o);return r<9007199254740991?r:o}return o},this.sortData=(e,i)=>{const o=i.active,r=i.direction;return o&&""!=r?e.sort((a,s)=>{let c=this.sortingDataAccessor(a,o),u=this.sortingDataAccessor(s,o);const p=typeof c,g=typeof u;p!==g&&("number"===p&&(c+=""),"number"===g&&(u+=""));let b=0;return null!=c&&null!=u?c>u?b=1:c{const o=Object.keys(e).reduce((a,s)=>a+e[s]+"\u25ec","").toLowerCase(),r=i.trim().toLowerCase();return-1!=o.indexOf(r)},this._data=new pt(n),this._updateChangeSubscription()}_updateChangeSubscription(){const n=this._sort?Ri(this._sort.sortChange,this._sort.initialized):Ke(null),e=this._paginator?Ri(this._paginator.page,this._internalPageChanges,this._paginator.initialized):Ke(null),o=Xs([this._data,this._filter]).pipe(nt(([s])=>this._filterData(s))),r=Xs([o,n]).pipe(nt(([s])=>this._orderData(s))),a=Xs([r,e]).pipe(nt(([s])=>this._pageData(s)));this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=a.subscribe(s=>this._renderData.next(s))}_filterData(n){return this.filteredData=null==this.filter||""===this.filter?n:n.filter(e=>this.filterPredicate(e,this.filter)),this.paginator&&this._updatePaginator(this.filteredData.length),this.filteredData}_orderData(n){return this.sort?this.sortData(n.slice(),this.sort):n}_pageData(n){if(!this.paginator)return n;const e=this.paginator.pageIndex*this.paginator.pageSize;return n.slice(e,e+this.paginator.pageSize)}_updatePaginator(n){Promise.resolve().then(()=>{const e=this.paginator;if(e&&(e.length=n,e.pageIndex>0)){const i=Math.ceil(e.length/e.pageSize)-1||0,o=Math.min(e.pageIndex,i);o!==e.pageIndex&&(e.pageIndex=o,this._internalPageChanges.next())}})}connect(){return this._renderChangesSubscription||this._updateChangeSubscription(),this._renderData}disconnect(){this._renderChangesSubscription?.unsubscribe(),this._renderChangesSubscription=null}}class uP extends BQ{}const hP=new se("CdkAccordion");let VQ=0,jQ=(()=>{class t{get expanded(){return this._expanded}set expanded(e){e=$e(e),this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e)}constructor(e,i,o){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=o,this._openCloseAllSubscription=de.EMPTY,this.closed=new Ne,this.opened=new Ne,this.destroyed=new Ne,this.expandedChange=new Ne,this.id="cdk-accordion-child-"+VQ++,this._expanded=!1,this._disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=o.listen((r,a)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===a&&this.id!==r&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(hP,12),_(Lt),_(N0))};static#t=this.\u0275dir=Q({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:"expanded",disabled:"disabled"},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[Ye([{provide:hP,useValue:void 0}])]})}return t})(),zQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const HQ=["body"];function UQ(t,n){}const $Q=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],GQ=["mat-expansion-panel-header","*","mat-action-row"];function qQ(t,n){1&t&&D(0,"span",2),2&t&&f("@indicatorRotate",C()._getExpandedState())}const WQ=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],KQ=["mat-panel-title","mat-panel-description","*"],mP=new se("MAT_ACCORDION"),pP="225ms cubic-bezier(0.4,0.0,0.2,1)",fP={indicatorRotate:Lo("indicatorRotate",[mn("collapsed, void",Zt({transform:"rotate(0deg)"})),mn("expanded",Zt({transform:"rotate(180deg)"})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))]),bodyExpansion:Lo("bodyExpansion",[mn("collapsed, void",Zt({height:"0px",visibility:"hidden"})),mn("expanded",Zt({height:"*",visibility:""})),Qi("expanded <=> collapsed, void => collapsed",Yi(pP))])},gP=new se("MAT_EXPANSION_PANEL");let ZQ=(()=>{class t{constructor(e,i){this._template=e,this._expansionPanel=i}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(gP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["ng-template","matExpansionPanelContent",""]]})}return t})(),YQ=0;const _P=new se("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let DC=(()=>{class t extends jQ{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=$e(e)}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,o,r,a,s,c){super(e,i,o),this._viewContainerRef=r,this._animationMode=s,this._hideToggle=!1,this.afterExpand=new Ne,this.afterCollapse=new Ne,this._inputChanges=new qe,this._headerId="mat-expansion-panel-header-"+YQ++,this._bodyAnimationDone=new qe,this.accordion=e,this._document=a,this._bodyAnimationDone.pipe(Ru((u,p)=>u.fromState===p.fromState&&u.toState===p.toState)).subscribe(u=>{"void"!==u.fromState&&("expanded"===u.toState?this.afterExpand.emit():"collapsed"===u.toState&&this.afterCollapse.emit())}),c&&(this.hideToggle=c.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(an(null),kt(()=>this.expanded&&!this._portal),Pt(1)).subscribe(()=>{this._portal=new ya(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._bodyAnimationDone.complete(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(mP,12),_(Lt),_(N0),_(vi),_(ut),_(ui,8),_(_P,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,o,r){if(1&i&>(r,ZQ,5),2&i){let a;Oe(a=Ae())&&(o._lazyContent=a.first)}},viewQuery:function(i,o){if(1&i&&vt(HQ,5),2&i){let r;Oe(r=Ae())&&(o._body=r.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,o){2&i&&et("mat-expanded",o.expanded)("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mat-expansion-panel-spacing",o._hasSpacing())},inputs:{disabled:"disabled",expanded:"expanded",hideToggle:"hideToggle",togglePosition:"togglePosition"},outputs:{opened:"opened",closed:"closed",expandedChange:"expandedChange",afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[Ye([{provide:mP,useValue:void 0},{provide:gP,useExisting:t}]),ve,fi],ngContentSelectors:GQ,decls:7,vars:4,consts:[["role","region",1,"mat-expansion-panel-content",3,"id"],["body",""],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,o){1&i&&(Ut($Q),Ze(0),d(1,"div",0,1),A("@bodyExpansion.done",function(a){return o._bodyAnimationDone.next(a)}),d(3,"div",2),Ze(4,1),y(5,UQ,0,0,"ng-template",3),l(),Ze(6,2),l()),2&i&&(m(),f("@bodyExpansion",o._getExpandedState())("id",o.id),Xe("aria-labelledby",o._headerId),m(4),f("cdkPortalOutlet",o._portal))},dependencies:[Ca],styles:['.mat-expansion-panel{--mat-expansion-container-shape:4px;box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[fP.bodyExpansion]},changeDetection:0})}return t})();class QQ{}const XQ=os(QQ);let bP=(()=>{class t extends XQ{constructor(e,i,o,r,a,s,c){super(),this.panel=e,this._element=i,this._focusMonitor=o,this._changeDetectorRef=r,this._animationMode=s,this._parentChangeSubscription=de.EMPTY;const u=e.accordion?e.accordion._stateChanges.pipe(kt(p=>!(!p.hideToggle&&!p.togglePosition))):jo;this.tabIndex=parseInt(c||"")||0,this._parentChangeSubscription=Ri(e.opened,e.closed,u,e._inputChanges.pipe(kt(p=>!!(p.hideToggle||p.disabled||p.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(kt(()=>e._containsFocus())).subscribe(()=>o.focusVia(i,"program")),a&&(this.expandedHeight=a.expandedHeight,this.collapsedHeight=a.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:An(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static#e=this.\u0275fac=function(i){return new(i||t)(_(DC,1),_(Be),_(zo),_(Lt),_(_P,8),_(ui,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,o){1&i&&A("click",function(){return o._toggle()})("keydown",function(a){return o._keydown(a)}),2&i&&(Xe("id",o.panel._headerId)("tabindex",o.tabIndex)("aria-controls",o._getPanelId())("aria-expanded",o._isExpanded())("aria-disabled",o.panel.disabled),Sn("height",o._getHeaderHeight()),et("mat-expanded",o._isExpanded())("mat-expansion-toggle-indicator-after","after"===o._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===o._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===o._animationMode))},inputs:{tabIndex:"tabIndex",expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight"},features:[ve],ngContentSelectors:KQ,decls:5,vars:3,consts:[[1,"mat-content"],["class","mat-expansion-indicator",4,"ngIf"],[1,"mat-expansion-indicator"]],template:function(i,o){1&i&&(Ut(WQ),d(0,"span",0),Ze(1),Ze(2,1),Ze(3,2),l(),y(4,qQ,1,1,"span",1)),2&i&&(et("mat-content-hide-toggle",!o._showToggle()),m(4),f("ngIf",o._showToggle()))},dependencies:[It],styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[fP.indicatorRotate]},changeDetection:0})}return t})(),JQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return t})(),vP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,zQ,cc]})}return t})();function eX(t,n){1&t&&(d(0,"span",7),Ze(1,1),l())}function tX(t,n){1&t&&(d(0,"span",8),Ze(1,2),l())}const yP=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],CP=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function oX(t,n){1&t&&(me(0),D(1,"span",8),pe())}function rX(t,n){1&t&&(d(0,"span",9),Ze(1),l())}function aX(t,n){1&t&&(me(0),Ze(1,1),pe())}function sX(t,n){1&t&&Ze(0,2,["*ngIf","contentEditInput; else defaultMatChipEditInput"])}function cX(t,n){1&t&&D(0,"span",12)}function lX(t,n){if(1&t&&(me(0),y(1,sX,1,0,"ng-content",10)(2,cX,1,0,"ng-template",null,11,br),pe()),2&t){const e=Ft(3),i=C();m(),f("ngIf",i.contentEditInput)("ngIfElse",e)}}function dX(t,n){1&t&&(d(0,"span",13),Ze(1,3),l())}const uX=[[["mat-chip-avatar"],["","matChipAvatar",""]],"*",[["","matChipEditInput",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],hX=["mat-chip-avatar, [matChipAvatar]","*","[matChipEditInput]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"],SC=["*"],Zf=new se("mat-chips-default-options"),kC=new se("MatChipAvatar"),MC=new se("MatChipTrailingIcon"),TC=new se("MatChipRemove"),Yf=new se("MatChip");class mX{}const pX=os(mX,-1);let Gl=(()=>{class t extends pX{get disabled(){return this._disabled||this._parentChip.disabled}set disabled(e){this._disabled=$e(e)}_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(e,i){super(),this._elementRef=e,this._parentChip=i,this.isInteractive=!0,this._isPrimary=!0,this._disabled=!1,this._allowFocusWhenDisabled=!1,"BUTTON"===e.nativeElement.nodeName&&e.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(e){!this.disabled&&this.isInteractive&&this._isPrimary&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(e.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Yf))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(i,o){1&i&&A("click",function(a){return o._handleClick(a)})("keydown",function(a){return o._handleKeydown(a)}),2&i&&(Xe("tabindex",o._getTabindex())("disabled",o._getDisabledAttribute())("aria-disabled",o.disabled),et("mdc-evolution-chip__action--primary",o._isPrimary)("mdc-evolution-chip__action--presentational",!o.isInteractive)("mdc-evolution-chip__action--trailing",!o._isPrimary))},inputs:{disabled:"disabled",tabIndex:"tabIndex",isInteractive:"isInteractive",_allowFocusWhenDisabled:"_allowFocusWhenDisabled"},features:[ve]})}return t})(),DP=(()=>{class t extends Gl{constructor(){super(...arguments),this._isPrimary=!1}_handleClick(e){this.disabled||(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!this.disabled&&(e.stopPropagation(),e.preventDefault(),this._parentChip.remove())}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-mdc-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(i,o){2&i&&Xe("aria-hidden",null)},features:[Ye([{provide:TC,useExisting:t}]),ve]})}return t})(),_X=0;const bX=os(is(ns(jr(class{constructor(t){this._elementRef=t}})),"primary"),-1);let uc=(()=>{class t extends bX{_hasFocus(){return this._hasFocusInternal}get value(){return void 0!==this._value?this._value:this._textElement.textContent.trim()}set value(e){this._value=e}get removable(){return this._removable}set removable(e){this._removable=$e(e)}get highlighted(){return this._highlighted}set highlighted(e){this._highlighted=$e(e)}get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetectorRef=e,this._ngZone=o,this._focusMonitor=r,this._globalRippleOptions=c,this._onFocus=new qe,this._onBlur=new qe,this.role=null,this._hasFocusInternal=!1,this.id="mat-mdc-chip-"+_X++,this.ariaLabel=null,this.ariaDescription=null,this._ariaDescriptionId=`${this.id}-aria-description`,this._removable=!0,this._highlighted=!1,this.removed=new Ne,this.destroyed=new Ne,this.basicChipAttrName="mat-basic-chip",this._rippleLoader=De(NE),this._document=a,this._animationsDisabled="NoopAnimations"===s,null!=u&&(this.tabIndex=parseInt(u)??this.defaultTabIndex),this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){const e=this._elementRef.nativeElement;this._isBasicChip=e.hasAttribute(this.basicChipAttrName)||e.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Ri(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!(!this.trailingIcon&&!this.removeIcon)}_handleKeydown(e){(8===e.keyCode||46===e.keyCode)&&(e.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(e){return this._getActions().find(i=>{const o=i._elementRef.nativeElement;return o===e||o.contains(e)})}_getActions(){const e=[];return this.primaryAction&&e.push(this.primaryAction),this.removeIcon&&e.push(this.removeIcon),this.trailingIcon&&e.push(this.trailingIcon),e}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{const i=null!==e;i!==this._hasFocusInternal&&(this._hasFocusInternal=i,i?this._onFocus.next({chip:this}):this._ngZone.onStable.pipe(Pt(1)).subscribe(()=>this._ngZone.run(()=>this._onBlur.next({chip:this}))))})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(ut),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(i,o,r){if(1&i&&(gt(r,kC,5),gt(r,MC,5),gt(r,TC,5),gt(r,kC,5),gt(r,MC,5),gt(r,TC,5)),2&i){let a;Oe(a=Ae())&&(o.leadingIcon=a.first),Oe(a=Ae())&&(o.trailingIcon=a.first),Oe(a=Ae())&&(o.removeIcon=a.first),Oe(a=Ae())&&(o._allLeadingIcons=a),Oe(a=Ae())&&(o._allTrailingIcons=a),Oe(a=Ae())&&(o._allRemoveIcons=a)}},viewQuery:function(i,o){if(1&i&&vt(Gl,5),2&i){let r;Oe(r=Ae())&&(o.primaryAction=r.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:30,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&(ao("id",o.id),Xe("role",o.role)("tabindex",o.role?o.tabIndex:null)("aria-label",o.ariaLabel),et("mdc-evolution-chip",!o._isBasicChip)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-basic-chip",o._isBasicChip)("mat-mdc-standard-chip",!o._isBasicChip)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon())("_mat-animation-noopable",o._animationsDisabled))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",role:"role",id:"id",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaDescription:[ge.None,"aria-description","ariaDescription"],value:"value",removable:"removable",highlighted:"highlighted"},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[Ye([{provide:Yf,useExisting:t}]),ve],ngContentSelectors:CP,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing",4,"ngIf"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(yP),D(0,"span",0),d(1,"span",1)(2,"span",2),y(3,eX,2,0,"span",3),d(4,"span",4),Ze(5),D(6,"span",5),l()()(),y(7,tX,2,0,"span",6)),2&i&&(m(2),f("isInteractive",!1),m(),f("ngIf",o.leadingIcon),m(4),f("ngIf",o._hasTrailingIcon()))},dependencies:[It,Gl],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),Qf=(()=>{class t{constructor(e,i){this._elementRef=e,this._document=i}initialize(e){this.getNativeElement().focus(),this.setValue(e)}getNativeElement(){return this._elementRef.nativeElement}setValue(e){this.getNativeElement().textContent=e,this._moveCursorToEndOfInput()}getValue(){return this.getNativeElement().textContent||""}_moveCursorToEndOfInput(){const e=this._document.createRange();e.selectNodeContents(this.getNativeElement()),e.collapse(!1);const i=window.getSelection();i.removeAllRanges(),i.addRange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["span","matChipEditInput",""]],hostAttrs:["role","textbox","tabindex","-1","contenteditable","true",1,"mat-chip-edit-input"]})}return t})(),IC=(()=>{class t extends uc{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this.basicChipAttrName="mat-basic-chip-row",this._editStartPending=!1,this.editable=!1,this.edited=new Ne,this._isEditing=!1,this.role="row",this._onBlur.pipe(ot(this.destroyed)).subscribe(()=>{this._isEditing&&!this._editStartPending&&this._onEditFinish()})}_hasTrailingIcon(){return!this._isEditing&&super._hasTrailingIcon()}_handleFocus(){!this._isEditing&&!this.disabled&&this.focus()}_handleKeydown(e){13!==e.keyCode||this.disabled?this._isEditing?e.stopPropagation():super._handleKeydown(e):this._isEditing?(e.preventDefault(),this._onEditFinish()):this.editable&&this._startEditing(e)}_handleDoubleclick(e){!this.disabled&&this.editable&&this._startEditing(e)}_startEditing(e){if(!this.primaryAction||this.removeIcon&&this._getSourceAction(e.target)===this.removeIcon)return;const i=this.value;this._isEditing=this._editStartPending=!0,this._changeDetectorRef.detectChanges(),setTimeout(()=>{this._getEditInput().initialize(i),this._editStartPending=!1})}_onEditFinish(){this._isEditing=this._editStartPending=!1,this.edited.emit({chip:this,value:this._getEditInput().getValue()}),(this._document.activeElement===this._getEditInput().getNativeElement()||this._document.activeElement===this._document.body)&&this.primaryAction.focus()}_isRippleDisabled(){return super._isRippleDisabled()||this._isEditing}_getEditInput(){return this.contentEditInput||this.defaultEditInput}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(We),_(zo),_(ut),_(ui,8),_(El,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-row"],["","mat-chip-row",""],["mat-basic-chip-row"],["","mat-basic-chip-row",""]],contentQueries:function(i,o,r){if(1&i&>(r,Qf,5),2&i){let a;Oe(a=Ae())&&(o.contentEditInput=a.first)}},viewQuery:function(i,o){if(1&i&&vt(Qf,5),2&i){let r;Oe(r=Ae())&&(o.defaultEditInput=r.first)}},hostAttrs:[1,"mat-mdc-chip","mat-mdc-chip-row","mdc-evolution-chip"],hostVars:27,hostBindings:function(i,o){1&i&&A("focus",function(a){return o._handleFocus(a)})("dblclick",function(a){return o._handleDoubleclick(a)}),2&i&&(ao("id",o.id),Xe("tabindex",o.disabled?null:-1)("aria-label",null)("aria-description",null)("role",o.role),et("mat-mdc-chip-with-avatar",o.leadingIcon)("mat-mdc-chip-disabled",o.disabled)("mat-mdc-chip-editing",o._isEditing)("mat-mdc-chip-editable",o.editable)("mdc-evolution-chip--disabled",o.disabled)("mdc-evolution-chip--with-trailing-action",o._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",o.leadingIcon)("mdc-evolution-chip--with-primary-icon",o.leadingIcon)("mdc-evolution-chip--with-avatar",o.leadingIcon)("mat-mdc-chip-highlighted",o.highlighted)("mat-mdc-chip-with-trailing-icon",o._hasTrailingIcon()))},inputs:{color:"color",disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",editable:"editable"},outputs:{edited:"edited"},features:[Ye([{provide:uc,useExisting:t},{provide:Yf,useExisting:t}]),ve],ngContentSelectors:hX,decls:10,vars:12,consts:[[4,"ngIf"],["role","gridcell","matChipAction","",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary",3,"tabIndex","disabled"],["class","mdc-evolution-chip__graphic mat-mdc-chip-graphic",4,"ngIf"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label",3,"ngSwitch"],[4,"ngSwitchCase"],["aria-hidden","true",1,"mat-mdc-chip-primary-focus-indicator","mat-mdc-focus-indicator"],["class","mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing","role","gridcell",4,"ngIf"],[1,"cdk-visually-hidden",3,"id"],[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[4,"ngIf","ngIfElse"],["defaultMatChipEditInput",""],["matChipEditInput",""],["role","gridcell",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(i,o){1&i&&(Ut(uX),y(0,oX,2,0,"ng-container",0),d(1,"span",1),y(2,rX,2,0,"span",2),d(3,"span",3),y(4,aX,2,0,"ng-container",4)(5,lX,4,2,"ng-container",4),D(6,"span",5),l()(),y(7,dX,2,0,"span",6),d(8,"span",7),h(9),l()),2&i&&(f("ngIf",!o._isEditing),m(),f("tabIndex",o.tabIndex)("disabled",o.disabled),Xe("aria-label",o.ariaLabel)("aria-describedby",o._ariaDescriptionId),m(),f("ngIf",o.leadingIcon),m(),f("ngSwitch",o._isEditing),m(),f("ngSwitchCase",!1),m(),f("ngSwitchCase",!0),m(2),f("ngIf",o._hasTrailingIcon()),m(),f("id",o._ariaDescriptionId),m(),Pe(o.ariaDescription))},dependencies:[It,xl,Sp,Gl,Qf],styles:['.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}.mdc-evolution-chip__action--primary{overflow-x:hidden}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mdc-evolution-chip__action--primary:before{box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1}.mdc-evolution-chip--touch{margin-top:8px;margin-bottom:8px}.mdc-evolution-chip__action-touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-evolution-chip__text-label{white-space:nowrap;user-select:none;text-overflow:ellipsis;overflow:hidden}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mdc-evolution-chip__checkmark-background{opacity:0}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__graphic{transition:width 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark{transition:opacity 50ms 0ms linear,transform 100ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--deselecting .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selecting-with-primary-icon .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__icon--primary{transition:opacity 150ms 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-50%, -50%)}.mdc-evolution-chip--deselecting-with-primary-icon .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@keyframes mdc-evolution-chip-enter{from{transform:scale(0.8);opacity:.4}to{transform:scale(1);opacity:1}}.mdc-evolution-chip--enter{animation:mdc-evolution-chip-enter 100ms 0ms cubic-bezier(0, 0, 0.2, 1)}@keyframes mdc-evolution-chip-exit{from{opacity:1}to{opacity:0}}.mdc-evolution-chip--exit{animation:mdc-evolution-chip-exit 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-evolution-chip--hidden{opacity:0;pointer-events:none;transition:width 150ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius);height:var(--mdc-chip-container-height);--mdc-chip-container-shape-family:rounded;--mdc-chip-container-shape-radius:16px 16px 16px 16px;--mdc-chip-with-avatar-avatar-shape-family:rounded;--mdc-chip-with-avatar-avatar-shape-radius:14px 14px 14px 14px;--mdc-chip-with-avatar-avatar-size:28px;--mdc-chip-with-icon-icon-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__ripple{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:before{border-radius:var(--mdc-chip-container-shape-radius)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius)}.mat-mdc-standard-chip.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--with-primary-icon){--mdc-chip-graphic-selected-width:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{height:var(--mdc-chip-with-avatar-avatar-size);width:var(--mdc-chip-with-avatar-avatar-size);font-size:var(--mdc-chip-with-avatar-avatar-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font);line-height:var(--mdc-chip-label-text-line-height);font-size:var(--mdc-chip-label-text-size);font-weight:var(--mdc-chip-label-text-weight);letter-spacing:var(--mdc-chip-label-text-tracking)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color)}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{height:var(--mdc-chip-with-icon-icon-size);width:var(--mdc-chip-with-icon-icon-size);font-size:var(--mdc-chip-with-icon-icon-size)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color)}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary.mdc-ripple-upgraded--background-focused .mdc-evolution-chip__ripple::before,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary:not(.mdc-ripple-upgraded):focus .mdc-evolution-chip__ripple::before{transition-duration:75ms;opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color);opacity:var(--mdc-chip-focus-state-layer-opacity)}.mat-mdc-standard-chip .mdc-evolution-chip__checkmark{height:20px;width:20px}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:6px;padding-right:6px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, currentColor)}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic[dir=rtl]{padding-left:8px;padding-right:4px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing[dir=rtl]{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing{left:8px;right:initial}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__ripple--trailing[dir=rtl]{left:initial;right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary,.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary[dir=rtl]{padding-left:0;padding-right:0}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-mdc-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-mdc-standard-chip .mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:.4}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary{flex-basis:100%}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{opacity:.04}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{opacity:.12}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-chip-remove{opacity:.54}.mat-mdc-chip-remove:focus{opacity:1}.mat-mdc-chip-remove::before{margin:calc(var(--mat-mdc-focus-indicator-border-width, 3px) * -1);left:8px;right:8px}.mat-mdc-chip-remove .mat-icon{width:inherit;height:inherit;font-size:inherit;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}.cdk-high-contrast-active .mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}.mat-mdc-chip-action:focus .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})();class vX{constructor(n){}}const yX=os(vX);let EC=(()=>{class t extends yX{get chipFocusChanges(){return this._getChipStream(e=>e._onFocus)}get chipDestroyedChanges(){return this._getChipStream(e=>e.destroyed)}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get empty(){return!this._chips||0===this._chips.length}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}set role(e){this._explicitRole=e}get focused(){return this._hasFocusedChip()}constructor(e,i,o){super(e),this._elementRef=e,this._changeDetectorRef=i,this._dir=o,this._lastDestroyedFocusedChipIndex=null,this._destroyed=new qe,this._defaultRole="presentation",this._disabled=!1,this._explicitRole=null,this._chipActions=new oa}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(e=>e._hasFocus())}_syncChipsState(){this._chips&&this._chips.forEach(e=>{e.disabled=this._disabled,e._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(e){this._originatesFromChip(e)&&this._keyManager.onKeydown(e)}_isValidIndex(e){return e>=0&&ethis.tabIndex=e)}}_getChipStream(e){return this._chips.changes.pipe(an(null),gn(()=>Ri(...this._chips.map(e))))}_originatesFromChip(e){let i=e.target;for(;i&&i!==this._elementRef.nativeElement;){if(i.classList.contains("mat-mdc-chip"))return!0;i=i.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(an(this._chips)).subscribe(e=>{const i=[];e.forEach(o=>o._getActions().forEach(r=>i.push(r))),this._chipActions.reset(i),this._chipActions.notifyOnChanges()}),this._keyManager=new Jp(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(e=>this._skipPredicate(e)),this.chipFocusChanges.pipe(ot(this._destroyed)).subscribe(({chip:e})=>{const i=e._getSourceAction(document.activeElement);i&&this._keyManager.updateActiveItem(i)}),this._dir?.change.pipe(ot(this._destroyed)).subscribe(e=>this._keyManager.withHorizontalOrientation(e))}_skipPredicate(e){return!e.isInteractive||e.disabled}_trackChipSetChanges(){this._chips.changes.pipe(an(null),ot(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(ot(this._destroyed)).subscribe(e=>{const o=this._chips.toArray().indexOf(e.chip);this._isValidIndex(o)&&e.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=o)})}_redirectDestroyedChipFocus(){if(null!=this._lastDestroyedFocusedChipIndex){if(this._chips.length){const e=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),i=this._chips.toArray()[e];i.disabled?1===this._chips.length?this.focus():this._keyManager.setPreviousItemActive():i.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-set"]],contentQueries:function(i,o,r){if(1&i&>(r,uc,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._handleKeydown(a)}),2&i&&Xe("role",o.role)},inputs:{disabled:"disabled",role:"role"},features:[ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})();class xX{constructor(n,e){this.source=n,this.value=e}}class DX extends EC{constructor(n,e,i,o,r,a,s){super(n,e,i),this._defaultErrorStateMatcher=o,this._parentForm=r,this._parentFormGroup=a,this.ngControl=s,this.stateChanges=new qe}}const SX=v0(DX);let MP=(()=>{class t extends SX{get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=$e(e),this._syncChipsState()}get id(){return this._chipInput.id}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this._chips||0===this._chips.length)}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get focused(){return this._chipInput.focused||this._hasFocusedChip()}get required(){return this._required??this.ngControl?.control?.hasValidator(ee.required)??!1}set required(e){this._required=$e(e),this.stateChanges.next()}get shouldLabelFloat(){return!this.empty||this.focused}get value(){return this._value}set value(e){this._value=e}get chipBlurChanges(){return this._getChipStream(e=>e._onBlur)}constructor(e,i,o,r,a,s,c){super(e,i,o,s,r,a,c),this.controlType="mat-chip-grid",this._defaultRole="grid",this._ariaDescribedbyIds=[],this._onTouched=()=>{},this._onChange=()=>{},this._value=[],this.change=new Ne,this.valueChange=new Ne,this._chips=void 0,this.ngControl&&(this.ngControl.valueAccessor=this)}ngAfterContentInit(){this.chipBlurChanges.pipe(ot(this._destroyed)).subscribe(()=>{this._blur(),this.stateChanges.next()}),Ri(this.chipFocusChanges,this._chips.changes).pipe(ot(this._destroyed)).subscribe(()=>this.stateChanges.next())}ngAfterViewInit(){super.ngAfterViewInit()}ngDoCheck(){this.ngControl&&this.updateErrorState()}ngOnDestroy(){super.ngOnDestroy(),this.stateChanges.complete()}registerInput(e){this._chipInput=e,this._chipInput.setDescribedByIds(this._ariaDescribedbyIds)}onContainerClick(e){!this.disabled&&!this._originatesFromChip(e)&&this.focus()}focus(){this.disabled||this._chipInput.focused||(!this._chips.length||this._chips.first.disabled?Promise.resolve().then(()=>this._chipInput.focus()):this._chips.length&&this._keyManager.setFirstItemActive(),this.stateChanges.next())}setDescribedByIds(e){this._ariaDescribedbyIds=e,this._chipInput?.setDescribedByIds(e)}writeValue(e){this._value=e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this.stateChanges.next()}_blur(){this.disabled||setTimeout(()=>{this.focused||(this._propagateChanges(),this._markAsTouched())})}_allowFocusEscape(){this._chipInput.focused||super._allowFocusEscape()}_handleKeydown(e){9===e.keyCode?this._chipInput.focused&&An(e,"shiftKey")&&this._chips.length&&!this._chips.last.disabled?(e.preventDefault(),this._keyManager.activeItem?this._keyManager.setActiveItem(this._keyManager.activeItem):this._focusLastChip()):super._allowFocusEscape():this._chipInput.focused||super._handleKeydown(e),this.stateChanges.next()}_focusLastChip(){this._chips.length&&this._chips.last.focus()}_propagateChanges(){const e=this._chips.length?this._chips.toArray().map(i=>i.value):[];this._value=e,this.change.emit(new xX(this,e)),this.valueChange.emit(e),this._onChange(e),this._changeDetectorRef.markForCheck()}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(fn,8),_(hs,8),_(wi,8),_(nf),_(xr,10))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-chip-grid"]],contentQueries:function(i,o,r){if(1&i&>(r,IC,5),2&i){let a;Oe(a=Ae())&&(o._chips=a)}},hostAttrs:[1,"mat-mdc-chip-set","mat-mdc-chip-grid","mdc-evolution-chip-set"],hostVars:10,hostBindings:function(i,o){1&i&&A("focus",function(){return o.focus()})("blur",function(){return o._blur()}),2&i&&(ao("tabIndex",o._chips&&0===o._chips.length?-1:o.tabIndex),Xe("role",o.role)("aria-disabled",o.disabled.toString())("aria-invalid",o.errorState),et("mat-mdc-chip-list-disabled",o.disabled)("mat-mdc-chip-list-invalid",o.errorState)("mat-mdc-chip-list-required",o.required))},inputs:{tabIndex:"tabIndex",disabled:"disabled",placeholder:"placeholder",required:"required",value:"value",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},features:[Ye([{provide:Af,useExisting:t}]),ve],ngContentSelectors:SC,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(i,o){1&i&&(Ut(),d(0,"div",0),Ze(1),l())},styles:[".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"],encapsulation:2,changeDetection:0})}return t})(),kX=0,TP=(()=>{class t{set chipGrid(e){e&&(this._chipGrid=e,this._chipGrid.registerInput(this))}get addOnBlur(){return this._addOnBlur}set addOnBlur(e){this._addOnBlur=$e(e)}get disabled(){return this._disabled||this._chipGrid&&this._chipGrid.disabled}set disabled(e){this._disabled=$e(e)}get empty(){return!this.inputElement.value}constructor(e,i,o){this._elementRef=e,this.focused=!1,this._addOnBlur=!1,this.chipEnd=new Ne,this.placeholder="",this.id="mat-mdc-chip-list-input-"+kX++,this._disabled=!1,this.inputElement=this._elementRef.nativeElement,this.separatorKeyCodes=i.separatorKeyCodes,o&&this.inputElement.classList.add("mat-mdc-form-field-input-control")}ngOnChanges(){this._chipGrid.stateChanges.next()}ngOnDestroy(){this.chipEnd.complete()}ngAfterContentInit(){this._focusLastChipOnBackspace=this.empty}_keydown(e){if(e){if(8===e.keyCode&&this._focusLastChipOnBackspace)return this._chipGrid._focusLastChip(),void e.preventDefault();this._focusLastChipOnBackspace=!1}this._emitChipEnd(e)}_keyup(e){!this._focusLastChipOnBackspace&&8===e.keyCode&&this.empty&&(this._focusLastChipOnBackspace=!0,e.preventDefault())}_blur(){this.addOnBlur&&this._emitChipEnd(),this.focused=!1,this._chipGrid.focused||this._chipGrid._blur(),this._chipGrid.stateChanges.next()}_focus(){this.focused=!0,this._focusLastChipOnBackspace=this.empty,this._chipGrid.stateChanges.next()}_emitChipEnd(e){(!e||this._isSeparatorKey(e))&&(this.chipEnd.emit({input:this.inputElement,value:this.inputElement.value,chipInput:this}),e?.preventDefault())}_onInput(){this._chipGrid.stateChanges.next()}focus(){this.inputElement.focus()}clear(){this.inputElement.value="",this._focusLastChipOnBackspace=!0}setDescribedByIds(e){const i=this._elementRef.nativeElement;e.length?i.setAttribute("aria-describedby",e.join(" ")):i.removeAttribute("aria-describedby")}_isSeparatorKey(e){return!An(e)&&new Set(this.separatorKeyCodes).has(e.keyCode)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Zf),_(th,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["input","matChipInputFor",""]],hostAttrs:[1,"mat-mdc-chip-input","mat-mdc-input-element","mdc-text-field__input","mat-input-element"],hostVars:6,hostBindings:function(i,o){1&i&&A("keydown",function(a){return o._keydown(a)})("keyup",function(a){return o._keyup(a)})("blur",function(){return o._blur()})("focus",function(){return o._focus()})("input",function(){return o._onInput()}),2&i&&(ao("id",o.id),Xe("disabled",o.disabled||null)("placeholder",o.placeholder||null)("aria-invalid",o._chipGrid&&o._chipGrid.ngControl?o._chipGrid.ngControl.invalid:null)("aria-required",o._chipGrid&&o._chipGrid.required||null)("required",o._chipGrid&&o._chipGrid.required||null))},inputs:{chipGrid:[ge.None,"matChipInputFor","chipGrid"],addOnBlur:[ge.None,"matChipInputAddOnBlur","addOnBlur"],separatorKeyCodes:[ge.None,"matChipInputSeparatorKeyCodes","separatorKeyCodes"],placeholder:"placeholder",id:"id",disabled:"disabled"},outputs:{chipEnd:"matChipInputTokenEnd"},exportAs:["matChipInput","matChipInputFor"],features:[fi]})}return t})(),OC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[nf,{provide:Zf,useValue:{separatorKeyCodes:[13]}}],imports:[Mt,Vn,as,Mt]})}return t})();class IP{constructor(){this.expansionModel=new qu(!0)}toggle(n){this.expansionModel.toggle(this._trackByValue(n))}expand(n){this.expansionModel.select(this._trackByValue(n))}collapse(n){this.expansionModel.deselect(this._trackByValue(n))}isExpanded(n){return this.expansionModel.isSelected(this._trackByValue(n))}toggleDescendants(n){this.expansionModel.isSelected(this._trackByValue(n))?this.collapseDescendants(n):this.expandDescendants(n)}collapseAll(){this.expansionModel.clear()}expandDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.select(...e.map(i=>this._trackByValue(i)))}collapseDescendants(n){let e=[n];e.push(...this.getDescendants(n)),this.expansionModel.deselect(...e.map(i=>this._trackByValue(i)))}_trackByValue(n){return this.trackBy?this.trackBy(n):n}}class EP extends IP{constructor(n,e,i){super(),this.getLevel=n,this.isExpandable=e,this.options=i,this.options&&(this.trackBy=this.options.trackBy)}getDescendants(n){const i=[];for(let o=this.dataNodes.indexOf(n)+1;othis._trackByValue(n)))}}let OX=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),OP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[OX,Mt,Mt]})}return t})();class LX{constructor(n,e,i,o){this.transformFunction=n,this.getLevel=e,this.isExpandable=i,this.getChildren=o}_flattenNode(n,e,i,o){const r=this.transformFunction(n,e);if(i.push(r),this.isExpandable(r)){const a=this.getChildren(n);a&&(Array.isArray(a)?this._flattenChildren(a,e,i,o):a.pipe(Pt(1)).subscribe(s=>{this._flattenChildren(s,e,i,o)}))}return i}_flattenChildren(n,e,i,o){n.forEach((r,a)=>{let s=o.slice();s.push(a!=n.length-1),this._flattenNode(r,e+1,i,s)})}flattenNodes(n){let e=[];return n.forEach(i=>this._flattenNode(i,0,e,[])),e}expandFlattenedNodes(n,e){let i=[],o=[];return o[0]=!0,n.forEach(r=>{let a=!0;for(let s=0;s<=this.getLevel(r);s++)a=a&&o[s];a&&i.push(r),this.isExpandable(r)&&(o[this.getLevel(r)+1]=e.isExpanded(r))}),i}}class AP extends vf{get data(){return this._data.value}set data(n){this._data.next(n),this._flattenedData.next(this._treeFlattener.flattenNodes(this.data)),this._treeControl.dataNodes=this._flattenedData.value}constructor(n,e,i){super(),this._treeControl=n,this._treeFlattener=e,this._flattenedData=new pt([]),this._expandedData=new pt([]),this._data=new pt([]),i&&(this.data=i)}connect(n){return Ri(n.viewChange,this._treeControl.expansionModel.changed,this._flattenedData).pipe(nt(()=>(this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value,this._treeControl)),this._expandedData.value)))}disconnect(){}}function BX(t,n){}const VX=t=>({animationDuration:t}),jX=(t,n)=>({value:t,params:n});function zX(t,n){1&t&&Ze(0)}const PP=["*"],HX=["tabListContainer"],UX=["tabList"],$X=["tabListInner"],GX=["nextPaginator"],qX=["previousPaginator"],WX=["tabBodyWrapper"],KX=["tabHeader"];function ZX(t,n){}function YX(t,n){1&t&&y(0,ZX,0,0,"ng-template",14),2&t&&f("cdkPortalOutlet",C().$implicit.templateLabel)}function QX(t,n){1&t&&h(0),2&t&&Pe(C().$implicit.textLabel)}function XX(t,n){if(1&t){const e=_e();d(0,"div",6,7),A("click",function(){const o=ie(e),r=o.$implicit,a=o.index,s=C(),c=Ft(1);return ne(s._handleClick(r,c,a))})("cdkFocusChange",function(o){const a=ie(e).index;return ne(C()._tabFocusChanged(o,a))}),D(2,"span",8)(3,"div",9),d(4,"span",10)(5,"span",11),y(6,YX,1,1,"ng-template",12)(7,QX,1,1,"ng-template",null,13,br),l()()()}if(2&t){const e=n.$implicit,i=n.index,o=Ft(1),r=Ft(8),a=C();et("mdc-tab--active",a.selectedIndex===i),f("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Xe("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),m(3),f("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),m(3),f("ngIf",e.templateLabel)("ngIfElse",r)}}function JX(t,n){if(1&t){const e=_e();d(0,"mat-tab-body",15),A("_onCentered",function(){return ie(e),ne(C()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return ie(e),ne(C()._setTabBodyWrapperHeight(o))}),l()}if(2&t){const e=n.$implicit,i=n.index,o=C();et("mat-mdc-tab-body-active",o.selectedIndex===i),f("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Xe("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))("aria-hidden",o.selectedIndex!==i)}}const eJ={translateTab:Lo("translateTab",[mn("center, void, left-origin-center, right-origin-center",Zt({transform:"none"})),mn("left",Zt({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),mn("right",Zt({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Qi("* => left, * => right, left => center, right => center",Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Qi("void => left-origin-center",[Zt({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Qi("void => right-origin-center",[Zt({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Yi("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let tJ=(()=>{class t extends Ca{constructor(e,i,o,r){super(e,i,r),this._host=o,this._centeringSub=de.EMPTY,this._leavingSub=de.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(an(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ns),_(vi),_(Qt(()=>RP)),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabBodyHost",""]],features:[ve]})}return t})(),iJ=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=de.EMPTY,this._translateTabComplete=new qe,this._onCentering=new Ne,this._beforeCentering=new Ne,this._afterLeavingCenter=new Ne,this._onCentered=new Ne(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(r=>{this._computePositionAnimationState(r),o.markForCheck()})),this._translateTabComplete.pipe(Ru((r,a)=>r.fromState===a.fromState&&r.toState===a.toState)).subscribe(r=>{this._isCenterPosition(r.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(r.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{_content:[ge.None,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}})}return t})(),RP=(()=>{class t extends iJ{constructor(e,i,o){super(e,i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(fn,8),_(Lt))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-body"]],viewQuery:function(i,o){if(1&i&&vt(Ca,5),2&i){let r;Oe(r=Ae())&&(o._portalHost=r.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[ve],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(i,o){1&i&&(d(0,"div",0,1),A("@translateTab.start",function(a){return o._onTranslateTabStarted(a)})("@translateTab.done",function(a){return o._translateTabComplete.next(a)}),y(2,BX,0,0,"ng-template",2),l()),2&i&&f("@translateTab",zM(3,jX,o._position,hi(1,VX,o.animationDuration)))},dependencies:[tJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[eJ.translateTab]}})}return t})();const nJ=new se("MatTabContent");let oJ=(()=>{class t{constructor(e){this.template=e}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabContent",""]],features:[Ye([{provide:nJ,useExisting:t}])]})}return t})();const rJ=new se("MatTabLabel"),NP=new se("MAT_TAB");let FC=(()=>{class t extends CY{constructor(e,i,o){super(e,i),this._closestTab=o}static#e=this.\u0275fac=function(i){return new(i||t)(_(gi),_(vi),_(NP,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Ye([{provide:rJ,useExisting:t}]),ve]})}return t})();const LC="mdc-tab-indicator--active",FP="mdc-tab-indicator--no-transition";class aJ{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function sJ(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=$e(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(LC);const i=e.getBoundingClientRect(),o=n.width/i.width,r=n.left-i.left;e.classList.add(FP),this._inkBarContentElement.style.setProperty("transform",`translateX(${r}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(FP),e.classList.add(LC),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(LC)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const lJ=jr(class{}),dJ=sJ((()=>{class t extends lJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be))};static#t=this.\u0275dir=Q({type:t,features:[ve]})}return t})());let LP=(()=>{class t extends dJ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,o){2&i&&(Xe("aria-disabled",!!o.disabled),et("mat-mdc-tab-disabled",o.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[ve]})}return t})();const uJ=jr(class{}),BP=new se("MAT_TAB_GROUP");let hJ=(()=>{class t extends uJ{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new qe,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ya(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static#e=this.\u0275fac=function(i){return new(i||t)(_(vi),_(BP,8))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(gi,7),2&i){let r;Oe(r=Ae())&&(o._implicitContent=r.first)}},inputs:{textLabel:[ge.None,"label","textLabel"],ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[ve,fi]})}return t})(),eg=(()=>{class t extends hJ{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,oJ,7,gi),gt(r,FC,5)),2&i){let a;Oe(a=Ae())&&(o._explicitContent=a.first),Oe(a=Ae())&&(o.templateLabel=a.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Ye([{provide:NP,useExisting:t}]),ve],ngContentSelectors:PP,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),y(0,zX,1,0,"ng-template"))},encapsulation:2})}return t})();const VP=Ja({passive:!0});let fJ=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=yi(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,r,a,s,c){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=r,this._ngZone=a,this._platform=s,this._animationMode=c,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new qe,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new qe,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new Ne,this.indexFocused=new Ne,a.runOutsideAngular(()=>{er(e.nativeElement,"mouseleave").pipe(ot(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){er(this._previousPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),er(this._nextPaginator.nativeElement,"touchstart",VP).pipe(ot(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ke("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Jp(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Pt(1)).subscribe(o),Ri(e,i,this._items.changes,this._itemsResized()).pipe(ot(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(r=>{this.indexFocused.emit(r),this._setTabFocus(r)})}_itemsResized(){return"function"!=typeof ResizeObserver?jo:this._items.changes.pipe(an(this._items),gn(e=>new li(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(r=>i.next(r));return e.forEach(r=>o.observe(r.elementRef.nativeElement)),()=>{o.disconnect()}}))),l0(1),kt(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!An(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:r,offsetWidth:a}=i.elementRef.nativeElement;let s,c;"ltr"==this._getLayoutDirection()?(s=r,c=s+a):(c=this._tabListInner.nativeElement.offsetWidth-r,s=c-a);const u=this.scrollDistance,p=this.scrollDistance+o;sp&&(this.scrollDistance+=Math.min(c-p,s-u))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Pf(650,100).pipe(ot(Ri(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:r}=this._scrollHeader(e);(0===r||r>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disablePagination:"disablePagination"}})}return t})(),gJ=(()=>{class t extends fJ{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$e(e)}constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{disableRipple:"disableRipple"},features:[ve]})}return t})(),_J=(()=>{class t extends gJ{constructor(e,i,o,r,a,s,c){super(e,i,o,r,a,s,c)}ngAfterContentInit(){this._inkBar=new aJ(this._items),super.ngAfterContentInit()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(va),_(fn,8),_(We),_(ci),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-header"]],contentQueries:function(i,o,r){if(1&i&>(r,LP,4),2&i){let a;Oe(a=Ae())&&(o._items=a)}},viewQuery:function(i,o){if(1&i&&(vt(HX,7),vt(UX,7),vt($X,7),vt(GX,5),vt(qX,5)),2&i){let r;Oe(r=Ae())&&(o._tabListContainer=r.first),Oe(r=Ae())&&(o._tabList=r.first),Oe(r=Ae())&&(o._tabListInner=r.first),Oe(r=Ae())&&(o._nextPaginator=r.first),Oe(r=Ae())&&(o._previousPaginator=r.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-tab-header-pagination-controls-enabled",o._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==o._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[ve],ngContentSelectors:PP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(i,o){1&i&&(Ut(),d(0,"button",0,1),A("click",function(){return o._handlePaginatorClick("before")})("mousedown",function(a){return o._handlePaginatorPress("before",a)})("touchend",function(){return o._stopInterval()}),D(2,"div",2),l(),d(3,"div",3,4),A("keydown",function(a){return o._handleKeydown(a)}),d(5,"div",5,6),A("cdkObserveContent",function(){return o._onContentChanges()}),d(7,"div",7,8),Ze(9),l()()(),d(10,"button",9,10),A("mousedown",function(a){return o._handlePaginatorPress("after",a)})("click",function(){return o._handlePaginatorClick("after")})("touchend",function(){return o._stopInterval()}),D(12,"div",2),l()),2&i&&(et("mat-mdc-tab-header-pagination-disabled",o._disableScrollBefore),f("matRippleDisabled",o._disableScrollBefore||o.disableRipple)("disabled",o._disableScrollBefore||null),m(3),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(7),et("mat-mdc-tab-header-pagination-disabled",o._disableScrollAfter),f("matRippleDisabled",o._disableScrollAfter||o.disableRipple)("disabled",o._disableScrollAfter||null))},dependencies:[rs,iE],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2})}return t})();const jP=new se("MAT_TABS_CONFIG");let bJ=0;const vJ=is(ns(class{constructor(t){this._elementRef=t}}),"primary");let yJ=(()=>{class t extends vJ{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=$e(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=yi(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=yi(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=$e(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=$e(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,r){super(e),this._changeDetectorRef=i,this._animationMode=r,this._tabs=new oa,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=de.EMPTY,this._tabLabelSubscription=de.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new Ne,this.focusChange=new Ne,this.animationDone=new Ne,this.selectedTabChange=new Ne(!0),this._groupId=bJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,r)=>o.isActive=r===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let r=0;r{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(an(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new CJ;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Ri(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275dir=Q({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[ve]})}return t})(),BC=(()=>{class t extends yJ{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=$e(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=$e(e)}constructor(e,i,o,r){super(e,i,o,r),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(jP,8),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tab-group"]],contentQueries:function(i,o,r){if(1&i&>(r,eg,5),2&i){let a;Oe(a=Ae())&&(o._allTabs=a)}},viewQuery:function(i,o){if(1&i&&(vt(WX,5),vt(KX,5)),2&i){let r;Oe(r=Ae())&&(o._tabBodyWrapper=r.first),Oe(r=Ae())&&(o._tabHeader=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-tab-group"],hostVars:8,hostBindings:function(i,o){2&i&&(Sn("--mat-tab-animation-duration",o.animationDuration),et("mat-mdc-tab-group-dynamic-height",o.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===o.headerPosition)("mat-mdc-tab-group-stretch-tabs",o.stretchTabs))},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:[ge.None,"mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Ye([{provide:BP,useExisting:t}]),ve],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(i,o){1&i&&(d(0,"mat-tab-header",0,1),A("indexFocused",function(a){return o._focusChanged(a)})("selectFocusedIndex",function(a){return o.selectedIndex=a}),y(2,XX,9,17,"div",2),l(),d(3,"div",3,4),y(5,JX,1,12,"mat-tab-body",5),l()),2&i&&(f("selectedIndex",o.selectedIndex||0)("disableRipple",o.disableRipple)("disablePagination",o.disablePagination),m(2),f("ngForOf",o._tabs),m(),et("_mat-animation-noopable","NoopAnimations"===o._animationMode),m(2),f("ngForOf",o._tabs))},dependencies:[yr,rn,It,Ca,rs,tq,RP,LP,_J],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return t})();class CJ{}let zP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,cc,as,Zp,b0,Mt]})}return t})();function wJ(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"button",3),A("click",function(){return ie(e),ne(C().action())}),h(2),l()()}if(2&t){const e=C();m(2),xe(" ",e.data.action," ")}}const xJ=["label"];function DJ(t,n){}const SJ=Math.pow(2,31)-1;class VC{constructor(n,e){this._overlayRef=e,this._afterDismissed=new qe,this._afterOpened=new qe,this._onAction=new qe,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,SJ))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const HP=new se("MatSnackBarData");class tg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let kJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return t})(),MJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return t})(),TJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return t})(),IJ=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static#e=this.\u0275fac=function(i){return new(i||t)(_(VC),_(HP))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),h(1),l(),y(2,wJ,3,1,"div",1)),2&i&&(m(),xe(" ",o.data.message,"\n"),m(),f("ngIf",o.hasAction))},dependencies:[It,Yt,kJ,MJ,TJ],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0})}return t})();const EJ={snackBarState:Lo("state",[mn("void, hidden",Zt({transform:"scale(0.8)",opacity:0})),mn("visible",Zt({transform:"scale(1)",opacity:1})),Qi("* => visible",Yi("150ms cubic-bezier(0, 0, 0.2, 1)")),Qi("* => void, * => hidden",Yi("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zt({opacity:0})))])};let OJ=0,AJ=(()=>{class t extends Ff{constructor(e,i,o,r,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=r,this.snackBarConfig=a,this._document=De(ut),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new qe,this._onExit=new qe,this._onEnter=new qe,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+OJ++,this.attachDomPortal=s=>{this._assertNotAttached();const c=this._portalOutlet.attachDomPortal(s);return this._afterPortalAttached(),c},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const r=this._onEnter;this._ngZone.run(()=>{r.next(),r.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(We),_(Be),_(Lt),_(ci),_(tg))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},features:[ve]})}return t})(),PJ=(()=>{class t extends AJ{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(i,o){if(1&i&&vt(xJ,7),2&i){let r;Oe(r=Ae())&&(o._label=r.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(i,o){1&i&&ep("@state.done",function(a){return o.onAnimationEnd(a)}),2&i&&Zm("@state",o._animationState)},features:[ve],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1,2)(3,"div",3),y(4,DJ,0,0,"ng-template",4),l(),D(5,"div"),l()()),2&i&&(m(5),Xe("aria-live",o._live)("role",o._role)("id",o._liveElementId))},dependencies:[Ca],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[EJ.snackBarState]}})}return t})(),jC=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[dc,cc,Vn,lf,Mt,Mt]})}return t})();const UP=new se("mat-snack-bar-default-options",{providedIn:"root",factory:function RJ(){return new tg}});let NJ=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,r,a,s){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=r,this._parentSnackBar=a,this._defaultConfig=s,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const r={...this._defaultConfig,...o};return r.data={message:e,action:i},r.announcementMessage===e&&(r.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,r)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const r=ji.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:tg,useValue:i}]}),a=new Ll(this.snackBarContainerComponent,i.viewContainerRef,r),s=e.attach(a);return s.instance.snackBarConfig=i,s.instance}_attach(e,i){const o={...new tg,...this._defaultConfig,...i},r=this._createOverlay(o),a=this._attachSnackBarContainer(r,o),s=new VC(a,r);if(e instanceof gi){const c=new ya(e,null,{$implicit:o.data,snackBarRef:s});s.instance=a.attachTemplatePortal(c)}else{const c=this._createInjector(o,s),u=new Ll(e,void 0,c),p=a.attachComponentPortal(u);s.instance=p.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(ot(r.detachments())).subscribe(c=>{r.overlayElement.classList.toggle(this.handsetCssClass,c.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(s,o),this._openedSnackBarRef=s,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Bl;i.direction=e.direction;let o=this._overlay.position().global();const r="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,s=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):s?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return ji.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:VC,useValue:i},{provide:HP,useValue:e.data}]})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),FJ=(()=>{class t extends NJ{constructor(e,i,o,r,a,s){super(e,i,o,r,a,s),this.simpleSnackBarComponent=IJ,this.snackBarContainerComponent=PJ,this.handsetCssClass="mat-mdc-snack-bar-handset"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(g0),X(ji),X(u0),X(t,12),X(UP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:jC})}return t})();function LJ(t,n){}class ig{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let $P=(()=>{class t extends Ff{constructor(e,i,o,r,a,s,c,u){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=r,this._interactivityChecker=a,this._ngZone=s,this._overlayRef=c,this._focusMonitor=u,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this.attachDomPortal=p=>{this._portalOutlet.hasAttached();const g=this._portalOutlet.attachDomPortal(p);return this._contentAttached(),g},this._document=o,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=Hp(),r=this._elementRef.nativeElement;(!o||o===this._document.body||o===r||r.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=Hp();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=Hp())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ig),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,o){if(1&i&&vt(Ca,7),2&i){let r;Oe(r=Ae())&&(o._portalOutlet=r.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,o){2&i&&Xe("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[ve],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,o){1&i&&y(0,LJ,0,0,"ng-template",0)},dependencies:[Ca],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return t})();class zC{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new qe,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!An(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const GP=new se("DialogScrollStrategy"),BJ=new se("DialogData"),VJ=new se("DefaultDialogConfig"),zJ={provide:GP,deps:[Qn],useFactory:function jJ(t){return()=>t.scrollStrategies.block()}};let HJ=0,qP=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,r,a,s){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=r,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._ariaHiddenElements=new Map,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s}open(e,i){(i={...this._defaultOptions||new ig,...i}).id=i.id||"cdk-dialog-"+HJ++,i.id&&this.getDialogById(i.id);const r=this._getOverlayConfig(i),a=this._overlay.create(r),s=new zC(a,i),c=this._attachContainer(a,s,i);return s.containerInstance=c,this._attachDialogContent(e,s,c,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(s),s.closed.subscribe(()=>this._removeOpenDialog(s,!0)),this.afterOpened.next(s),s}closeAll(){HC(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){HC(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),HC(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Bl({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const r=o.injector||o.viewContainerRef?.injector,a=[{provide:ig,useValue:o},{provide:zC,useValue:i},{provide:ah,useValue:e}];let s;o.container?"function"==typeof o.container?s=o.container:(s=o.container.type,a.push(...o.container.providers(o))):s=$P;const c=new Ll(s,o.viewContainerRef,ji.create({parent:r||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(c).instance}_attachDialogContent(e,i,o,r){if(e instanceof gi){const a=this._createInjector(r,i,o,void 0);let s={$implicit:r.data,dialogRef:i};r.templateContext&&(s={...s,..."function"==typeof r.templateContext?r.templateContext():r.templateContext}),o.attachTemplatePortal(new ya(e,null,s,a))}else{const a=this._createInjector(r,i,o,this._injector),s=o.attachComponentPortal(new Ll(e,r.viewContainerRef,a,r.componentFactoryResolver));i.componentRef=s,i.componentInstance=s.instance}}_createInjector(e,i,o,r){const a=e.injector||e.viewContainerRef?.injector,s=[{provide:BJ,useValue:e.data},{provide:zC,useValue:i}];return e.providers&&("function"==typeof e.providers?s.push(...e.providers(i,e,o)):s.push(...e.providers)),e.direction&&(!a||!a.get(fn,null,{optional:!0}))&&s.push({provide:fn,useValue:{value:e.direction,change:Ke()}}),ji.create({parent:a||r,providers:s})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((r,a)=>{r?a.setAttribute("aria-hidden",r):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const r=i[o];r!==e&&"SCRIPT"!==r.nodeName&&"STYLE"!==r.nodeName&&!r.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(r,r.getAttribute("aria-hidden")),r.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(VJ,8),X(t,12),X(Lf),X(GP))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function HC(t,n){let e=t.length;for(;e--;)n(t[e])}let UJ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[qP,zJ],imports:[dc,cc,b0,cc]})}return t})();function $J(t,n){}class ng{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const UC="mdc-dialog--open",WP="mdc-dialog--opening",KP="mdc-dialog--closing";let WJ=(()=>{class t extends $P{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u),this._animationStateChanged=new Ne}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ng),_(Fu),_(We),_(ah),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],features:[ve],decls:0,vars:0,template:function(i,o){},encapsulation:2})}return t})();const ZP="--mat-dialog-transition-duration";function YP(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?yi(t.substring(0,t.length-2)):t.endsWith("s")?1e3*yi(t.substring(0,t.length-1)):"0"===t?0:null}let KJ=(()=>{class t extends WJ{constructor(e,i,o,r,a,s,c,u,p){super(e,i,o,r,a,s,c,p),this._animationMode=u,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?YP(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?YP(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(WP,UC)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(UC),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(UC),this._animationsEnabled?(this._hostElement.style.setProperty(ZP,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(KP)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(WP,KP)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(ut,8),_(ng),_(Fu),_(We),_(ah),_(ui,8),_(zo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(i,o){2&i&&(ao("id",o._config.id),Xe("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),et("_mat-animation-noopable",!o._animationsEnabled))},features:[ve],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,$J,0,0,"ng-template",2),l()())},dependencies:[Ca],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return t})();class bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new qe,this._beforeClosed=new qe,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(kt(o=>"opened"===o.state),Pt(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(kt(o=>"closed"===o.state),Pt(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Ri(this.backdropClick(),this.keydownEvents().pipe(kt(o=>27===o.keyCode&&!this.disableClose&&!An(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),QP(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(kt(e=>"closing"===e.state),Pt(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function QP(t,n,e){return t._closeInteractionType=n,t.close(e)}const mo=new se("MatMdcDialogData"),ZJ=new se("mat-mdc-dialog-default-options"),XP=new se("mat-mdc-dialog-scroll-strategy"),QJ={provide:XP,deps:[Qn],useFactory:function YJ(t){return()=>t.scrollStrategies.block()}};let XJ=0,JJ=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,r,a,s,c,u,p,g){this._overlay=e,this._defaultOptions=o,this._parentDialog=r,this._dialogRefConstructor=c,this._dialogContainerType=u,this._dialogDataToken=p,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new qe,this._afterOpenedAtThisLevel=new qe,this._idPrefix="mat-dialog-",this.dialogConfigClass=ng,this.afterAllClosed=Vl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(an(void 0))),this._scrollStrategy=s,this._dialog=i.get(qP)}open(e,i){let o;(i={...this._defaultOptions||new ng,...i}).id=i.id||`${this._idPrefix}${XJ++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const r=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ig,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,s,c)=>(o=new this._dialogRefConstructor(a,i,c),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:s.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentRef=r.componentRef,o.componentInstance=r.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),Hr=(()=>{class t extends JJ{constructor(e,i,o,r,a,s,c,u){super(e,i,r,s,c,a,bn,KJ,mo,u),this._idPrefix="mat-mdc-dialog-"}static#e=this.\u0275fac=function(i){return new(i||t)(X(Qn),X(ji),X(Ws,8),X(ZJ,8),X(XP),X(t,12),X(Lf),X(ui,8))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})(),eee=0,zn=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=JP(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){QP(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,o){1&i&&A("click",function(a){return o._onButtonClick(a)}),2&i&&Xe("aria-label",o.ariaLabel||null)("type",o.type)},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],type:"type",dialogResult:[ge.None,"mat-dialog-close","dialogResult"],_matDialogClose:[ge.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[fi]})}return t})(),tee=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+eee++}ngOnInit(){this._dialogRef||(this._dialogRef=JP(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._dialogRef._containerInstance?._ariaLabelledByQueue?.push(this.id)})}ngOnDestroy(){const e=this._dialogRef?._containerInstance?._ariaLabelledByQueue;e&&Promise.resolve().then(()=>{const i=e.indexOf(this.id);i>-1&&e.splice(i,1)})}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn,8),_(Be),_(Hr))};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,o){2&i&&ao("id",o.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]})}return t})(),So=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]})}return t})(),ko=(()=>{class t{constructor(){this.align="start"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:4,hostBindings:function(i,o){2&i&&et("mat-mdc-dialog-actions-align-center","center"===o.align)("mat-mdc-dialog-actions-align-end","end"===o.align)},inputs:{align:"align"}})}return t})();function JP(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let eR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Hr,QJ],imports:[UJ,dc,cc,Mt,Mt]})}return t})();const iee=["tooltip"],iR=new se("mat-tooltip-scroll-strategy"),ree={provide:iR,deps:[Qn],useFactory:function oee(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},see=new se("mat-tooltip-default-options",{providedIn:"root",factory:function aee(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),nR="tooltip-panel",oR=Ja({passive:!0});let mee=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=$e(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=yi(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=yi(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,r,a,s,c,u,p,g,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=r,this._ngZone=a,this._platform=s,this._ariaDescriber=c,this._focusMonitor=u,this._dir=g,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new qe,this._scrollStrategy=p,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures)),g.change.pipe(ot(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(ot(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,oR)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ll(this._tooltipComponent,this._viewContainerRef);const r=this._tooltipInstance=o.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const r=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&r._origin instanceof Be)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(ot(this._destroyed)).subscribe(r=>{this._updateCurrentPositionClass(r.connectionPair),this._tooltipInstance&&r.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${nR}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(ot(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(ot(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(ot(this._destroyed)).subscribe(r=>{this._isTooltipVisible()&&27===r.keyCode&&!An(r)&&(r.preventDefault(),r.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),r=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...r.main}),this._addOffset({...o.fallback,...r.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:r,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:r,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:r,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Pt(1),ot(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:r}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===r?"above":"below",a!==this._currentPosition){const s=this._overlayRef;if(s){const c=`${this._cssClassPrefix}-${nR}-`;s.removePanelClass(c+this._currentPosition),s.addPanelClass(c+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,oR)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{position:[ge.None,"matTooltipPosition","position"],positionAtOrigin:[ge.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[ge.None,"matTooltipDisabled","disabled"],showDelay:[ge.None,"matTooltipShowDelay","showDelay"],hideDelay:[ge.None,"matTooltipHideDelay","hideDelay"],touchGestures:[ge.None,"matTooltipTouchGestures","touchGestures"],message:[ge.None,"matTooltip","message"],tooltipClass:[ge.None,"matTooltipClass","tooltipClass"]}})}return t})(),vn=(()=>{class t extends mee{constructor(e,i,o,r,a,s,c,u,p,g,b,w){super(e,i,o,r,a,s,c,u,p,g,b,w),this._tooltipComponent=fee,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}static#e=this.\u0275fac=function(i){return new(i||t)(_(Qn),_(Be),_(oh),_(vi),_(We),_(ci),_(FG),_(zo),_(iR),_(fn,8),_(see,8),_(ut))};static#t=this.\u0275dir=Q({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-mdc-tooltip-disabled",o.disabled)},exportAs:["matTooltip"],features:[ve]})}return t})(),pee=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new qe,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,r=this._hideAnimation;if(i.classList.remove(e?r:o),i.classList.add(e?o:r),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(ui,8))};static#t=this.\u0275dir=Q({type:t})}return t})(),fee=(()=>{class t extends pee{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,o){if(1&i&&vt(iee,7),2&i){let r;Oe(r=Ae())&&(o._tooltip=r.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,o){1&i&&A("mouseleave",function(a){return o._handleMouseLeave(a)}),2&i&&Sn("zoom",o.isVisible()?1:null)},features:[ve],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,o){1&i&&(d(0,"div",0,1),A("animationend",function(a){return o._handleAnimationEnd(a)}),d(2,"div",2),h(3),l()()),2&i&&(et("mdc-tooltip--multiline",o._isMultiline),f("ngClass",o.tooltipClass),m(3),Pe(o.message))},dependencies:[yr],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return t})(),$C=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ree],imports:[b0,Vn,dc,Mt,Mt,ms]})}return t})();const gee=["input"],_ee=["label"],bee=["*"],vee=new se("mat-checkbox-default-options",{providedIn:"root",factory:rR});function rR(){return{color:"accent",clickAction:"check-indeterminate"}}const yee={provide:uo,useExisting:Qt(()=>og),multi:!0};class Cee{}let wee=0;const aR=rR(),xee=os(is(ns(jr(class{constructor(t){this._elementRef=t}}))));let Dee=(()=>{class t extends xee{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=$e(e)}constructor(e,i,o,r,a,s,c){super(i),this._changeDetectorRef=o,this._ngZone=r,this._animationMode=s,this._options=c,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ne,this.indeterminateChange=new Ne,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||aR,this.color=this.defaultColor=this._options.color||aR.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++wee}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=$e(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=$e(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=$e(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const r=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(r)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gee,5),vt(_ee,5),vt(rs,5)),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first),Oe(r=Ae())&&(o._labelElement=r.first),Oe(r=Ae())&&(o.ripple=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[ve]})}return t})(),og=(()=>{class t extends Dee{constructor(e,i,o,r,a,s){super("mat-mdc-checkbox-",e,i,o,r,a,s),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new Cee;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Lt),_(We),oo("tabindex"),_(ui,8),_(vee,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(i,o){2&i&&(ao("id",o.id),Xe("tabindex",null)("aria-label",null)("aria-labelledby",null),et("_mat-animation-noopable","NoopAnimations"===o._animationMode)("mdc-checkbox--disabled",o.disabled)("mat-mdc-checkbox-disabled",o.disabled)("mat-mdc-checkbox-checked",o.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Ye([yee]),ve],ngContentSelectors:bee,decls:15,vars:20,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0),A("click",function(a){return o._preventBubblingFromLabel(a)}),d(1,"div",1,2)(3,"div",3),A("click",function(){return o._onTouchTargetClick()}),l(),d(4,"input",4,5),A("blur",function(){return o._onBlur()})("click",function(){return o._onInputClick()})("change",function(a){return o._onInteractionEvent(a)}),l(),D(6,"div",6),d(7,"div",7),ei(),d(8,"svg",8),D(9,"path",9),l(),pr(),D(10,"div",10),l(),D(11,"div",11),l(),d(12,"label",12,13),Ze(14),l()()),2&i){const r=Ft(2);et("mdc-form-field--align-end","before"==o.labelPosition),m(4),et("mdc-checkbox--selected",o.checked),f("checked",o.checked)("indeterminate",o.indeterminate)("disabled",o.disabled)("id",o.inputId)("required",o.required)("tabIndex",o.tabIndex),Xe("aria-label",o.ariaLabel||null)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby)("aria-checked",o.indeterminate?"mixed":null)("name",o.name)("value",o.value),m(7),f("matRippleTrigger",r)("matRippleDisabled",o.disableRipple||o.disabled)("matRippleCentered",!0),m(),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}html{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return t})(),sR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})(),cR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,as,sR,Mt,sR]})}return t})();const rg=["*"],Mee=["content"];function Tee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Iee(t,n){1&t&&(d(0,"mat-drawer-content"),Ze(1,2),l())}const Eee=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],Oee=["mat-drawer","mat-drawer-content","*"];function Aee(t,n){if(1&t){const e=_e();d(0,"div",2),A("click",function(){return ie(e),ne(C()._onBackdropClicked())}),l()}2&t&&et("mat-drawer-shown",C()._isShowingBackdrop())}function Pee(t,n){1&t&&(d(0,"mat-sidenav-content"),Ze(1,2),l())}const Ree=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],Nee=["mat-sidenav","mat-sidenav-content","*"],lR={transformDrawer:Lo("transform",[mn("open, open-instant",Zt({transform:"none",visibility:"visible"})),mn("void",Zt({"box-shadow":"none",visibility:"hidden"})),Qi("void => open-instant",Yi("0ms")),Qi("void <=> open, open-instant => void",Yi("400ms cubic-bezier(0.25, 0.8, 0.25, 1)"))])},Lee=new se("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function Bee(){return!1}}),GC=new se("MAT_DRAWER_CONTAINER");let ag=(()=>{class t extends rh{constructor(e,i,o,r,a){super(o,r,a),this._changeDetectorRef=e,this._container=i}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>uR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),dR=(()=>{class t{get position(){return this._position}set position(e){(e="end"===e?"end":"start")!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=$e(e)}get autoFocus(){return this._autoFocus??("side"===this.mode?"dialog":"first-tabbable")}set autoFocus(e){("true"===e||"false"===e||null==e)&&(e=$e(e)),this._autoFocus=e}get opened(){return this._opened}set opened(e){this.toggle($e(e))}constructor(e,i,o,r,a,s,c,u){this._elementRef=e,this._focusTrapFactory=i,this._focusMonitor=o,this._platform=r,this._ngZone=a,this._interactivityChecker=s,this._doc=c,this._container=u,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._opened=!1,this._animationStarted=new qe,this._animationEnd=new qe,this._animationState="void",this.openedChange=new Ne(!0),this._openedStream=this.openedChange.pipe(kt(p=>p),nt(()=>{})),this.openedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&0===p.toState.indexOf("open")),Bf(void 0)),this._closedStream=this.openedChange.pipe(kt(p=>!p),nt(()=>{})),this.closedStart=this._animationStarted.pipe(kt(p=>p.fromState!==p.toState&&"void"===p.toState),Bf(void 0)),this._destroyed=new qe,this.onPositionChanged=new Ne,this._modeChanged=new qe,this.openedChange.subscribe(p=>{p?(this._doc&&(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement),this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{er(this._elementRef.nativeElement,"keydown").pipe(kt(p=>27===p.keyCode&&!this.disableClose&&!An(p)),ot(this._destroyed)).subscribe(p=>this._ngZone.run(()=>{this.close(),p.stopPropagation(),p.preventDefault()}))}),this._animationEnd.pipe(Ru((p,g)=>p.fromState===g.fromState&&p.toState===g.toState)).subscribe(p=>{const{fromState:g,toState:b}=p;(0===b.indexOf("open")&&"void"===g||"void"===b&&0===g.indexOf("open"))&&this.openedChange.emit(this._opened)})}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_takeFocus(){if(!this._focusTrap)return;const e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{!i&&"function"==typeof this._elementRef.nativeElement.focus&&e.focus()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus)}}_restoreFocus(e){"dialog"!==this.autoFocus&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){const e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState(),"end"===this._position&&this._updatePositionInParent("end")}ngAfterContentChecked(){this._platform.isBrowser&&(this._enableAnimations=!0)}ngOnDestroy(){this._focusTrap&&this._focusTrap.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,i){e&&i&&(this._openedVia=i);const o=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),o}_setOpen(e,i,o){return this._opened=e,e?this._animationState=this._enableAnimations?"open":"open-instant":(this._animationState="void",i&&this._restoreFocus(o)),this._updateFocusTrapState(),new Promise(r=>{this.openedChange.pipe(Pt(1)).subscribe(a=>r(a?"open":"close"))})}_getWidth(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop)}_updatePositionInParent(e){const i=this._elementRef.nativeElement,o=i.parentNode;"end"===e?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),o.insertBefore(this._anchor,i)),o.appendChild(i)):this._anchor&&this._anchor.parentNode.insertBefore(i,this._anchor)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ef),_(zo),_(ci),_(We),_(Fu),_(ut,8),_(GC,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer"]],viewQuery:function(i,o){if(1&i&&vt(Mee,5),2&i){let r;Oe(r=Ae())&&(o._content=r.first)}},hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer"],hostVars:12,hostBindings:function(i,o){1&i&&ep("@transform.start",function(a){return o._animationStarted.next(a)})("@transform.done",function(a){return o._animationEnd.next(a)}),2&i&&(Xe("align",null),Zm("@transform",o._animationState),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),uR=(()=>{class t{get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=$e(e)}get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=null==e?null:$e(e)}get scrollable(){return this._userContent||this._content}constructor(e,i,o,r,a,s=!1,c){this._dir=e,this._element=i,this._ngZone=o,this._changeDetectorRef=r,this._animationMode=c,this._drawers=new oa,this.backdropClick=new Ne,this._destroyed=new qe,this._doCheckSubject=new qe,this._contentMargins={left:null,right:null},this._contentMarginChanges=new qe,e&&e.change.pipe(ot(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),a.change().pipe(ot(this._destroyed)).subscribe(()=>this.updateContentMargins()),this._autosize=s}ngAfterContentInit(){this._allDrawers.changes.pipe(an(this._allDrawers),ot(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(i=>!i._container||i._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(an(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(Wp(10),ot(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,i=0;if(this._left&&this._left.opened)if("side"==this._left.mode)e+=this._left._getWidth();else if("push"==this._left.mode){const o=this._left._getWidth();e+=o,i-=o}if(this._right&&this._right.opened)if("side"==this._right.mode)i+=this._right._getWidth();else if("push"==this._right.mode){const o=this._right._getWidth();i+=o,e-=o}e=e||null,i=i||null,(e!==this._contentMargins.left||i!==this._contentMargins.right)&&(this._contentMargins={left:e,right:i},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(kt(i=>i.fromState!==i.toState),ot(this._drawers.changes)).subscribe(i=>{"open-instant"!==i.toState&&"NoopAnimations"!==this._animationMode&&this._element.nativeElement.classList.add("mat-drawer-transition"),this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),"side"!==e.mode&&e.openedChange.pipe(ot(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e&&e.onPositionChanged.pipe(ot(this._drawers.changes)).subscribe(()=>{this._ngZone.onMicrotaskEmpty.pipe(Pt(1)).subscribe(()=>{this._validateDrawers()})})}_watchDrawerMode(e){e&&e._modeChanged.pipe(ot(Ri(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){const i=this._element.nativeElement.classList,o="mat-drawer-container-has-open";e?i.add(o):i.remove(o)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{"end"==e.position?this._end=e:this._start=e}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return null!=e&&e.opened}_drawerHasBackdrop(e){return null==this._backdropOverride?!!e&&"side"!==e.mode:this._backdropOverride}static#e=this.\u0275fac=function(i){return new(i||t)(_(fn,8),_(Be),_(We),_(Lt),_(va),_(Lee),_(ui,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-drawer-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,ag,5),gt(r,dR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},viewQuery:function(i,o){if(1&i&&vt(ag,5),2&i){let r;Oe(r=Ae())&&(o._userContent=r.first)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[Ye([{provide:GC,useExisting:t}])],ngContentSelectors:Oee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Eee),y(0,Tee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Iee,2,0,"mat-drawer-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,ag],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),qC=(()=>{class t extends ag{constructor(e,i,o,r,a){super(e,i,o,r,a)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Qt(()=>mR)),_(Be),_(oh),_(We))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-content"]],hostAttrs:["ngSkipHydration","",1,"mat-drawer-content","mat-sidenav-content"],hostVars:4,hostBindings:function(i,o){2&i&&Sn("margin-left",o._container._contentMargins.left,"px")("margin-right",o._container._contentMargins.right,"px")},features:[Ye([{provide:rh,useExisting:t}]),ve],ngContentSelectors:rg,decls:1,vars:0,template:function(i,o){1&i&&(Ut(),Ze(0))},encapsulation:2,changeDetection:0})}return t})(),hR=(()=>{class t extends dR{constructor(){super(...arguments),this._fixedInViewport=!1,this._fixedTopGap=0,this._fixedBottomGap=0}get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=$e(e)}get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=yi(e)}get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=yi(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav"]],hostAttrs:["tabIndex","-1","ngSkipHydration","",1,"mat-drawer","mat-sidenav"],hostVars:17,hostBindings:function(i,o){2&i&&(Xe("align",null),Sn("top",o.fixedInViewport?o.fixedTopGap:null,"px")("bottom",o.fixedInViewport?o.fixedBottomGap:null,"px"),et("mat-drawer-end","end"===o.position)("mat-drawer-over","over"===o.mode)("mat-drawer-push","push"===o.mode)("mat-drawer-side","side"===o.mode)("mat-drawer-opened",o.opened)("mat-sidenav-fixed",o.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[ve],ngContentSelectors:rg,decls:3,vars:0,consts:[["cdkScrollable","",1,"mat-drawer-inner-container"],["content",""]],template:function(i,o){1&i&&(Ut(),d(0,"div",0,1),Ze(2),l())},dependencies:[rh],encapsulation:2,data:{animation:[lR.transformDrawer]},changeDetection:0})}return t})(),mR=(()=>{class t extends uR{constructor(){super(...arguments),this._allDrawers=void 0,this._content=void 0}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-sidenav-container"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,qC,5),gt(r,hR,5)),2&i){let a;Oe(a=Ae())&&(o._content=a.first),Oe(a=Ae())&&(o._allDrawers=a)}},hostAttrs:["ngSkipHydration","",1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(i,o){2&i&&et("mat-drawer-container-explicit-backdrop",o._backdropOverride)},exportAs:["matSidenavContainer"],features:[Ye([{provide:GC,useExisting:t}]),ve],ngContentSelectors:Nee,decls:4,vars:2,consts:[["class","mat-drawer-backdrop",3,"mat-drawer-shown","click",4,"ngIf"],[4,"ngIf"],[1,"mat-drawer-backdrop",3,"click"]],template:function(i,o){1&i&&(Ut(Ree),y(0,Aee,1,2,"div",0),Ze(1),Ze(2,1),y(3,Pee,2,0,"mat-sidenav-content",1)),2&i&&(f("ngIf",o.hasBackdrop),m(3),f("ngIf",!o._content))},dependencies:[It,qC],styles:['.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*="visibility: hidden"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}'],encapsulation:2,changeDetection:0})}return t})(),pR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt,ms,ms,Mt]})}return t})();const Vee=["panel"];function jee(t,n){if(1&t){const e=_e();d(0,"div",0,1),A("@panelAnimation.done",function(o){return ie(e),ne(C()._animationDone.next(o))}),Ze(2),l()}if(2&t){const e=n.id,i=C();f("id",i.id)("ngClass",i._classList)("@panelAnimation",i.isOpen?"visible":"hidden"),Xe("aria-label",i.ariaLabel||null)("aria-labelledby",i._getPanelAriaLabelledby(e))}}const zee=["*"],Hee=Lo("panelAnimation",[mn("void, hidden",Zt({opacity:0,transform:"scaleY(0.8)"})),Qi(":enter, hidden => visible",[vy([Yi("0.03s linear",Zt({opacity:1})),Yi("0.12s cubic-bezier(0, 0, 0.2, 1)",Zt({transform:"scaleY(1)"}))])]),Qi(":leave, visible => hidden",[Yi("0.075s linear",Zt({opacity:0}))])]);let Uee=0;class $ee{constructor(n,e){this.source=n,this.option=e}}const Gee=ns(class{}),fR=new se("mat-autocomplete-default-options",{providedIn:"root",factory:function qee(){return{autoActiveFirstOption:!1,autoSelectActiveOption:!1,hideSingleSelectionIndicator:!1,requireSelection:!1}}});let Wee=(()=>{class t extends Gee{get isOpen(){return this._isOpen&&this.showPanel}_setColor(e){this._color=e,this._setThemeClasses(this._classList)}get autoActiveFirstOption(){return this._autoActiveFirstOption}set autoActiveFirstOption(e){this._autoActiveFirstOption=$e(e)}get autoSelectActiveOption(){return this._autoSelectActiveOption}set autoSelectActiveOption(e){this._autoSelectActiveOption=$e(e)}get requireSelection(){return this._requireSelection}set requireSelection(e){this._requireSelection=$e(e)}set classList(e){this._classList=e&&e.length?function yG(t,n=/\s+/){const e=[];if(null!=t){const i=Array.isArray(t)?t:`${t}`.split(n);for(const o of i){const r=`${o}`.trim();r&&e.push(r)}}return e}(e).reduce((i,o)=>(i[o]=!0,i),{}):{},this._setVisibilityClasses(this._classList),this._setThemeClasses(this._classList),this._elementRef.nativeElement.className=""}constructor(e,i,o,r){super(),this._changeDetectorRef=e,this._elementRef=i,this._defaults=o,this._activeOptionChanges=de.EMPTY,this.showPanel=!1,this._isOpen=!1,this.displayWith=null,this.optionSelected=new Ne,this.opened=new Ne,this.closed=new Ne,this.optionActivated=new Ne,this._classList={},this.id="mat-autocomplete-"+Uee++,this.inertGroups=r?.SAFARI||!1,this._autoActiveFirstOption=!!o.autoActiveFirstOption,this._autoSelectActiveOption=!!o.autoSelectActiveOption,this._requireSelection=!!o.requireSelection}ngAfterContentInit(){this._keyManager=new hE(this.options).withWrap().skipPredicate(this._skipPredicate),this._activeOptionChanges=this._keyManager.change.subscribe(e=>{this.isOpen&&this.optionActivated.emit({source:this,option:this.options.toArray()[e]||null})}),this._setVisibility()}ngOnDestroy(){this._keyManager?.destroy(),this._activeOptionChanges.unsubscribe()}_setScrollTop(e){this.panel&&(this.panel.nativeElement.scrollTop=e)}_getScrollTop(){return this.panel?this.panel.nativeElement.scrollTop:0}_setVisibility(){this.showPanel=!!this.options.length,this._setVisibilityClasses(this._classList),this._changeDetectorRef.markForCheck()}_emitSelectEvent(e){const i=new $ee(this,e);this.optionSelected.emit(i)}_getPanelAriaLabelledby(e){return this.ariaLabel?null:this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_setVisibilityClasses(e){e[this._visibleClass]=this.showPanel,e[this._hiddenClass]=!this.showPanel}_setThemeClasses(e){e["mat-primary"]="primary"===this._color,e["mat-warn"]="warn"===this._color,e["mat-accent"]="accent"===this._color}_skipPredicate(e){return e.disabled}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt),_(Be),_(fR),_(ci))};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&(vt(gi,7),vt(Vee,5)),2&i){let r;Oe(r=Ae())&&(o.template=r.first),Oe(r=Ae())&&(o.panel=r.first)}},inputs:{ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],displayWith:"displayWith",autoActiveFirstOption:"autoActiveFirstOption",autoSelectActiveOption:"autoSelectActiveOption",requireSelection:"requireSelection",panelWidth:"panelWidth",classList:[ge.None,"class","classList"]},outputs:{optionSelected:"optionSelected",opened:"opened",closed:"closed",optionActivated:"optionActivated"},features:[ve]})}return t})(),Kee=(()=>{class t extends Wee{constructor(){super(...arguments),this._visibleClass="mat-mdc-autocomplete-visible",this._hiddenClass="mat-mdc-autocomplete-hidden",this._animationDone=new Ne,this._hideSingleSelectionIndicator=this._defaults.hideSingleSelectionIndicator??!1}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=$e(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}ngOnDestroy(){super.ngOnDestroy(),this._animationDone.complete()}_skipPredicate(e){return!1}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-autocomplete"]],contentQueries:function(i,o,r){if(1&i&&(gt(r,af,5),gt(r,Tn,5)),2&i){let a;Oe(a=Ae())&&(o.optionGroups=a),Oe(a=Ae())&&(o.options=a)}},hostAttrs:["ngSkipHydration","",1,"mat-mdc-autocomplete"],inputs:{disableRipple:"disableRipple",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matAutocomplete"],features:[Ye([{provide:rf,useExisting:t}]),ve],ngContentSelectors:zee,decls:1,vars:0,consts:[["role","listbox",1,"mat-mdc-autocomplete-panel","mdc-menu-surface","mdc-menu-surface--open",3,"id","ngClass"],["panel",""]],template:function(i,o){1&i&&(Ut(),y(0,jee,3,5,"ng-template"))},dependencies:[yr],styles:["div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}"],encapsulation:2,data:{animation:[Hee]},changeDetection:0})}return t})();const Zee={provide:uo,useExisting:Qt(()=>_R),multi:!0},gR=new se("mat-autocomplete-scroll-strategy"),Qee={provide:gR,deps:[Qn],useFactory:function Yee(t){return()=>t.scrollStrategies.reposition()}};let Xee=(()=>{class t{get autocompleteDisabled(){return this._autocompleteDisabled}set autocompleteDisabled(e){this._autocompleteDisabled=$e(e)}constructor(e,i,o,r,a,s,c,u,p,g,b){this._element=e,this._overlay=i,this._viewContainerRef=o,this._zone=r,this._changeDetectorRef=a,this._dir=c,this._formField=u,this._document=p,this._viewportRuler=g,this._defaults=b,this._componentDestroyed=!1,this._autocompleteDisabled=!1,this._manuallyFloatingLabel=!1,this._viewportSubscription=de.EMPTY,this._canOpenOnNextFocus=!0,this._closeKeyEventStream=new qe,this._windowBlurHandler=()=>{this._canOpenOnNextFocus=this._document.activeElement!==this._element.nativeElement||this.panelOpen},this._onChange=()=>{},this._onTouched=()=>{},this.position="auto",this.autocompleteAttribute="off",this._overlayAttached=!1,this.optionSelections=Vl(()=>{const w=this.autocomplete?this.autocomplete.options:null;return w?w.changes.pipe(an(w),gn(()=>Ri(...w.map(k=>k.onSelectionChange)))):this._zone.onStable.pipe(Pt(1),gn(()=>this.optionSelections))}),this._handlePanelKeydown=w=>{(27===w.keyCode&&!An(w)||38===w.keyCode&&An(w,"altKey"))&&(this._pendingAutoselectedOption&&(this._updateNativeInputValue(this._valueBeforeAutoSelection??""),this._pendingAutoselectedOption=null),this._closeKeyEventStream.next(),this._resetActiveItem(),w.stopPropagation(),w.preventDefault())},this._trackedModal=null,this._scrollStrategy=s}ngAfterViewInit(){const e=this._getWindow();typeof e<"u"&&this._zone.runOutsideAngular(()=>e.addEventListener("blur",this._windowBlurHandler))}ngOnChanges(e){e.position&&this._positionStrategy&&(this._setStrategyPositions(this._positionStrategy),this.panelOpen&&this._overlayRef.updatePosition())}ngOnDestroy(){const e=this._getWindow();typeof e<"u"&&e.removeEventListener("blur",this._windowBlurHandler),this._viewportSubscription.unsubscribe(),this._componentDestroyed=!0,this._destroyPanel(),this._closeKeyEventStream.complete(),this._clearFromModal()}get panelOpen(){return this._overlayAttached&&this.autocomplete.showPanel}openPanel(){this._attachOverlay(),this._floatLabel(),this._trackedModal&&Yp(this._trackedModal,"aria-owns",this.autocomplete.id)}closePanel(){this._resetLabel(),this._overlayAttached&&(this.panelOpen&&this._zone.run(()=>{this.autocomplete.closed.emit()}),this.autocomplete._isOpen=this._overlayAttached=!1,this._pendingAutoselectedOption=null,this._overlayRef&&this._overlayRef.hasAttached()&&(this._overlayRef.detach(),this._closingActionsSubscription.unsubscribe()),this._updatePanelState(),this._componentDestroyed||this._changeDetectorRef.detectChanges(),this._trackedModal)&&Tl(this._trackedModal,"aria-owns",this.autocomplete.id)}updatePosition(){this._overlayAttached&&this._overlayRef.updatePosition()}get panelClosingActions(){return Ri(this.optionSelections,this.autocomplete._keyManager.tabOut.pipe(kt(()=>this._overlayAttached)),this._closeKeyEventStream,this._getOutsideClickStream(),this._overlayRef?this._overlayRef.detachments().pipe(kt(()=>this._overlayAttached)):Ke()).pipe(nt(e=>e instanceof IE?e:null))}get activeOption(){return this.autocomplete&&this.autocomplete._keyManager?this.autocomplete._keyManager.activeItem:null}_getOutsideClickStream(){return Ri(er(this._document,"click"),er(this._document,"auxclick"),er(this._document,"touchend")).pipe(kt(e=>{const i=pa(e),o=this._formField?this._formField._elementRef.nativeElement:null,r=this.connectedTo?this.connectedTo.elementRef.nativeElement:null;return this._overlayAttached&&i!==this._element.nativeElement&&this._document.activeElement!==this._element.nativeElement&&(!o||!o.contains(i))&&(!r||!r.contains(i))&&!!this._overlayRef&&!this._overlayRef.overlayElement.contains(i)}))}writeValue(e){Promise.resolve(null).then(()=>this._assignOptionValue(e))}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this._element.nativeElement.disabled=e}_handleKeydown(e){const i=e.keyCode,o=An(e);if(27===i&&!o&&e.preventDefault(),this.activeOption&&13===i&&this.panelOpen&&!o)this.activeOption._selectViaInteraction(),this._resetActiveItem(),e.preventDefault();else if(this.autocomplete){const r=this.autocomplete._keyManager.activeItem,a=38===i||40===i;9===i||a&&!o&&this.panelOpen?this.autocomplete._keyManager.onKeydown(e):a&&this._canOpen()&&this.openPanel(),(a||this.autocomplete._keyManager.activeItem!==r)&&(this._scrollToOption(this.autocomplete._keyManager.activeItemIndex||0),this.autocomplete.autoSelectActiveOption&&this.activeOption&&(this._pendingAutoselectedOption||(this._valueBeforeAutoSelection=this._element.nativeElement.value),this._pendingAutoselectedOption=this.activeOption,this._assignOptionValue(this.activeOption.value)))}}_handleInput(e){let i=e.target,o=i.value;"number"===i.type&&(o=""==o?null:parseFloat(o)),this._previousValue!==o&&(this._previousValue=o,this._pendingAutoselectedOption=null,(!this.autocomplete||!this.autocomplete.requireSelection)&&this._onChange(o),o||this._clearPreviousSelectedOption(null,!1),this._canOpen()&&this._document.activeElement===e.target&&this.openPanel())}_handleFocus(){this._canOpenOnNextFocus?this._canOpen()&&(this._previousValue=this._element.nativeElement.value,this._attachOverlay(),this._floatLabel(!0)):this._canOpenOnNextFocus=!0}_handleClick(){this._canOpen()&&!this.panelOpen&&this.openPanel()}_floatLabel(e=!1){this._formField&&"auto"===this._formField.floatLabel&&(e?this._formField._animateAndLockLabel():this._formField.floatLabel="always",this._manuallyFloatingLabel=!0)}_resetLabel(){this._manuallyFloatingLabel&&(this._formField&&(this._formField.floatLabel="auto"),this._manuallyFloatingLabel=!1)}_subscribeToClosingActions(){return Ri(this._zone.onStable.pipe(Pt(1)),this.autocomplete.options.changes.pipe(qt(()=>this._positionStrategy.reapplyLastPosition()),hC(0))).pipe(gn(()=>(this._zone.run(()=>{const o=this.panelOpen;this._resetActiveItem(),this._updatePanelState(),this._changeDetectorRef.detectChanges(),this.panelOpen&&this._overlayRef.updatePosition(),o!==this.panelOpen&&(this.panelOpen?(this._captureValueOnAttach(),this._emitOpened()):this.autocomplete.closed.emit())}),this.panelClosingActions)),Pt(1)).subscribe(o=>this._setValueAndClose(o))}_emitOpened(){this.autocomplete.opened.emit()}_captureValueOnAttach(){this._valueOnAttach=this._element.nativeElement.value}_destroyPanel(){this._overlayRef&&(this.closePanel(),this._overlayRef.dispose(),this._overlayRef=null)}_assignOptionValue(e){const i=this.autocomplete&&this.autocomplete.displayWith?this.autocomplete.displayWith(e):e;this._updateNativeInputValue(i??"")}_updateNativeInputValue(e){this._formField?this._formField._control.value=e:this._element.nativeElement.value=e,this._previousValue=e}_setValueAndClose(e){const i=this.autocomplete,o=e?e.source:this._pendingAutoselectedOption;o?(this._clearPreviousSelectedOption(o),this._assignOptionValue(o.value),this._onChange(o.value),i._emitSelectEvent(o),this._element.nativeElement.focus()):i.requireSelection&&this._element.nativeElement.value!==this._valueOnAttach&&(this._clearPreviousSelectedOption(null),this._assignOptionValue(null),i._animationDone?i._animationDone.pipe(Pt(1)).subscribe(()=>this._onChange(null)):this._onChange(null)),this.closePanel()}_clearPreviousSelectedOption(e,i){this.autocomplete?.options?.forEach(o=>{o!==e&&o.selected&&o.deselect(i)})}_attachOverlay(){let e=this._overlayRef;e?(this._positionStrategy.setOrigin(this._getConnectedElement()),e.updateSize({width:this._getPanelWidth()})):(this._portal=new ya(this.autocomplete.template,this._viewContainerRef,{id:this._formField?.getLabelId()}),e=this._overlay.create(this._getOverlayConfig()),this._overlayRef=e,this._viewportSubscription=this._viewportRuler.change().subscribe(()=>{this.panelOpen&&e&&e.updateSize({width:this._getPanelWidth()})})),e&&!e.hasAttached()&&(e.attach(this._portal),this._closingActionsSubscription=this._subscribeToClosingActions());const i=this.panelOpen;this.autocomplete._isOpen=this._overlayAttached=!0,this.autocomplete._setColor(this._formField?.color),this._updatePanelState(),this._applyModalPanelOwnership(),this._captureValueOnAttach(),this.panelOpen&&i!==this.panelOpen&&this._emitOpened()}_updatePanelState(){if(this.autocomplete._setVisibility(),this.panelOpen){const e=this._overlayRef;this._keydownSubscription||(this._keydownSubscription=e.keydownEvents().subscribe(this._handlePanelKeydown)),this._outsideClickSubscription||(this._outsideClickSubscription=e.outsidePointerEvents().subscribe())}else this._keydownSubscription?.unsubscribe(),this._outsideClickSubscription?.unsubscribe(),this._keydownSubscription=this._outsideClickSubscription=null}_getOverlayConfig(){return new Bl({positionStrategy:this._getOverlayPosition(),scrollStrategy:this._scrollStrategy(),width:this._getPanelWidth(),direction:this._dir??void 0,panelClass:this._defaults?.overlayPanelClass})}_getOverlayPosition(){const e=this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(!1).withPush(!1);return this._setStrategyPositions(e),this._positionStrategy=e,e}_setStrategyPositions(e){const i=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],o=this._aboveClass,r=[{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:o},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:o}];let a;a="above"===this.position?r:"below"===this.position?i:[...i,...r],e.withPositions(a)}_getConnectedElement(){return this.connectedTo?this.connectedTo.elementRef:this._formField?this._formField.getConnectedOverlayOrigin():this._element}_getPanelWidth(){return this.autocomplete.panelWidth||this._getHostWidth()}_getHostWidth(){return this._getConnectedElement().nativeElement.getBoundingClientRect().width}_resetActiveItem(){const e=this.autocomplete;if(e.autoActiveFirstOption){let i=-1;for(let o=0;o .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=this.autocomplete.id;this._trackedModal&&Tl(this._trackedModal,"aria-owns",i),Yp(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(Tl(this._trackedModal,"aria-owns",this.autocomplete.id),this._trackedModal=null)}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(Qn),_(vi),_(We),_(Lt),_(gR),_(fn,8),_(th,9),_(ut,8),_(va),_(fR,8))};static#t=this.\u0275dir=Q({type:t,inputs:{autocomplete:[ge.None,"matAutocomplete","autocomplete"],position:[ge.None,"matAutocompletePosition","position"],connectedTo:[ge.None,"matAutocompleteConnectedTo","connectedTo"],autocompleteAttribute:[ge.None,"autocomplete","autocompleteAttribute"],autocompleteDisabled:[ge.None,"matAutocompleteDisabled","autocompleteDisabled"]},features:[fi]})}return t})(),_R=(()=>{class t extends Xee{constructor(){super(...arguments),this._aboveClass="mat-mdc-autocomplete-panel-above"}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["input","matAutocomplete",""],["textarea","matAutocomplete",""]],hostAttrs:[1,"mat-mdc-autocomplete-trigger"],hostVars:7,hostBindings:function(i,o){1&i&&A("focusin",function(){return o._handleFocus()})("blur",function(){return o._onTouched()})("input",function(a){return o._handleInput(a)})("keydown",function(a){return o._handleKeydown(a)})("click",function(){return o._handleClick()}),2&i&&Xe("autocomplete",o.autocompleteAttribute)("role",o.autocompleteDisabled?null:"combobox")("aria-autocomplete",o.autocompleteDisabled?null:"list")("aria-activedescendant",o.panelOpen&&o.activeOption?o.activeOption.id:null)("aria-expanded",o.autocompleteDisabled?null:o.panelOpen.toString())("aria-controls",o.autocompleteDisabled||!o.panelOpen||null==o.autocomplete?null:o.autocomplete.id)("aria-haspopup",o.autocompleteDisabled?null:"listbox")},exportAs:["matAutocompleteTrigger"],features:[Ye([Zee]),ve]})}return t})(),bR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[Qee],imports:[dc,sf,Mt,Vn,ms,sf,Mt]})}return t})();function Jee(t,n){if(1&t&&(d(0,"mat-option",19),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function ete(t,n){if(1&t){const e=_e();d(0,"mat-form-field",16)(1,"mat-select",17),A("selectionChange",function(o){return ie(e),ne(C(2)._changePageSize(o.value))}),y(2,Jee,2,2,"mat-option",18),l()()}if(2&t){const e=C(2);f("appearance",e._formFieldAppearance)("color",e.color),m(),f("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),m(),f("ngForOf",e._displayedPageSizeOptions)}}function tte(t,n){if(1&t&&(d(0,"div",20),h(1),l()),2&t){const e=C(2);m(),Pe(e.pageSize)}}function ite(t,n){if(1&t&&(d(0,"div",12)(1,"div",13),h(2),l(),y(3,ete,3,8,"mat-form-field",14)(4,tte,2,1,"div",15),l()),2&t){const e=C();m(),vv("id",e._pageSizeLabelId),m(),xe(" ",e._intl.itemsPerPageLabel," "),m(),f("ngIf",e._displayedPageSizeOptions.length>1),m(),f("ngIf",e._displayedPageSizeOptions.length<=1)}}function nte(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().firstPage())}),ei(),d(1,"svg",7),D(2,"path",22),l()()}if(2&t){const e=C();f("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Xe("aria-label",e._intl.firstPageLabel)}}function ote(t,n){if(1&t){const e=_e();ei(),pr(),d(0,"button",23),A("click",function(){return ie(e),ne(C().lastPage())}),ei(),d(1,"svg",7),D(2,"path",24),l()()}if(2&t){const e=C();f("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Xe("aria-label",e._intl.lastPageLabel)}}let sg=(()=>{class t{constructor(){this.changes=new qe,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.firstPageLabel="First page",this.lastPageLabel="Last page",this.getRangeLabel=(e,i,o)=>{if(0==o||0==i)return`0 of ${o}`;const r=e*i;return`${r+1} \u2013 ${r<(o=Math.max(o,0))?Math.min(r+i,o):r+i} of ${o}`}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ate={provide:sg,deps:[[new za,new Vc,sg]],useFactory:function rte(t){return t||new sg}},cte=new se("MAT_PAGINATOR_DEFAULT_OPTIONS"),lte=jr(gq(class{}));let dte=(()=>{class t extends lte{get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(yi(e),0),this._changeDetectorRef.markForCheck()}get length(){return this._length}set length(e){this._length=yi(e),this._changeDetectorRef.markForCheck()}get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(yi(e),0),this._updateDisplayedPageSizeOptions()}get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>yi(i)),this._updateDisplayedPageSizeOptions()}get hidePageSize(){return this._hidePageSize}set hidePageSize(e){this._hidePageSize=$e(e)}get showFirstLastButtons(){return this._showFirstLastButtons}set showFirstLastButtons(e){this._showFirstLastButtons=$e(e)}constructor(e,i,o){if(super(),this._intl=e,this._changeDetectorRef=i,this._pageIndex=0,this._length=0,this._pageSizeOptions=[],this._hidePageSize=!1,this._showFirstLastButtons=!1,this.selectConfig={},this.page=new Ne,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),o){const{pageSize:r,pageSizeOptions:a,hidePageSize:s,showFirstLastButtons:c}=o;null!=r&&(this._pageSize=r),null!=a&&(this._pageSizeOptions=a),null!=s&&(this._hidePageSize=s),null!=c&&(this._showFirstLastButtons=c)}}ngOnInit(){this._initialized=!0,this._updateDisplayedPageSizeOptions(),this._markInitialized()}ngOnDestroy(){this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;const e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;const e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&0!=this.pageSize}hasNextPage(){const e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",pageIndex:"pageIndex",length:"length",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",hidePageSize:"hidePageSize",showFirstLastButtons:"showFirstLastButtons",selectConfig:"selectConfig"},outputs:{page:"page"},features:[ve]})}return t})(),ute=0,WC=(()=>{class t extends dte{constructor(e,i,o){super(e,i,o),this._pageSizeLabelId="mat-paginator-page-size-label-"+ute++,this._formFieldAppearance=o?.formFieldAppearance||"outline"}static#e=this.\u0275fac=function(i){return new(i||t)(_(sg),_(Lt),_(cte,8))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{disabled:"disabled"},exportAs:["matPaginator"],features:[ve],decls:14,vars:14,consts:[[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],["class","mat-mdc-paginator-page-size",4,"ngIf"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-previous",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-next",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","class","mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click",4,"ngIf"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-page-size-label",3,"id"],["class","mat-mdc-paginator-page-size-select",3,"appearance","color",4,"ngIf"],["class","mat-mdc-paginator-page-size-value",4,"ngIf"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],["hideSingleSelectionIndicator","",3,"value","disabled","aria-labelledby","panelClass","disableOptionCentering","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"mat-mdc-paginator-page-size-value"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled","click"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1),y(2,ite,5,4,"div",2),d(3,"div",3)(4,"div",4),h(5),l(),y(6,nte,3,5,"button",5),d(7,"button",6),A("click",function(){return o.previousPage()}),ei(),d(8,"svg",7),D(9,"path",8),l()(),pr(),d(10,"button",9),A("click",function(){return o.nextPage()}),ei(),d(11,"svg",7),D(12,"path",10),l()(),y(13,ote,3,5,"button",11),l()()()),2&i&&(m(2),f("ngIf",!o.hidePageSize),m(3),xe(" ",o._intl.getRangeLabel(o.pageIndex,o.pageSize,o.length)," "),m(),f("ngIf",o.showFirstLastButtons),m(),f("matTooltip",o._intl.previousPageLabel)("matTooltipDisabled",o._previousButtonsDisabled())("matTooltipPosition","above")("disabled",o._previousButtonsDisabled()),Xe("aria-label",o._intl.previousPageLabel),m(3),f("matTooltip",o._intl.nextPageLabel)("matTooltipDisabled",o._nextButtonsDisabled())("matTooltipPosition","above")("disabled",o._nextButtonsDisabled()),Xe("aria-label",o._intl.nextPageLabel),m(3),f("ngIf",o.showFirstLastButtons))},dependencies:[rn,It,ba,Di,Xn,Tn,vn],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return t})(),vR=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({providers:[ate],imports:[Vn,lf,uC,$C]})}return t})();const hte=[FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR];let mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[hte,FE,lf,gO,bO,CO,kA,ih,jA,uC,CA,oP,dP,vP,OC,vR,OP,zP,jC,eR,A0,$C,cR,pR,bR]})}return t})();const pte=["input"],fte=["*"];let yR=0;class CR{constructor(n,e){this.source=n,this.value=e}}const gte={provide:uo,useExisting:Qt(()=>cg),multi:!0},wR=new se("MatRadioGroup"),_te=new se("mat-radio-default-options",{providedIn:"root",factory:function bte(){return{color:"accent"}}});let vte=(()=>{class t{get name(){return this._name}set name(e){this._name=e,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition="before"===e?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(e){this._disabled=$e(e),this._markRadiosForCheck()}get required(){return this._required}set required(e){this._required=$e(e),this._markRadiosForCheck()}constructor(e){this._changeDetector=e,this._value=null,this._name="mat-radio-group-"+yR++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ne}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(e=>e===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(e=>{e.name=this.name,e._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new CR(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(e=>e._markForCheck())}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Lt))};static#t=this.\u0275dir=Q({type:t,inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:"disabled",required:"required"},outputs:{change:"change"}})}return t})();class yte{constructor(n){this._elementRef=n}}const Cte=ns(os(yte));let wte=(()=>{class t extends Cte{get checked(){return this._checked}set checked(e){const i=$e(e);this._checked!==i&&(this._checked=i,i&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!i&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),i&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(e){this._setDisabled($e(e))}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=$e(e)}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(e){this._color=e}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,o,r,a,s,c,u){super(i),this._changeDetector=o,this._focusMonitor=r,this._radioDispatcher=a,this._providerOverride=c,this._uniqueId="mat-radio-"+ ++yR,this.id=this._uniqueId,this.change=new Ne,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=e,this._noopAnimations="NoopAnimations"===s,u&&(this.tabIndex=yi(u,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new CR(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(e){e.stopPropagation()}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_updateTabIndex(){const e=this.radioGroup;let i;if(i=e&&e.selected&&!this.disabled?e.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const o=this._inputElement?.nativeElement;o&&(o.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275dir=Q({type:t,viewQuery:function(i,o){if(1&i&&vt(pte,5),2&i){let r;Oe(r=Ae())&&(o._inputElement=r.first)}},inputs:{id:"id",name:"name",ariaLabel:[ge.None,"aria-label","ariaLabel"],ariaLabelledby:[ge.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[ge.None,"aria-describedby","ariaDescribedby"],checked:"checked",value:"value",labelPosition:"labelPosition",disabled:"disabled",required:"required",color:"color"},outputs:{change:"change"},features:[ve]})}return t})(),cg=(()=>{class t extends vte{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275dir=Q({type:t,selectors:[["mat-radio-group"]],contentQueries:function(i,o,r){if(1&i&>(r,lg,5),2&i){let a;Oe(a=Ae())&&(o._radios=a)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],exportAs:["matRadioGroup"],features:[Ye([gte,{provide:wR,useExisting:t}]),ve]})}return t})(),lg=(()=>{class t extends wte{constructor(e,i,o,r,a,s,c,u){super(e,i,o,r,a,s,c,u)}static#e=this.\u0275fac=function(i){return new(i||t)(_(wR,8),_(Be),_(Lt),_(zo),_(N0),_(ui,8),_(_te,8),oo("tabindex"))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-radio-button"]],hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,o){1&i&&A("focus",function(){return o._inputElement.nativeElement.focus()}),2&i&&(Xe("id",o.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),et("mat-primary","primary"===o.color)("mat-accent","accent"===o.color)("mat-warn","warn"===o.color)("mat-mdc-radio-checked",o.checked)("_mat-animation-noopable",o._noopAnimations))},inputs:{disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matRadioButton"],features:[ve],ngContentSelectors:fte,decls:13,vars:17,consts:[[1,"mdc-form-field"],["formField",""],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"id","checked","disabled","required","change"],["input",""],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,o){if(1&i&&(Ut(),d(0,"div",0,1)(2,"div",2)(3,"div",3),A("click",function(a){return o._onTouchTargetClick(a)}),l(),d(4,"input",4,5),A("change",function(a){return o._onInputInteraction(a)}),l(),d(6,"div",6),D(7,"div",7)(8,"div",8),l(),d(9,"div",9),D(10,"div",10),l()(),d(11,"label",11),Ze(12),l()()),2&i){const r=Ft(1);et("mdc-form-field--align-end","before"==o.labelPosition),m(2),et("mdc-radio--disabled",o.disabled),m(2),f("id",o.inputId)("checked",o.checked)("disabled",o.disabled)("required",o.required),Xe("name",o.name)("value",o.value)("aria-label",o.ariaLabel)("aria-labelledby",o.ariaLabelledby)("aria-describedby",o.ariaDescribedby),m(5),f("matRippleTrigger",r)("matRippleDisabled",o._isRippleDisabled())("matRippleCentered",!0),m(2),f("for",o.inputId)}},dependencies:[rs],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return t})(),xte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Mt,Vn,as,Mt]})}return t})();class Dte{constructor(n,e){this._document=e;const i=this._textarea=this._document.createElement("textarea"),o=i.style;o.position="fixed",o.top=o.opacity="0",o.left="-999em",i.setAttribute("aria-hidden","true"),i.value=n,i.readOnly=!0,(this._document.fullscreenElement||this._document.body).appendChild(i)}copy(){const n=this._textarea;let e=!1;try{if(n){const i=this._document.activeElement;n.select(),n.setSelectionRange(0,n.value.length),e=this._document.execCommand("copy"),i&&i.focus()}}catch{}return e}destroy(){const n=this._textarea;n&&(n.remove(),this._textarea=void 0)}}let Ste=(()=>{class t{constructor(e){this._document=e}copy(e){const i=this.beginCopy(e),o=i.copy();return i.destroy(),o}beginCopy(e){return new Dte(e,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(X(ut))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const kte=new se("CDK_COPY_TO_CLIPBOARD_CONFIG");let KC=(()=>{class t{constructor(e,i,o){this._clipboard=e,this._ngZone=i,this.text="",this.attempts=1,this.copied=new Ne,this._pending=new Set,o&&null!=o.attempts&&(this.attempts=o.attempts)}copy(e=this.attempts){if(e>1){let i=e;const o=this._clipboard.beginCopy(this.text);this._pending.add(o);const r=()=>{const a=o.copy();a||! --i||this._destroyed?(this._currentTimeout=null,this._pending.delete(o),o.destroy(),this.copied.emit(a)):this._currentTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(r,1))};r()}else this.copied.emit(this._clipboard.copy(this.text))}ngOnDestroy(){this._currentTimeout&&clearTimeout(this._currentTimeout),this._pending.forEach(e=>e.destroy()),this._pending.clear(),this._destroyed=!0}static#e=this.\u0275fac=function(i){return new(i||t)(_(Ste),_(We),_(kte,8))};static#t=this.\u0275dir=Q({type:t,selectors:[["","cdkCopyToClipboard",""]],hostBindings:function(i,o){1&i&&A("click",function(){return o.copy()})},inputs:{text:[ge.None,"cdkCopyToClipboard","text"],attempts:[ge.None,"cdkCopyToClipboardAttempts","attempts"]},outputs:{copied:"cdkCopyToClipboardCopied"}})}return t})(),Mte=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();const dg=L(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function ug(t){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function xR(t=Tte){return $i((n,e)=>{let i=!1;n.subscribe(Fi(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function Tte(){return new dg}function hc(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,Pt(1),e?ug(n):xR(()=>new dg))}function ZC(t){return t<=0?()=>jo:$i((n,e)=>{let i=[];n.subscribe(Fi(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}const Bt="primary",uh=Symbol("RouteTitle");class Ate{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function ql(t){return new Ate(t)}function Pte(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function SR(t){return t.length>0?t[t.length-1]:null}function vs(t){return Pl(t)?t:pu(t)?Xi(Promise.resolve(t)):Ke(t)}const Nte={exact:function TR(t,n,e){if(!mc(t.segments,n.segments)||!hg(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!TR(t.children[i],n.children[i],e))return!1;return!0},subset:IR},kR={exact:function Fte(t,n){return Ur(t,n)},subset:function Lte(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>DR(t[e],n[e]))},ignored:()=>!0};function MR(t,n,e){return Nte[e.paths](t.root,n.root,e.matrixParams)&&kR[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function IR(t,n,e){return ER(t,n,n.segments,e)}function ER(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!mc(o,e)||n.hasChildren()||!hg(o,e,i))}if(t.segments.length===e.length){if(!mc(t.segments,e)||!hg(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!IR(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(mc(t.segments,o)&&hg(t.segments,o,i)&&t.children[Bt])&&ER(t.children[Bt],n,r,i)}}function hg(t,n,e){return n.every((i,o)=>kR[e](t[o].parameters,i.parameters))}class Wl{constructor(n=new Si([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return jte.serialize(this)}}class Si{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return mg(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=ql(this.parameters),this._parameterMap}toString(){return PR(this)}}function mc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let Kl=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>new QC,providedIn:"root"})}return t})();class QC{parse(n){const e=new Qte(n);return new Wl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${mh(n.root,!0)}`,i=function Ute(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${pg(e)}=${pg(o)}`).join("&"):`${pg(e)}=${pg(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function zte(t){return encodeURI(t)}(n.fragment)}`:""}`}}const jte=new QC;function mg(t){return t.segments.map(n=>PR(n)).join("/")}function mh(t,n){if(!t.hasChildren())return mg(t);if(n){const e=t.children[Bt]?mh(t.children[Bt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Bt&&i.push(`${o}:${mh(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function Vte(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Bt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Bt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Bt?[mh(t.children[Bt],!1)]:[`${o}:${mh(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Bt]?`${mg(t)}/${e[0]}`:`${mg(t)}/(${e.join("//")})`}}function OR(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function pg(t){return OR(t).replace(/%3B/gi,";")}function XC(t){return OR(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fg(t){return decodeURIComponent(t)}function AR(t){return fg(t.replace(/\+/g,"%20"))}function PR(t){return`${XC(t.path)}${function Hte(t){return Object.entries(t).map(([n,e])=>`;${XC(n)}=${XC(e)}`).join("")}(t.parameters)}`}const $te=/^[^\/()?;#]+/;function JC(t){const n=t.match($te);return n?n[0]:""}const Gte=/^[^\/()?;=#]+/,Wte=/^[^=?&#]+/,Zte=/^[^&#]+/;class Qte{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Si([],{}):new Si([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Bt]=new Si(n,e)),i}parseSegment(){const n=JC(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new ue(4009,!1);return this.capture(n),new hh(fg(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function qte(t){const n=t.match(Gte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=JC(this.remaining);o&&(i=o,this.capture(i))}n[fg(e)]=fg(i)}parseQueryParam(n){const e=function Kte(t){const n=t.match(Wte);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function Yte(t){const n=t.match(Zte);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=AR(e),r=AR(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=JC(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new ue(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Bt);const a=this.parseChildren();e[r]=1===Object.keys(a).length?a[Bt]:new Si([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new ue(4011,!1)}}function RR(t){return t.segments.length>0?new Si([],{[Bt]:t}):t}function NR(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=NR(o);if(i===Bt&&0===r.segments.length&&r.hasChildren())for(const[a,s]of Object.entries(r.children))n[a]=s;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function Xte(t){if(1===t.numberOfChildren&&t.children[Bt]){const n=t.children[Bt];return new Si(t.segments.concat(n.segments),n.children)}return t}(new Si(t.segments,n))}function Zl(t){return t instanceof Wl}function FR(t){let n;const o=RR(function e(r){const a={};for(const c of r.children){const u=e(c);a[c.outlet]=u}const s=new Si(r.url,a);return r===t&&(n=s),s}(t.root));return n??o}function LR(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return ew(o,o,o,e,i);const r=function eie(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new VR(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,a)=>{if("object"==typeof r&&null!=r){if(r.outlets){const s={};return Object.entries(r.outlets).forEach(([c,u])=>{s[c]="string"==typeof u?u.split("/"):u}),[...o,{outlets:s}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===a?(r.split("/").forEach((s,c)=>{0==c&&"."===s||(0==c&&""===s?e=!0:".."===s?n++:""!=s&&o.push(s))}),o):[...o,r]},[]);return new VR(e,n,i)}(n);if(r.toRoot())return ew(o,o,new Si([],{}),e,i);const a=function tie(t,n,e){if(t.isAbsolute)return new _g(n,!0,0);if(!e)return new _g(n,!1,NaN);if(null===e.parent)return new _g(e,!0,0);const i=gg(t.commands[0])?0:1;return function iie(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new ue(4005,!1);o=i.segments.length}return new _g(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),s=a.processChildren?fh(a.segmentGroup,a.index,r.commands):jR(a.segmentGroup,a.index,r.commands);return ew(o,a.segmentGroup,s,e,i)}function gg(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function ph(t){return"object"==typeof t&&null!=t&&t.outlets}function ew(t,n,e,i,o){let a,r={};i&&Object.entries(i).forEach(([c,u])=>{r[c]=Array.isArray(u)?u.map(p=>`${p}`):`${u}`}),a=t===n?e:BR(t,n,e);const s=RR(NR(a));return new Wl(s,r,o)}function BR(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:BR(r,n,e)}),new Si(t.segments,i)}class VR{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&gg(i[0]))throw new ue(4003,!1);const o=i.find(ph);if(o&&o!==SR(i))throw new ue(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class _g{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function jR(t,n,e){if(t??=new Si([],{}),0===t.segments.length&&t.hasChildren())return fh(t,n,e);const i=function oie(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const a=t.segments[o],s=e[i];if(ph(s))break;const c=`${s}`,u=i0&&void 0===c)break;if(c&&u&&"object"==typeof u&&void 0===u.outlets){if(!HR(c,u,a))return r;i+=2}else{if(!HR(c,{},a))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Bt)&&t.children[Bt]&&1===t.numberOfChildren&&0===t.children[Bt].segments.length){const r=fh(t.children[Bt],n,e);return new Si(t.segments,r.children)}return Object.entries(i).forEach(([r,a])=>{"string"==typeof a&&(a=[a]),null!==a&&(o[r]=jR(t.children[r],n,a))}),Object.entries(t.children).forEach(([r,a])=>{void 0===i[r]&&(o[r]=a)}),new Si(t.segments,o)}}function tw(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=tw(new Si([],{}),0,i))}),n}function zR(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function HR(t,n,e){return t==e.path&&Ur(n,e.parameters)}const gh="imperative";var Xt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(Xt||{});class $r{constructor(n,e){this.id=n,this.url=e}}class bg extends $r{constructor(n,e,i="imperative",o=null){super(n,e),this.type=Xt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Oa extends $r{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=Xt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var tr=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(tr||{}),vg=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(vg||{});class Yl extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ql extends $r{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=Xt.NavigationSkipped}}class yg extends $r{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=Xt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class UR extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class aie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class sie extends $r{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=Xt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class cie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class lie extends $r{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=Xt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class die{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class uie{constructor(n){this.route=n,this.type=Xt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class hie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mie{constructor(n){this.snapshot=n,this.type=Xt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pie{constructor(n){this.snapshot=n,this.type=Xt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class fie{constructor(n){this.snapshot=n,this.type=Xt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $R{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=Xt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class iw{}class nw{constructor(n){this.url=n}}class gie{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new _h,this.attachRef=null}}let _h=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new gie,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class GR{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=ow(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=ow(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=rw(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return rw(n,this._root).map(e=>e.value)}}function ow(t,n){if(t===n.value)return n;for(const e of n.children){const i=ow(t,e);if(i)return i}return null}function rw(t,n){if(t===n.value)return[n];for(const e of n.children){const i=rw(t,e);if(i.length)return i.unshift(n),i}return[]}class Sr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function Xl(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class qR extends GR{constructor(n,e){super(n),this.snapshot=e,cw(this,n)}toString(){return this.snapshot.toString()}}function WR(t){const n=function _ie(t){const r=new sw([],{},{},"",{},Bt,t,null,{});return new KR("",new Sr(r,[]))}(t),e=new pt([new hh("",{})]),i=new pt({}),o=new pt({}),r=new pt({}),a=new pt(""),s=new Jl(e,i,r,a,o,Bt,t,n.root);return s.snapshot=n.root,new qR(new Sr(s,[]),n)}class Jl{constructor(n,e,i,o,r,a,s,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=a,this.component=s,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(nt(u=>u[uh]))??Ke(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(nt(n=>ql(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(nt(n=>ql(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function aw(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&YR(o)&&(i.resolve[uh]=o.title),i}class sw{get title(){return this.data?.[uh]}constructor(n,e,i,o,r,a,s,c,u){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=a,this.component=s,this.routeConfig=c,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=ql(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=ql(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class KR extends GR{constructor(n,e){super(e),this.url=n,cw(this,e)}toString(){return ZR(this._root)}}function cw(t,n){n.value._routerState=t,n.children.forEach(e=>cw(t,e))}function ZR(t){const n=t.children.length>0?` { ${t.children.map(ZR).join(", ")} } `:"";return`${t.value}${n}`}function lw(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Ur(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Ur(n.params,e.params)||t.paramsSubject.next(e.params),function Rte(t,n){if(t.length!==n.length)return!1;for(let e=0;eUr(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||dw(t.parent,n.parent))}function YR(t){return"string"==typeof t.title||null===t.title}let Cg=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Bt,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=De(_h),this.location=De(vi),this.changeDetector=De(Lt),this.environmentInjector=De(Ao),this.inputBinder=De(wg,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new ue(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new ue(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new ue(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new ue(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,s=this.parentContexts.getOrCreateContext(this.name).children,c=new bie(e,s,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:c,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=Q({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[fi]})}return t})();class bie{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Jl?this.route:n===_h?this.childContexts:this.parent.get(n,e)}}const wg=new se("");let QR=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Xs([i.queryParams,i.params,i.data]).pipe(gn(([r,a,s],c)=>(s={...r,...a,...s},0===c?Ke(s):Promise.resolve(s)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function i7(t){const n=Ht(t);if(!n)return null;const e=new Yd(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(a)for(const{templateName:s}of a.inputs)e.activatedComponentRef.setInput(s,r[s]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function bh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function yie(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return bh(t,i,o);return bh(t,i)})}(t,n,e);return new Sr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const a=r.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(s=>bh(t,s)),a}}const i=function Cie(t){return new Jl(new pt(t.url),new pt(t.params),new pt(t.queryParams),new pt(t.fragment),new pt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>bh(t,r));return new Sr(i,o)}}const XR="ngNavigationCancelingError";function JR(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Zl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=eN(!1,tr.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function eN(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[XR]=!0,e.cancellationCode=n,e}function tN(t){return!!t&&t[XR]}let iN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["ng-component"]],standalone:!0,features:[AM],decls:1,vars:0,template:function(i,o){1&i&&D(0,"router-outlet")},dependencies:[Cg],encapsulation:2})}return t})();function uw(t){const n=t.children&&t.children.map(uw),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Bt&&(e.component=iN),e}function Gr(t){return t.outlet||Bt}function vh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Iie{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),lw(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{const a=r.value.outlet;this.deactivateRoutes(r,o[a],i),delete o[a]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);if(i&&i.outlet){const a=i.outlet.detach(),s=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:s})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=Xl(n);for(const a of Object.values(r))this.deactivateRouteAndItsChildren(a,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=Xl(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new fie(r.value.snapshot))}),n.children.length&&this.forwardEvent(new mie(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(lw(o),o===r)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const s=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(s.contexts),a.attachRef=s.componentRef,a.route=s.route.value,a.outlet&&a.outlet.attach(s.componentRef,s.route.value),lw(s.route.value),this.activateChildRoutes(n,null,a.children)}else{const s=vh(o.snapshot);a.attachRef=null,a.route=o,a.injector=s,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class nN{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class xg{constructor(n,e){this.component=n,this.route=e}}function Eie(t,n,e){const i=t._root;return yh(i,n?n._root:null,e,[i.value])}function ed(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function WF(t){return null!==Vh(t)}(t)?n.get(t):t:i}function yh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=Xl(n);return t.children.forEach(a=>{(function Aie(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,a=n?n.value:null,s=e?e.getContext(t.value.outlet):null;if(a&&r.routeConfig===a.routeConfig){const c=function Pie(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!mc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!mc(t.url,n.url)||!Ur(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!dw(t,n)||!Ur(t.queryParams,n.queryParams);default:return!dw(t,n)}}(a,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new nN(i)):(r.data=a.data,r._resolvedData=a._resolvedData),yh(t,n,r.component?s?s.children:null:e,i,o),c&&s&&s.outlet&&s.outlet.isActivated&&o.canDeactivateChecks.push(new xg(s.outlet.component,a))}else a&&Ch(n,s,o),o.canActivateChecks.push(new nN(i)),yh(t,null,r.component?s?s.children:null:e,i,o)})(a,r[a.value.outlet],e,i.concat([a.value]),o),delete r[a.value.outlet]}),Object.entries(r).forEach(([a,s])=>Ch(s,e.getContext(a),o)),o}function Ch(t,n,e){const i=Xl(t),o=t.value;Object.entries(i).forEach(([r,a])=>{Ch(a,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new xg(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function wh(t){return"function"==typeof t}function oN(t){return t instanceof dg||"EmptyError"===t?.name}const Dg=Symbol("INITIAL_VALUE");function td(){return gn(t=>Xs(t.map(n=>n.pipe(Pt(1),an(Dg)))).pipe(nt(n=>{for(const e of n)if(!0!==e){if(e===Dg)return Dg;if(!1===e||e instanceof Wl)return e}return!0}),kt(n=>n!==Dg),Pt(1)))}function rN(t){return function WN(...t){return Tw(t)}(qt(n=>{if(Zl(n))throw JR(0,n)}),nt(n=>!0===n))}class hw{constructor(n){this.segmentGroup=n||null}}class mw extends Error{constructor(n){super(),this.urlTree=n}}function id(t){return ju(new hw(t))}class Xie{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ke(i);if(o.numberOfChildren>1||!o.children[Bt])return ju(new ue(4e3,!1));o=o.children[Bt]}}applyRedirectCommands(n,e,i){const o=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if(e.startsWith("/"))throw new mw(o);return o}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new Wl(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&r.startsWith(":")){const s=r.substring(1);i[o]=e[s]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([s,c])=>{a[s]=this.createSegmentGroup(n,c,i,o)}),new Si(r,a)}createSegments(n,e,i,o){return e.map(r=>r.path.startsWith(":")?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new ue(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const pw={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Jie(t,n,e,i,o){const r=fw(t,n,e);return r.matched?(i=function xie(t,n){return t.providers&&!t._injector&&(t._injector=Qb(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function Zie(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?Ke(o.map(a=>{const s=ed(a,t);return vs(function Vie(t){return t&&wh(t.canMatch)}(s)?s.canMatch(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN()):Ke(!0)}(i,n,e).pipe(nt(a=>!0===a?r:{...pw}))):Ke(r)}function fw(t,n,e){if("**"===n.path)return function ene(t){return{matched:!0,parameters:t.length>0?SR(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...pw}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Pte)(e,t,n);if(!o)return{...pw};const r={};Object.entries(o.posParams??{}).forEach(([s,c])=>{r[s]=c.path});const a=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function aN(t,n,e,i){return e.length>0&&function nne(t,n,e){return e.some(i=>Sg(t,n,i)&&Gr(i)!==Bt)}(t,e,i)?{segmentGroup:new Si(n,ine(i,new Si(e,t.children))),slicedSegments:[]}:0===e.length&&function one(t,n,e){return e.some(i=>Sg(t,n,i))}(t,e,i)?{segmentGroup:new Si(t.segments,tne(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Si(t.segments,t.children),slicedSegments:e}}function tne(t,n,e,i){const o={};for(const r of e)if(Sg(t,n,r)&&!i[Gr(r)]){const a=new Si([],{});o[Gr(r)]=a}return{...i,...o}}function ine(t,n){const e={};e[Bt]=n;for(const i of t)if(""===i.path&&Gr(i)!==Bt){const o=new Si([],{});e[Gr(i)]=o}return e}function Sg(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class sne{}class dne{constructor(n,e,i,o,r,a,s){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=a,this.urlSerializer=s,this.applyRedirects=new Xie(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new ue(4002,`'${n.segmentGroup}'`)}recognize(){const n=aN(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(nt(e=>{const i=new sw([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Bt,this.rootComponentType,null,{}),o=new Sr(i,e),r=new KR("",o),a=function Jte(t,n,e=null,i=null){return LR(FR(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(r._root,null),{state:r,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Bt).pipe(Li(i=>{if(i instanceof mw)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof hw?this.noMatchError(i):i}))}inheritParamsAndData(n,e){const i=n.value,o=aw(i,e,this.paramsInheritanceStrategy);i.params=Object.freeze(o.params),i.data=Object.freeze(o.data),n.children.forEach(r=>this.inheritParamsAndData(r,i))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0).pipe(nt(r=>r instanceof Sr?[r]:[]))}processChildren(n,e,i){const o=[];for(const r of Object.keys(i.children))"primary"===r?o.unshift(r):o.push(r);return Xi(o).pipe(Ol(r=>{const a=i.children[r],s=function Mie(t,n){const e=t.filter(i=>Gr(i)===n);return e.push(...t.filter(i=>Gr(i)!==n)),e}(e,r);return this.processSegmentGroup(n,s,a,r)}),function Ete(t,n){return $i(function Ite(t,n,e,i,o){return(r,a)=>{let s=e,c=n,u=0;r.subscribe(Fi(a,p=>{const g=u++;c=s?t(c,p,g):(s=!0,p),i&&a.next(c)},o&&(()=>{s&&a.next(c),a.complete()})))}}(t,n,arguments.length>=2,!0))}((r,a)=>(r.push(...a),r)),ug(null),function Ote(t,n){const e=arguments.length>=2;return i=>i.pipe(t?kt((o,r)=>t(o,r,i)):Ra,ZC(1),e?ug(n):xR(()=>new dg))}(),Pn(r=>{if(null===r)return id(i);const a=sN(r);return function une(t){t.sort((n,e)=>n.value.outlet===Bt?-1:e.value.outlet===Bt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),Ke(a)}))}processSegment(n,e,i,o,r,a){return Xi(e).pipe(Ol(s=>this.processSegmentAgainstRoute(s._injector??n,e,s,i,o,r,a).pipe(Li(c=>{if(c instanceof hw)return Ke(null);throw c}))),hc(s=>!!s),Li(s=>{if(oN(s))return function ane(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?Ke(new sne):id(i);throw s}))}processSegmentAgainstRoute(n,e,i,o,r,a,s){return function rne(t,n,e,i){return!!(Gr(t)===i||i!==Bt&&Sg(n,e,t))&&fw(n,t,e).matched}(i,o,r,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,a):this.allowRedirects&&s?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,a):id(o):id(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,a){const{matched:s,consumedSegments:c,positionalParamSegments:u,remainingSegments:p}=fw(e,o,r);if(!s)return id(e);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const g=this.applyRedirects.applyRedirectCommands(c,o.redirectTo,u);return this.applyRedirects.lineralizeSegments(o,g).pipe(Pn(b=>this.processSegment(n,i,e,b.concat(p),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,r){const a=Jie(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(gn(s=>s.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(gn(({routes:c})=>{const u=i._loadedInjector??n,{consumedSegments:p,remainingSegments:g,parameters:b}=s,w=new sw(p,b,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function mne(t){return t.data||{}}(i),Gr(i),i.component??i._loadedComponent??null,i,function pne(t){return t.resolve||{}}(i)),{segmentGroup:k,slicedSegments:T}=aN(e,p,g,c);if(0===T.length&&k.hasChildren())return this.processChildren(u,c,k).pipe(nt(re=>null===re?null:new Sr(w,re)));if(0===c.length&&0===T.length)return Ke(new Sr(w,[]));const z=Gr(i)===r;return this.processSegment(u,c,k,T,z?Bt:r,!0).pipe(nt(re=>new Sr(w,re instanceof Sr?[re]:[])))})):id(e)))}getChildConfig(n,e,i){return e.children?Ke({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?Ke({routes:e._loadedRoutes,injector:e._loadedInjector}):function Kie(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?Ke(!0):Ke(o.map(a=>{const s=ed(a,t);return vs(function Nie(t){return t&&wh(t.canLoad)}(s)?s.canLoad(n,e):Ha(t,()=>s(n,e)))})).pipe(td(),rN())}(n,e,i).pipe(Pn(o=>o?this.configLoader.loadChildren(n,e).pipe(qt(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function Qie(t){return ju(eN(!1,tr.GuardRejected))}())):Ke({routes:[],injector:n})}}function hne(t){const n=t.value.routeConfig;return n&&""===n.path}function sN(t){const n=[],e=new Set;for(const i of t){if(!hne(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=sN(i.children);n.push(new Sr(i.value,o))}return n.filter(i=>!e.has(i))}function cN(t){const n=t.children.map(e=>cN(e)).flat();return[t,...n]}function gw(t){return gn(n=>{const e=t(n);return e?Xi(e).pipe(nt(()=>n)):Ke(n)})}let lN=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Bt);return i}getResolvedTitleForRoute(e){return e.data[uh]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(yne),providedIn:"root"})}return t})(),yne=(()=>{class t extends lN{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(yH))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const nd=new se("",{providedIn:"root",factory:()=>({})}),od=new se("");let _w=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=De(wT)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ke(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=vs(e.loadComponent()).pipe(nt(dN),qt(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),ec(()=>{this.componentLoaders.delete(e)})),o=new R0(i,()=>new qe).pipe(P0());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ke({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function Cne(t,n,e,i){return vs(t.loadChildren()).pipe(nt(dN),Pn(o=>o instanceof RS||Array.isArray(o)?Ke(o):Xi(n.compileModuleAsync(o))),nt(o=>{i&&i(t);let r,a,s=!1;return Array.isArray(o)?(a=o,!0):(r=o.create(e).injector,a=r.get(od,[],{optional:!0,self:!0}).flat()),{routes:a.map(uw),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(ec(()=>{this.childrenLoaders.delete(i)})),a=new R0(r,()=>new qe).pipe(P0());return this.childrenLoaders.set(i,a),a}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function dN(t){return function wne(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let bw=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(xne),providedIn:"root"})}return t})(),xne=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const uN=new se(""),hN=new se("");function Dne(t,n,e){const i=t.get(hN),o=t.get(ut);return t.get(We).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let r;const a=new Promise(u=>{r=u}),s=o.startViewTransition(()=>(r(),function Sne(t){return new Promise(n=>{JD(n,{injector:t})})}(t))),{onViewTransitionCreated:c}=i;return c&&Ha(t,()=>c({transition:s,from:n,to:e})),a})}let kg=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new qe,this.transitionAbortSubject=new qe,this.configLoader=De(_w),this.environmentInjector=De(Ao),this.urlSerializer=De(Kl),this.rootContexts=De(_h),this.location=De(Ws),this.inputBindingEnabled=null!==De(wg,{optional:!0}),this.titleStrategy=De(lN),this.options=De(nd,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=De(bw),this.createViewTransition=De(uN,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>Ke(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new uie(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new die(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new pt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:gh,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(kt(r=>0!==r.id),nt(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),gn(r=>{this.currentTransition=r;let a=!1,s=!1;return Ke(r).pipe(qt(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gn(c=>{const u=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!u&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.rawUrl),g,vg.IgnoredSameUrlNavigation)),c.resolve(null),jo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return Ke(c).pipe(gn(g=>{const b=this.transitions?.getValue();return this.events.next(new bg(g.id,this.urlSerializer.serialize(g.extractedUrl),g.source,g.restoredState)),b!==this.transitions?.getValue()?jo:Promise.resolve(g)}),function fne(t,n,e,i,o,r){return Pn(a=>function cne(t,n,e,i,o,r,a="emptyOnly"){return new dne(t,n,e,i,o,a,r).recognize()}(t,n,e,i,a.extractedUrl,o,r).pipe(nt(({state:s,tree:c})=>({...a,targetSnapshot:s,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),qt(g=>{r.targetSnapshot=g.targetSnapshot,r.urlAfterRedirects=g.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:g.urlAfterRedirects};const b=new UR(g.id,this.urlSerializer.serialize(g.extractedUrl),this.urlSerializer.serialize(g.urlAfterRedirects),g.targetSnapshot);this.events.next(b)}));if(u&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:g,extractedUrl:b,source:w,restoredState:k,extras:T}=c,z=new bg(g,this.urlSerializer.serialize(b),w,k);this.events.next(z);const re=WR(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:re,urlAfterRedirects:b,extras:{...T,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=b,Ke(r)}{const g="";return this.events.next(new Ql(c.id,this.urlSerializer.serialize(c.extractedUrl),g,vg.IgnoredByUrlHandlingStrategy)),c.resolve(null),jo}}),qt(c=>{const u=new aie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),nt(c=>(this.currentTransition=r={...c,guards:Eie(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function jie(t,n){return Pn(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:a}}=e;return 0===a.length&&0===r.length?Ke({...e,guardsResult:!0}):function zie(t,n,e,i){return Xi(t).pipe(Pn(o=>function Wie(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?Ke(r.map(s=>{const c=vh(n)??o,u=ed(s,c);return vs(function Bie(t){return t&&wh(t.canDeactivate)}(u)?u.canDeactivate(t,n,e,i):Ha(c,()=>u(t,n,e,i))).pipe(hc())})).pipe(td()):Ke(!0)}(o.component,o.route,e,n,i)),hc(o=>!0!==o,!0))}(a,i,o,t).pipe(Pn(s=>s&&function Rie(t){return"boolean"==typeof t}(s)?function Hie(t,n,e,i){return Xi(n).pipe(Ol(o=>Nu(function $ie(t,n){return null!==t&&n&&n(new hie(t)),Ke(!0)}(o.route.parent,i),function Uie(t,n){return null!==t&&n&&n(new pie(t)),Ke(!0)}(o.route,i),function qie(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(a=>function Oie(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>Vl(()=>Ke(a.guards.map(c=>{const u=vh(a.node)??e,p=ed(c,u);return vs(function Lie(t){return t&&wh(t.canActivateChild)}(p)?p.canActivateChild(i,t):Ha(u,()=>p(i,t))).pipe(hc())})).pipe(td())));return Ke(r).pipe(td())}(t,o.path,e),function Gie(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return Ke(!0);const o=i.map(r=>Vl(()=>{const a=vh(n)??e,s=ed(r,a);return vs(function Fie(t){return t&&wh(t.canActivate)}(s)?s.canActivate(n,t):Ha(a,()=>s(n,t))).pipe(hc())}));return Ke(o).pipe(td())}(t,o.route,e))),hc(o=>!0!==o,!0))}(i,r,t,n):Ke(s)),nt(s=>({...e,guardsResult:s})))})}(this.environmentInjector,c=>this.events.next(c)),qt(c=>{if(r.guardsResult=c.guardsResult,Zl(c.guardsResult))throw JR(0,c.guardsResult);const u=new sie(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),kt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",tr.GuardRejected),!1)),gw(c=>{if(c.guards.canActivateChecks.length)return Ke(c).pipe(qt(u=>{const p=new cie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}),gn(u=>{let p=!1;return Ke(u).pipe(function gne(t,n){return Pn(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ke(e);const r=new Set(o.map(c=>c.route)),a=new Set;for(const c of r)if(!a.has(c))for(const u of cN(c))a.add(u);let s=0;return Xi(a).pipe(Ol(c=>r.has(c)?function _ne(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!YR(o)&&(r[uh]=o.title),function bne(t,n,e,i){const o=YC(t);if(0===o.length)return Ke({});const r={};return Xi(o).pipe(Pn(a=>function vne(t,n,e,i){const o=vh(n)??i,r=ed(t,o);return vs(r.resolve?r.resolve(n,e):Ha(o,()=>r(n,e)))}(t[a],n,e,i).pipe(hc(),qt(s=>{r[a]=s}))),ZC(1),Bf(r),Li(a=>oN(a)?jo:ju(a)))}(r,t,n,i).pipe(nt(a=>(t._resolvedData=a,t.data=aw(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=aw(c,c.parent,t).resolve,Ke(void 0))),qt(()=>s++),ZC(1),Pn(c=>s===a.size?Ke(e):jo))})}(this.paramsInheritanceStrategy,this.environmentInjector),qt({next:()=>p=!0,complete:()=>{p||this.cancelNavigationTransition(u,"",tr.NoDataFromResolver)}}))}),qt(u=>{const p=new lie(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(p)}))}),gw(c=>{const u=p=>{const g=[];p.routeConfig?.loadComponent&&!p.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(p.routeConfig).pipe(qt(b=>{p.component=b}),nt(()=>{})));for(const b of p.children)g.push(...u(b));return g};return Xs(u(c.targetSnapshot.root)).pipe(ug(null),Pt(1))}),gw(()=>this.afterPreactivation()),gn(()=>{const{currentSnapshot:c,targetSnapshot:u}=r,p=this.createViewTransition?.(this.environmentInjector,c.root,u.root);return p?Xi(p).pipe(nt(()=>r)):Ke(r)}),nt(c=>{const u=function vie(t,n,e){const i=bh(t,n._root,e?e._root:void 0);return new qR(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:u},this.currentNavigation.targetRouterState=u,r}),qt(()=>{this.events.next(new iw)}),((t,n,e,i)=>nt(o=>(new Iie(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),Pt(1),qt({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Oa(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),ot(this.transitionAbortSubject.pipe(qt(c=>{throw c}))),ec(()=>{!a&&!s&&this.cancelNavigationTransition(r,"",tr.SupersededByNewNavigation),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Li(c=>{if(s=!0,tN(c))this.events.next(new Yl(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function wie(t){return tN(t)&&Zl(t.url)}(c)?this.events.next(new nw(c.url)):r.resolve(!1);else{this.events.next(new yg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0));try{r.resolve(e.errorHandler(c))}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return jo}))}))}cancelNavigationTransition(e,i,o){const r=new Yl(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function kne(t){return t!==gh}let Mne=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ine),providedIn:"root"})}return t})();class Tne{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let Ine=(()=>{class t extends Tne{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mN=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:()=>De(Ene),providedIn:"root"})}return t})(),Ene=(()=>{class t extends mN{constructor(){super(...arguments),this.location=De(Ws),this.urlSerializer=De(Kl),this.options=De(nd,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=De(bw),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new Wl,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=WR(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof bg)this.stateMemento=this.createStateMemento();else if(e instanceof Ql)this.rawUrlTree=i.initialUrl;else if(e instanceof UR){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof iw?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof Yl&&(e.code===tr.GuardRejected||e.code===tr.NoDataFromResolver)?this.restoreHistory(i):e instanceof yg?this.restoreHistory(i,!0):e instanceof Oa&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=dt(t)))(o||t)}})();static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var xh=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(xh||{});function pN(t,n){t.events.pipe(kt(e=>e instanceof Oa||e instanceof Yl||e instanceof yg||e instanceof Ql),nt(e=>e instanceof Oa||e instanceof Ql?xh.COMPLETE:e instanceof Yl&&(e.code===tr.Redirect||e.code===tr.SupersededByNewNavigation)?xh.REDIRECTING:xh.FAILED),kt(e=>e!==xh.REDIRECTING),Pt(1)).subscribe(()=>{n()})}function One(t){throw t}const Ane={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Pne={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Rn=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=De(uT),this.stateManager=De(mN),this.options=De(nd,{optional:!0})||{},this.pendingTasks=De(Vs),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=De(kg),this.urlSerializer=De(Kl),this.location=De(Ws),this.urlHandlingStrategy=De(bw),this._events=new qe,this.errorHandler=this.options.errorHandler||One,this.navigated=!1,this.routeReuseStrategy=De(Mne),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=De(od,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!De(wg,{optional:!0}),this.eventsSubscription=new de,this.isNgZoneEnabled=De(We)instanceof We&&We.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof Yl&&i.code!==tr.Redirect&&i.code!==tr.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Oa)this.navigated=!0;else if(i instanceof nw){const a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),s={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||kne(o.source)};this.scheduleNavigation(a,gh,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Nne(t){return!(t instanceof iw||t instanceof nw)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),gh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const s=this.parseUrl(e);this.scheduleNavigation(s,i,a,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(uw),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:a,queryParamsHandling:s,preserveFragment:c}=i,u=c?this.currentUrlTree.fragment:a;let g,p=null;switch(s){case"merge":p={...this.currentUrlTree.queryParams,...r};break;case"preserve":p=this.currentUrlTree.queryParams;break;default:p=r||null}null!==p&&(p=this.removeEmptyProps(p));try{g=FR(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),g=this.currentUrlTree.root}return LR(g,e,p,u??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Zl(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,gh,null,i)}navigate(e,i={skipLocationChange:!1}){return function Rne(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,a){if(this.disposed)return Promise.resolve(!1);let s,c,u;a?(s=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,b)=>{s=g,c=b});const p=this.pendingTasks.add();return pN(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(p))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:s,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),qr=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=a,this.locationStrategy=s,this.href=null,this.commands=null,this.onChanges=new qe,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(u=>{u instanceof Oa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,a){const s=this.urlTree;return!!(null===s||this.isAnchorElement&&(0!==e||i||o||r||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(s,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function I1(t,n,e){return function jL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?T1:qo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(Jl),oo("tabindex"),_(ca),_(Be),_(qs))};static#t=this.\u0275dir=Q({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,o){1&i&&A("click",function(a){return o.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),2&i&&Xe("target",o.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[ge.HasDecoratorInputTransform,"preserveFragment","preserveFragment",Cl],skipLocationChange:[ge.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",Cl],replaceUrl:[ge.HasDecoratorInputTransform,"replaceUrl","replaceUrl",Cl],routerLink:"routerLink"},standalone:!0,features:[PS,fi]})}return t})();class fN{}let Bne=(()=>{class t{constructor(e,i,o,r,a){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(kt(e=>e instanceof Oa),Ol(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=Qb(r.providers,e,`Route: ${r.path}`));const a=r._injector??e,s=r._loadedInjector??a;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(a,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(s,r.children??r._loadedRoutes))}return Xi(o).pipe(Ml())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ke(null);const r=o.pipe(Pn(a=>null===a?Ke(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?Xi([r,this.loader.loadComponent(i)]).pipe(Ml()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(X(Rn),X(wT),X(Ao),X(fN),X(_w))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const vw=new se("");let gN=(()=>{class t{constructor(e,i,o,r,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof bg?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Oa?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Ql&&e.code===vg.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof $R&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new $R(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){Pr()};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac})}return t})();function Wr(t,n){return{\u0275kind:t,\u0275providers:n}}function bN(){const t=De(ji);return n=>{const e=t.get(Za);if(n!==e.components[0])return;const i=t.get(Rn),o=t.get(vN);1===t.get(yw)&&i.initialNavigation(),t.get(yN,null,$t.Optional)?.setUpPreloading(),t.get(vw,null,$t.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const vN=new se("",{factory:()=>new qe}),yw=new se("",{providedIn:"root",factory:()=>1}),yN=new se("");function Hne(t){return Wr(0,[{provide:yN,useExisting:Bne},{provide:fN,useExisting:t}])}function $ne(t){return Wr(9,[{provide:uN,useValue:Dne},{provide:hN,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const CN=new se("ROUTER_FORROOT_GUARD"),Gne=[Ws,{provide:Kl,useClass:QC},Rn,_h,{provide:Jl,useFactory:function _N(t){return t.routerState.root},deps:[Rn]},_w,[]];let wN=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[Gne,[],{provide:od,multi:!0,useValue:e},{provide:CN,useFactory:Zne,deps:[[Rn,new za,new Vc]]},{provide:nd,useValue:i||{}},i?.useHash?{provide:qs,useClass:s7}:{provide:qs,useClass:r2},{provide:vw,useFactory:()=>{const t=De(C9),n=De(We),e=De(nd),i=De(kg),o=De(Kl);return e.scrollOffset&&t.setOffset(e.scrollOffset),new gN(o,i,t,n,e)}},i?.preloadingStrategy?Hne(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Yne(i):[],i?.bindToComponentInputs?Wr(8,[QR,{provide:wg,useExisting:QR}]).\u0275providers:[],i?.enableViewTransitions?$ne().\u0275providers:[],[{provide:xN,useFactory:bN},{provide:Bv,multi:!0,useExisting:xN}]]}}static forChild(e){return{ngModule:t,providers:[{provide:od,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(X(CN,8))};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({})}return t})();function Zne(t){return"guarded"}function Yne(t){return["disabled"===t.initialNavigation?Wr(3,[{provide:Fv,multi:!0,useFactory:()=>{const n=De(Rn);return()=>{n.setUpLocationChangeListener()}}},{provide:yw,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?Wr(2,[{provide:yw,useValue:0},{provide:Fv,multi:!0,deps:[ji],useFactory:n=>{const e=n.get(r7,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(Rn),r=n.get(vN);pN(o,()=>{i(!0)}),n.get(kg).afterPreactivation=()=>(i(!0),r.closed?Ke(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const xN=new se("");var Jn=function(t){return t.DirectConnect="directConnect",t.DumpFile="dumpFile",t.SessionFile="sessionFile",t.ResumeSession="resumeSession",t}(Jn||{}),Wi=function(t){return t.Type="inputType",t.Config="config",t.SourceDbName="sourceDbName",t}(Wi||{}),ir=function(t){return t.MySQL="MySQL",t.Postgres="Postgres",t.SQLServer="SQL Server",t.Oracle="Oracle",t}(ir||{}),jt=function(t){return t.DbName="databaseName",t.Tables="tables",t.Table="tableName",t.Indexes="indexes",t.Index="indexName",t.Sequences="sequences",t.Sequence="sequenceName",t}(jt||{}),Kr=function(t){return t.schemaOnly="Schema",t.dataOnly="Data",t.schemaAndData="Schema And Data",t}(Kr||{}),ys=function(t){return t.Table="table",t.Index="index",t.Sequence="sequence",t}(ys||{}),Hn=function(t){return t.bulkMigration="bulk",t.lowDowntimeMigration="lowdt",t}(Hn||{}),he=function(t){return t.MigrationMode="migrationMode",t.MigrationType="migrationType",t.IsTargetDetailSet="isTargetDetailSet",t.IsSourceConnectionProfileSet="isSourceConnectionProfileSet",t.IsSourceDetailsSet="isSourceDetailsSet",t.IsTargetConnectionProfileSet="isTargetConnectionProfileSet",t.IsMigrationDetailSet="isMigrationDetailSet",t.IsMigrationInProgress="isMigrationInProgress",t.HasDataMigrationStarted="hasDataMigrationStarted",t.HasSchemaMigrationStarted="hasSchemaMigrationStarted",t.SchemaProgressMessage="schemaProgressMessage",t.DataProgressMessage="dataProgressMessage",t.DataMigrationProgress="dataMigrationProgress",t.SchemaMigrationProgress="schemaMigrationProgress",t.HasForeignKeyUpdateStarted="hasForeignKeyUpdateStarted",t.ForeignKeyProgressMessage="foreignKeyProgressMessage",t.ForeignKeyUpdateProgress="foreignKeyUpdateProgress",t.GeneratingResources="generatingResources",t.NumberOfShards="numberOfShards",t.NumberOfInstances="numberOfInstances",t.isForeignKeySkipped="isForeignKeySkipped",t.IsGcsMetadataPathSet="isGcsMetadataPathSet",t}(he||{}),yt=function(t){return t.TargetDB="targetDb",t.Dialect="dialect",t.SourceConnProfile="sourceConnProfile",t.TargetConnProfile="targetConnProfile",t.ReplicationSlot="replicationSlot",t.Publication="publication",t.GcsMetadataName="gcsName",t.GcsMetadataRootPath="gcsRootPath",t}(yt||{});var rd=function(t){return t[t.SchemaMigrationComplete=1]="SchemaMigrationComplete",t[t.SchemaCreationInProgress=2]="SchemaCreationInProgress",t[t.DataMigrationComplete=3]="DataMigrationComplete",t[t.DataWriteInProgress=4]="DataWriteInProgress",t[t.ForeignKeyUpdateInProgress=5]="ForeignKeyUpdateInProgress",t[t.ForeignKeyUpdateComplete=6]="ForeignKeyUpdateComplete",t}(rd||{});const DN=[{value:"google_standard_sql",displayName:"Google Standard SQL Dialect"},{value:"postgresql",displayName:"PostgreSQL Dialect"}],In={StorageMaxLength:0x8000000000000000,StringMaxLength:2621440,ByteMaxLength:10485760,DataTypes:["STRING","BYTES","VARCHAR"]},SN_GoogleStandardSQL=["BOOL","BYTES","DATE","FLOAT64","INT64","STRING","TIMESTAMP","NUMERIC","JSON"],SN_PostgreSQL=["BOOL","BYTEA","DATE","FLOAT8","INT8","VARCHAR","TIMESTAMPTZ","NUMERIC","JSONB"];var Zr=function(t){return t.DirectConnectForm="directConnectForm",t.IsConnectionSuccessful="isConnectionSuccessful",t}(Zr||{});const kN=["MySQL"],MN={width:"50%",minWidth:"40%",maxWidth:"70%"},Jne={width:"100%",minWidth:"50%",maxWidth:"75%"},eoe={width:"30vw",minWidth:"400px",maxWidth:"500px"};function ad(t){return"mysql"==t||"mysqldump"==t?ir.MySQL:"postgres"===t||"pgdump"===t||"pg_dump"===t?ir.Postgres:"oracle"===t?ir.Oracle:"sqlserver"===t?ir.SQLServer:t}function TN(t){var n=document.createElement("a");let e=JSON.stringify(t).replace(/9223372036854776000/g,"9223372036854775807");n.href="data:text/json;charset=utf-8,"+encodeURIComponent(e),n.download=`${t.SessionName}_${t.DatabaseType}_${t.DatabaseName}.json`,n.click()}function IN(t){const n={};return Object.keys(t).forEach(e=>{n[e]=function toe(t){return t.reduce((n,e)=>{const i=e.GenerationType;return n[i]||(n[i]=[]),n[i].push(e),n},{})}(t[e])}),n}function EN(t,n){return e=>{const i=e,o=i.get(t),r=i.get(n);return o&&r&&(o.value&&!r.value||!o.value&&r.value)?{linkedError:"Both Skip Range Min and Max are required"}:null}}let En=(()=>{class t{constructor(e){this.http=e,this.url=window.location.origin}connectTodb(e,i){const{dbEngine:o,isSharded:r,hostName:a,port:s,dbName:c,userName:u,password:p}=e;return this.http.post(`${this.url}/connect`,{Driver:o,IsSharded:r,Host:a,Port:s,Database:c,User:u,Password:p,Dialect:i},{observe:"response"})}getLastSessionDetails(){return this.http.get(`${this.url}/GetLatestSessionDetails`)}getSchemaConversionFromDirectConnect(){return this.http.get(`${this.url}/convert/infoschema`)}getSchemaConversionFromDump(e){return this.http.post(`${this.url}/convert/dump`,e)}setSourceDBDetailsForDump(e){return this.http.post(`${this.url}/SetSourceDBDetailsForDump`,e)}setSourceDBDetailsForDirectConnect(e){const{dbEngine:i,hostName:o,port:r,dbName:a,userName:s,password:c}=e;return this.http.post(`${this.url}/SetSourceDBDetailsForDirectConnect`,{Driver:i,Host:o,Port:r,Database:a,User:s,Password:c})}setShardsSourceDBDetailsForBulk(e){const{dbConfigs:i,isRestoredSession:o}=e;let r=[];return i.forEach(a=>{r.push({Driver:a.dbEngine,Host:a.hostName,Port:a.port,Database:a.dbName,User:a.userName,Password:a.password,DataShardId:a.shardId})}),this.http.post(`${this.url}/SetShardsSourceDBDetailsForBulk`,{DbConfigs:r,IsRestoredSession:o})}setShardsSourceDBDetailsForDataflow(e){return this.http.post(`${this.url}/SetShardsSourceDBDetailsForDataflow`,{MigrationProfile:e})}setDatastreamDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDatastreamDetailsForShardedMigrations`,e)}setGcsDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetGcsDetailsForShardedMigrations`,e)}setDataflowDetailsForShardedMigrations(e){return this.http.post(`${this.url}/SetDataflowDetailsForShardedMigrations`,e)}getSourceProfile(){return this.http.get(`${this.url}/GetSourceProfileConfig`)}getSchemaConversionFromSessionFile(e){return this.http.post(`${this.url}/convert/session`,e)}getDStructuredReport(){return this.http.get(`${this.url}/downloadStructuredReport`)}getDTextReport(){return this.http.get(`${this.url}/downloadTextReport`)}getDSpannerDDL(){return this.http.get(`${this.url}/downloadDDL`)}getIssueDescription(){return this.http.get(`${this.url}/issueDescription`)}getConversionRate(){return this.http.get(`${this.url}/conversion`)}getConnectionProfiles(e){return this.http.get(`${this.url}/GetConnectionProfiles?source=${e}`)}getGeneratedResources(){return this.http.get(`${this.url}/GetGeneratedResources`)}getStaticIps(){return this.http.get(`${this.url}/GetStaticIps`)}createConnectionProfile(e){return this.http.post(`${this.url}/CreateConnectionProfile`,e)}verifyJsonConfiguration(e){return this.http.post(`${this.url}/VerifyJsonConfiguration`,{MigrationProfile:e})}getSummary(){return this.http.get(`${this.url}/summary`)}getDdl(){return this.http.get(`${this.url}/ddl`)}getSequenceDdl(){return this.http.get(`${this.url}/seqDdl`)}getTypeMap(){return this.http.get(`${this.url}/typemap`)}getAutoGenMap(){return this.http.get(`${this.url}/autoGenMap`)}getSequenceKind(){return this.http.get(`${this.url}/getSequenceKind`)}getSpannerDefaultTypeMap(){return this.http.get(`${this.url}/spannerDefaultTypeMap`)}reviewTableUpdate(e,i){return this.http.post(`${this.url}/typemap/reviewTableSchema?table=${e}`,i)}updateTable(e,i){return this.http.post(`${this.url}/typemap/table?table=${e}`,i)}removeInterleave(e){return this.http.post(`${this.url}/removeParent?tableId=${e}`,{})}restoreTables(e){return this.http.post(`${this.url}/restore/tables`,e)}restoreTable(e){return this.http.post(`${this.url}/restore/table?table=${e}`,{})}dropTable(e){return this.http.post(`${this.url}/drop/table?table=${e}`,{})}dropTables(e){return this.http.post(`${this.url}/drop/tables`,e)}updatePk(e){return this.http.post(`${this.url}/primaryKey`,e)}updateFk(e,i){return this.http.post(`${this.url}/update/fks?table=${e}`,i)}addColumn(e,i){return this.http.post(`${this.url}/AddColumn?table=${e}`,i)}addSequence(e){return this.http.post(`${this.url}/AddSequence`,e)}removeFk(e,i){return this.http.post(`${this.url}/drop/fk?table=${e}`,{Id:i})}getTableWithErrors(){return this.http.get(`${this.url}/GetTableWithErrors`)}getSessions(){return this.http.get(`${this.url}/GetSessions`)}getConvForSession(e){return this.http.get(`${this.url}/GetSession/${e}`,{responseType:"blob"})}resumeSession(e){return this.http.post(`${this.url}/ResumeSession/${e}`,{})}saveSession(e){return this.http.post(`${this.url}/SaveRemoteSession`,e)}getSpannerConfig(){return this.http.get(`${this.url}/GetConfig`)}setSpannerConfig(e){return this.http.post(`${this.url}/SetSpannerConfig`,e)}getIsOffline(){return this.http.get(`${this.url}/IsOffline`)}updateIndex(e,i){return this.http.post(`${this.url}/update/indexes?table=${e}`,i)}updateSequence(e){return this.http.post(`${this.url}/UpdateSequence`,e)}dropIndex(e,i){return this.http.post(`${this.url}/drop/secondaryindex?table=${e}`,{Id:i})}dropSequence(e){return this.http.post(`${this.url}/drop/sequence?sequence=${e}`,{})}restoreIndex(e,i){return this.http.post(`${this.url}/restore/secondaryIndex?tableId=${e}&indexId=${i}`,{})}getInterleaveStatus(e){return this.http.get(`${this.url}/setparent?table=${e}&update=false`)}setInterleave(e){return this.http.get(`${this.url}/setparent?table=${e}&update=true`)}getSourceDestinationSummary(){return this.http.get(`${this.url}/GetSourceDestinationSummary`)}migrate(e){return this.http.post(`${this.url}/Migrate`,e)}getProgress(){return this.http.get(`${this.url}/GetProgress`)}uploadFile(e){return this.http.post(`${this.url}/uploadFile`,e)}cleanUpStreamingJobs(){return this.http.post(`${this.url}/CleanUpStreamingJobs`,{})}applyRule(e){return this.http.post(`${this.url}/applyrule`,e)}dropRule(e){return this.http.post(`${this.url}/dropRule?id=${e}`,{})}getStandardTypeToPGSQLTypemap(){return this.http.get(`${this.url}/typemap/GetStandardTypeToPGSQLTypemap`)}getPGSQLToStandardTypeTypemap(){return this.http.get(`${this.url}/typemap/GetPGSQLToStandardTypeTypemap`)}checkBackendHealth(){return this.http.get(`${this.url}/ping`)}static#e=this.\u0275fac=function(i){return new(i||t)(X(pf))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),nr=(()=>{class t{constructor(e){this.snackBar=e}openSnackBar(e,i,o){o||(o=10),this.snackBar.open(e,i,{duration:1e3*o})}openSnackBarWithoutTimeout(e,i){this.snackBar.open(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(X(FJ))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),or=(()=>{class t{constructor(){this.spannerConfigSub=new pt(!1),this.datebaseLoaderSub=new pt({type:"",databaseName:""}),this.viewAssesmentSub=new pt({srcDbType:"",connectionDetail:"",conversionRates:{good:0,ok:0,bad:0}}),this.tabToSpannerSub=new pt(!1),this.cancelDbLoadSub=new pt(!1),this.spannerConfig=this.spannerConfigSub.asObservable(),this.databaseLoader=this.datebaseLoaderSub.asObservable(),this.viewAssesment=this.viewAssesmentSub.asObservable(),this.tabToSpanner=this.tabToSpannerSub.asObservable(),this.cancelDbLoad=this.cancelDbLoadSub.asObservable()}openSpannerConfig(){this.spannerConfigSub.next(!0)}openDatabaseLoader(e,i){this.datebaseLoaderSub.next({type:e,databaseName:i})}closeDatabaseLoader(){this.datebaseLoaderSub.next({type:"",databaseName:""})}setViewAssesmentData(e){this.viewAssesmentSub.next(e)}setTabToSpanner(){this.tabToSpannerSub.next(!0)}cancelDbLoading(){this.cancelDbLoadSub.next(!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Cw=(()=>{class t{constructor(){this.reviewTableChangesSub=new pt({Changes:[],DDL:""}),this.tableUpdateDetailSub=new pt({tableName:"",tableId:"",updateDetail:{UpdateCols:{}}}),this.reviewTableChanges=this.reviewTableChangesSub.asObservable(),this.tableUpdateDetail=this.tableUpdateDetailSub.asObservable()}setTableReviewChanges(e){this.reviewTableChangesSub.next(e)}setTableUpdateDetail(e){this.tableUpdateDetailSub.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),pc=(()=>{class t{constructor(e){this.fetch=e,this.standardTypeToPGSQLTypeMapSub=new pt(new Map),this.pgSQLToStandardTypeTypeMapSub=new pt(new Map),this.standardTypeToPGSQLTypeMap=this.standardTypeToPGSQLTypeMapSub.asObservable(),this.pgSQLToStandardTypeTypeMap=this.pgSQLToStandardTypeTypeMapSub.asObservable(),this.srcDbName=localStorage.getItem(Wi.SourceDbName)}getStandardTypeToPGSQLTypemap(){return this.fetch.getStandardTypeToPGSQLTypemap().subscribe({next:e=>{this.standardTypeToPGSQLTypeMapSub.next(new Map(Object.entries(e)))}})}getPGSQLToStandardTypeTypemap(){return this.fetch.getPGSQLToStandardTypeTypemap().subscribe({next:e=>{this.pgSQLToStandardTypeTypeMapSub.next(new Map(Object.entries(e)))}})}createTreeNode(e,i,o="",r=""){e.DatabaseType&&(this.srcDbName=ad(e.DatabaseType));let a=Object.keys(e.SpSchema).filter(w=>e.SpSchema[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s=Object.keys(e.SpSequences).filter(w=>e.SpSequences[w].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),c=Object.keys(e.SrcSchema).filter(w=>-1==a.indexOf(w)&&e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_").includes(o.toLocaleLowerCase())),u=this.getDeletedIndexes(e),p={name:`Tables (${a.length})`,type:jt.Tables,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:a.map(w=>{let k=e.SpSchema[w];return{name:k.Name,status:i[w],type:jt.Table,parent:""!=k.ParentTable.Id?e.SpSchema[k.ParentTable.Id]?.Name:"",pos:-1,isSpannerNode:!0,id:w,parentId:k.ParentTable.Id,children:[{name:`Indexes (${k.Indexes?k.Indexes.length:0})`,status:"",type:jt.Indexes,parent:e.SpSchema[w].Name,pos:-1,isSpannerNode:!0,id:"",parentId:w,children:k.Indexes?k.Indexes.map((T,z)=>({name:T.Name,type:jt.Index,parent:e.SpSchema[w].Name,pos:z,isSpannerNode:!0,id:T.Id,parentId:w})):[]}]}})};c.forEach(w=>{p.children?.push({name:e.SrcSchema[w].Name.replace(/[^A-Za-z0-9_]/g,"_"),status:"DARK",type:jt.Table,pos:-1,isSpannerNode:!0,children:[],isDeleted:!0,id:w,parent:"",parentId:""})}),p.children?.forEach((w,k)=>{u[w.id]&&u[w.id].forEach(T=>{p.children[k].children[0].children?.push({name:T.Name.replace(/[^A-Za-z0-9_]/g,"_"),type:jt.Index,parent:e.SpSchema[w.name]?.Name,pos:k,isSpannerNode:!0,isDeleted:!0,id:T.Id,parentId:w.id})})});let g={name:`Sequences (${s.length})`,type:jt.Sequences,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:"",children:s.map(w=>({name:e.SpSequences[w].Name,status:"",type:jt.Sequence,parent:"",pos:-1,isSpannerNode:!0,id:w,parentId:"",children:[]}))};this.sortNodeChildren(p,r),this.sortNodeChildren(g,r);let b=[p];return kN.includes(this.srcDbName)&&b.push(g),[{name:e.DatabaseName,children:b,type:jt.DbName,parent:"",pos:-1,isSpannerNode:!0,id:"",parentId:""}]}sortNodeChildren(e,i){"asc"===i||""===i?e.children?.sort((o,r)=>o.name>r.name?1:r.name>o.name?-1:0):"desc"===i&&e.children?.sort((o,r)=>r.name>o.name?1:o.name>r.name?-1:0)}createTreeNodeForSource(e,i,o="",r=""){let a=Object.keys(e.SrcSchema).filter(c=>e.SrcSchema[c].Name.toLocaleLowerCase().includes(o.toLocaleLowerCase())),s={name:`Tables (${a.length})`,type:jt.Tables,pos:-1,isSpannerNode:!1,id:"",parent:"",parentId:"",children:a.map(c=>{let u=e.SrcSchema[c];return{name:u.Name,status:i[c]?i[c]:"NONE",type:jt.Table,parent:"",pos:-1,isSpannerNode:!1,id:c,parentId:"",parentOnDelete:"",children:[{name:`Indexes (${u.Indexes?.length||"0"})`,status:"",type:jt.Indexes,parent:"",pos:-1,isSpannerNode:!1,id:"",parentId:"",parentOnDelete:"",children:u.Indexes?u.Indexes.map((p,g)=>({name:p.Name,type:jt.Index,parent:e.SrcSchema[c].Name,isSpannerNode:!1,pos:g,id:p.Id,parentId:c})):[]}]}})};return"asc"===r||""===r?s.children?.sort((c,u)=>c.name>u.name?1:u.name>c.name?-1:0):"desc"===r&&s.children?.sort((c,u)=>u.name>c.name?1:c.name>u.name?-1:0),[{name:e.DatabaseName,children:[s],type:jt.DbName,isSpannerNode:!1,parent:"",pos:-1,id:"",parentId:""}]}getColumnMapping(e,i){let u,o=this.getSpannerTableNameFromId(e,i),r=i.SrcSchema[e].ColIds,a=i.SpSchema[e]?i.SpSchema[e].ColIds:null,s=i.SrcSchema[e].PrimaryKeys,c=a?i.SpSchema[e].PrimaryKeys:null;this.standardTypeToPGSQLTypeMap.subscribe(b=>{u=b});const p=In.StorageMaxLength,g=i.SrcSchema[e].ColIds.map((b,w)=>{let k;o&&i.SpSchema[e].PrimaryKeys.forEach(re=>{re.ColId==b&&(k=re.Order)});let T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";return{spOrder:T?w+1:"",srcOrder:w+1,spColName:T?T.Name:"",spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:i.SrcSchema[e].ColDefs[b].Name,srcDataType:i.SrcSchema[e].ColDefs[b].Type.Name,spIsPk:!(!T||!o)&&-1!==i.SpSchema[e].PrimaryKeys?.map(re=>re.ColId).indexOf(b),srcIsPk:!!s&&-1!==s.map(re=>re.ColId).indexOf(b),spIsNotNull:!(!T||!o)&&T.NotNull,srcIsNotNull:i.SrcSchema[e].ColDefs[b].NotNull,srcId:b,spId:T?b:"",spColMaxLength:0!=T?.T.Len?T?.T.Len!=p?T?.T.Len:"MAX":"",srcColMaxLength:null!=i.SrcSchema[e].ColDefs[b].Type.Mods?i.SrcSchema[e].ColDefs[b].Type.Mods[0]:"",spAutoGen:null!=T?.AutoGen?T?.AutoGen:{Name:"",GenerationType:""},srcAutoGen:i.SrcSchema[e].ColDefs[b].AutoGen?i.SrcSchema[e].ColDefs[b].AutoGen:{Name:"",GenerationType:""}}});return a&&a.forEach((b,w)=>{if(r.indexOf(b)<0){let k=i.SpSchema[e].ColDefs[b],T=o?i.SpSchema[e]?.ColDefs[b]:null,z=T?u.get(T.T.Name):"";g.push({spOrder:w+1,srcOrder:"",spColName:k.Name,spDataType:T?"postgresql"===i.SpDialect?void 0===z?T.T.Name:z:T.T.Name:"",srcColName:"",srcDataType:"",spIsPk:!!c&&-1!==c.map(re=>re.ColId).indexOf(b),srcIsPk:!1,spIsNotNull:k.NotNull,srcIsNotNull:!1,srcId:"",spId:b,srcColMaxLength:"",spColMaxLength:T?.T.Len,spAutoGen:k.AutoGen,srcAutoGen:{Name:"",GenerationType:""}})}}),g}getPkMapping(e){let i=e.filter(o=>o.spIsPk||o.srcIsPk);return JSON.parse(JSON.stringify(i))}getFkMapping(e,i){let o=i.SrcSchema[e]?.ForeignKeys;return o?o.map(r=>{let a=this.getSpannerFkFromId(i,e,r.Id),s=a?a.ColIds.map(w=>i.SpSchema[e].ColDefs[w].Name):[],c=a?a.ColIds:[],u=r.ColIds.map(w=>i.SrcSchema[e].ColDefs[w].Name),p=a?a.ReferColumnIds.map(w=>i.SpSchema[r.ReferTableId].ColDefs[w].Name):[],g=a?a.ReferColumnIds:[],b=r.ReferColumnIds.map(w=>i.SrcSchema[r.ReferTableId].ColDefs[w].Name);return{srcFkId:r.Id,spFkId:a?.Id,spName:a?a.Name:"",srcName:r.Name,spColumns:s,srcColumns:u,spReferTable:a?i.SpSchema[a.ReferTableId].Name:"",srcReferTable:i.SrcSchema[r.ReferTableId].Name,spReferColumns:p,srcReferColumns:b,spColIds:c,spReferColumnIds:g,spReferTableId:a?a.ReferTableId:"",srcOnDelete:r.OnDelete,spOnDelete:a?a.OnDelete:"",srcOnUpdate:r.OnUpdate,spOnUpdate:a?a.OnUpdate:""}}):[]}getIndexMapping(e,i,o){let r=this.getSourceIndexFromId(i,e,o),a=this.getSpannerIndexFromId(i,e,o),s=r?r.Keys.map(p=>p.ColId):[],c=a?a.Keys.map(p=>p.ColId):[],u=r?r.Keys.map(p=>{let g=this.getSpannerIndexKeyFromColId(i,e,o,p.ColId);return{srcColId:p.ColId,spColId:g?g.ColId:void 0,srcColName:i.SrcSchema[e].ColDefs[p.ColId].Name,srcOrder:p.Order,srcDesc:p.Desc,spColName:g?i.SpSchema[e].ColDefs[g.ColId].Name:"",spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0}}):[];return c.forEach(p=>{if(-1==s.indexOf(p)){let g=this.getSpannerIndexKeyFromColId(i,e,o,p);u.push({srcColName:"",srcOrder:"",srcColId:void 0,srcDesc:void 0,spColName:i.SpSchema[e].ColDefs[p].Name,spOrder:g?g.Order:void 0,spDesc:g?g.Desc:void 0,spColId:g?g.ColId:void 0})}}),u}getSequenceMapping(e,i){let a={};if(null!=this.getSpannerSequenceNameFromId(e,i)){let s=i.SpSequences[e];a.spSeqName=s.Name,a.spSequenceKind=s.SequenceKind,a.spSkipRangeMax=s.SkipRangeMax,a.spSkipRangeMin=s.SkipRangeMin,a.spStartWithCounter=s.StartWithCounter}return a}getSpannerFkFromId(e,i,o){let r=null;return e.SpSchema[i]?.ForeignKeys?.forEach(a=>{a.Id==o&&(r=a)}),r}getSourceIndexFromId(e,i,o){let r=null;return e.SrcSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerIndexFromId(e,i,o){let r=null;return e.SpSchema[i]?.Indexes?.forEach(a=>{a.Id==o&&(r=a)}),r}getSpannerSequenceNameFromId(e,i){let o=null;return Object.keys(i.SpSequences).forEach(r=>{i.SpSequences[r].Id===e&&(o=i.SpSequences[r].Name)}),o}getSpannerIndexKeyFromColId(e,i,o,r){let a=null,s=e.SpSchema[i]?.Indexes?e.SpSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSourceIndexKeyFromColId(e,i,o,r){let a=null,s=e.SrcSchema[i]?.Indexes?e.SrcSchema[i].Indexes.filter(c=>c.Id==o):null;if(s&&s.length>0){let c=s[0].Keys.filter(u=>u.ColId==r);a=c.length>0?c[0]:null}return a}getSpannerColDefFromId(e,i,o){let r=null;return Object.keys(o.SpSchema[e].ColDefs).forEach(a=>{o.SpSchema[e].ColDefs[a].Id==i&&(r=o.SpSchema[e].ColDefs[a])}),r}getSourceTableNameFromId(e,i){let o="";return Object.keys(i.SrcSchema).forEach(r=>{i.SrcSchema[r].Id===e&&(o=i.SrcSchema[r].Name)}),o}getSpannerTableNameFromId(e,i){let o=null;return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Id===e&&(o=i.SpSchema[r].Name)}),o}getTableIdFromSpName(e,i){let o="";return Object.keys(i.SpSchema).forEach(r=>{i.SpSchema[r].Name===e&&(o=i.SpSchema[r].Id)}),o}getColIdFromSpannerColName(e,i,o){let r="";return Object.keys(o.SpSchema[i].ColDefs).forEach(a=>{o.SpSchema[i].ColDefs[a].Name===e&&(r=o.SpSchema[i].ColDefs[a].Id)}),r}getDeletedIndexes(e){let i={};return Object.keys(e.SpSchema).forEach(o=>{let r=e.SpSchema[o],a=e.SrcSchema[o],s=r&&r.Indexes?r.Indexes.map(u=>u.Id):[],c=a&&a.Indexes?a.Indexes?.filter(u=>!s.includes(u.Id)):null;r&&a&&c&&c.length>0&&(i[o]=c)}),i}static#e=this.\u0275fac=function(i){return new(i||t)(X(En))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Hi=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snackbar=i,this.clickEvent=o,this.tableUpdatePubSub=r,this.conversion=a,this.convSubject=new pt({}),this.conversionRateSub=new pt({}),this.typeMapSub=new pt({}),this.defaultTypeMapSub=new pt({}),this.autoGenMapSub=new pt({}),this.summarySub=new pt(new Map),this.ddlSub=new pt({}),this.seqDdlSub=new pt({}),this.tableInterleaveStatusSub=new pt({}),this.sessionsSub=new pt({}),this.configSub=new pt({}),this.currentSessionSub=new pt({}),this.isOfflineSub=new pt(!1),this.ruleMapSub=new pt([]),this.treeUpdatedSub=new qe,this.rule=this.ruleMapSub.asObservable(),this.conv=this.convSubject.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.conversionRate=this.conversionRateSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.typeMap=this.typeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.defaultTypeMap=this.defaultTypeMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.autoGenMap=this.autoGenMapSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.treeUpdate=this.treeUpdatedSub.asObservable(),this.summary=this.summarySub.asObservable(),this.ddl=this.ddlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.seqDdl=this.seqDdlSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.tableInterleaveStatus=this.tableInterleaveStatusSub.asObservable(),this.sessions=this.sessionsSub.asObservable(),this.config=this.configSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.isOffline=this.isOfflineSub.asObservable(),this.currentSession=this.currentSessionSub.asObservable().pipe(kt(s=>0!==Object.keys(s).length)),this.getLastSessionDetails(),this.getConfig(),this.updateIsOffline()}resetStore(){this.convSubject.next({}),this.conversionRateSub.next({}),this.typeMapSub.next({}),this.defaultTypeMapSub.next({}),this.autoGenMapSub.next({}),this.summarySub.next(new Map),this.ddlSub.next({}),this.tableInterleaveStatusSub.next({})}getDdl(){this.fetch.getDdl().subscribe(e=>{this.ddlSub.next(e)})}getSequenceDdl(){this.fetch.getSequenceDdl().subscribe(e=>{this.seqDdlSub.next(e)})}getAutoGenMap(){this.fetch.getAutoGenMap().subscribe(e=>{this.autoGenMapSub.next(e)})}notifyTreeUpdate(){this.treeUpdatedSub.next()}getSchemaConversionFromDb(){this.fetch.getSchemaConversionFromDirectConnect().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(e.error,"Close")}})}getAllSessions(){this.fetch.getSessions().subscribe({next:e=>{this.sessionsSub.next(e)},error:e=>{this.snackbar.openSnackBar("Unable to fetch sessions.","Close")}})}getLastSessionDetails(){this.fetch.getLastSessionDetails().subscribe({next:e=>{this.convSubject.next(e),this.ruleMapSub.next(e?.Rules)},error:e=>{this.snackbar.openSnackBar(e.error,"Close")}})}getSchemaConversionFromDump(e){return this.fetch.getSchemaConversionFromDump(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.clickEvent.closeDatabaseLoader(),this.snackbar.openSnackBar(i.error,"Close")}})}getSchemaConversionFromSession(e){return this.fetch.getSchemaConversionFromSessionFile(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}getSchemaConversionFromResumeSession(e){this.fetch.resumeSession(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}getConversionRate(){this.fetch.getConversionRate().subscribe(e=>{this.conversionRateSub.next(e)})}getRateTypemapAndSummary(){return x0({rates:this.fetch.getConversionRate(),typeMap:this.fetch.getTypeMap(),defaultTypeMap:this.fetch.getSpannerDefaultTypeMap(),summary:this.fetch.getSummary(),ddl:this.fetch.getDdl(),seqDdl:this.fetch.getSequenceDdl(),autoGenMap:this.fetch.getAutoGenMap()}).pipe(Li(e=>Ke(e))).subscribe(({rates:e,typeMap:i,defaultTypeMap:o,summary:r,ddl:a,seqDdl:s,autoGenMap:c})=>{this.conversionRateSub.next(e),this.typeMapSub.next(i),this.defaultTypeMapSub.next(o),this.summarySub.next(new Map(Object.entries(r))),this.ddlSub.next(a),this.seqDdlSub.next(s),this.autoGenMapSub.next(c)})}getSummary(){return this.fetch.getSummary().subscribe({next:e=>{this.summarySub.next(new Map(Object.entries(e)))}})}reviewTableUpdate(e,i){return this.fetch.reviewTableUpdate(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>{if(o.error)return o.error;{let r;return this.conversion.standardTypeToPGSQLTypeMap.subscribe(a=>{r=a}),this.conv.subscribe(a=>{o.Changes.forEach(s=>{s.InterleaveColumnChanges.forEach(c=>{if("postgresql"===a.SpDialect){let u=r.get(c.Type),p=r.get(c.UpdateType);c.Type=void 0===u?c.Type:u,c.UpdateType=void 0===p?c.UpdateType:p}In.DataTypes.indexOf(c.Type.toString())>-1&&(c.Type+=this.updateColumnSize(c.Size)),In.DataTypes.indexOf(c.UpdateType.toString())>-1&&(c.UpdateType+=this.updateColumnSize(c.UpdateSize))})})}),this.tableUpdatePubSub.setTableReviewChanges(o),""}}))}updateColumnSize(e){return e===In.StorageMaxLength?"(MAX)":"("+e+")"}updateTable(e,i){return this.fetch.updateTable(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}removeInterleave(e){return this.fetch.removeInterleave(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>(this.getDdl(),i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),""))))}restoreTables(e){return this.fetch.restoreTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables restored successfully","Close",5),"")))}restoreTable(e){return this.fetch.restoreTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table restored successfully","Close",5),"")))}dropTable(e){return this.fetch.dropTable(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Table skipped successfully","Close",5),"")))}dropTables(e){return this.fetch.dropTables(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.snackbar.openSnackBar("Selected tables skipped successfully","Close",5),"")))}updatePk(e){return this.fetch.updatePk(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getDdl(),"")))}updateFkNames(e,i){return this.fetch.updateFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}dropFk(e,i){return this.fetch.removeFk(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}getConfig(){this.fetch.getSpannerConfig().subscribe(e=>{this.configSub.next(e)})}updateConfig(e){this.configSub.next(e)}updateIsOffline(){this.fetch.getIsOffline().subscribe(e=>{this.isOfflineSub.next(e)})}addColumn(e,i){this.fetch.addColumn(e,i).subscribe({next:o=>{this.convSubject.next(o),this.getDdl(),this.snackbar.openSnackBar("Added new column.","Close",5)},error:o=>{this.snackbar.openSnackBar(o.error,"Close")}})}addSequence(e){this.fetch.addSequence(e).subscribe({next:i=>{this.convSubject.next(i),this.getSequenceDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Added new sequence.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}applyRule(e){this.fetch.applyRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Added new rule.","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}updateIndex(e,i){return this.fetch.updateIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?o.error:(this.convSubject.next(o),this.getDdl(),"")))}updateSequence(e){return this.fetch.updateSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?i.error:(this.convSubject.next(i),this.getSequenceDdl(),this.notifyTreeUpdate(),"")))}dropIndex(e,i){return this.fetch.dropIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.getDdl(),this.ruleMapSub.next(o?.Rules),this.snackbar.openSnackBar("Index skipped successfully","Close",5),"")))}dropSequence(e){return this.fetch.dropSequence(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar(i.error,"Close"),i.error):(this.convSubject.next(i),this.getDdl(),this.getAutoGenMap(),this.notifyTreeUpdate(),this.snackbar.openSnackBar("Sequence Deleted successfully","Close",5),"")))}restoreIndex(e,i){return this.fetch.restoreIndex(e,i).pipe(Li(o=>Ke({error:o.error})),qt(console.log),nt(o=>o.error?(this.snackbar.openSnackBar(o.error,"Close"),o.error):(this.convSubject.next(o),this.snackbar.openSnackBar("Index restored successfully","Close",5),"")))}getInterleaveConversionForATable(e){this.fetch.getInterleaveStatus(e).subscribe(i=>{this.tableInterleaveStatusSub.next(i)})}setInterleave(e){this.fetch.setInterleave(e).subscribe(i=>{this.convSubject.next(i.sessionState),this.getDdl(),i.sessionState&&this.convSubject.next(i.sessionState)})}uploadFile(e){return this.fetch.uploadFile(e).pipe(Li(i=>Ke({error:i.error})),qt(console.log),nt(i=>i.error?(this.snackbar.openSnackBar("File upload failed","Close"),i.error):(this.snackbar.openSnackBar("File uploaded successfully","Close",5),"")))}dropRule(e){return this.fetch.dropRule(e).subscribe({next:i=>{this.convSubject.next(i),this.ruleMapSub.next(i?.Rules),this.getDdl(),this.snackbar.openSnackBar("Rule deleted successfully","Close",5)},error:i=>{this.snackbar.openSnackBar(i.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(nr),X(or),X(Cw),X(pc))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mg=(()=>{class t{constructor(){this.isLoadingSub=new pt(!1),this.isLoading=this.isLoadingSub.asObservable()}startLoader(){this.isLoadingSub.next(!0)}stopLoader(){this.isLoadingSub.next(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function ioe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function noe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function ooe(t,n){1&t&&(d(0,"b"),h(1,"Note: For sharded migrations, please enter below the details of the shard you want Spanner migration tool to read the schema from. The complete connection configuration of all the shards will be taken in later, during data migration."),l())}function roe(t,n){if(1&t&&(d(0,"div",19)(1,"div",20)(2,"mat-form-field",21)(3,"mat-label"),h(4,"Sharded Migration"),l(),d(5,"mat-select",22),y(6,noe,2,2,"mat-option",6),l()(),d(7,"mat-icon",23),h(8,"info"),l(),d(9,"mat-chip",24),h(10," Preview "),l()(),D(11,"br"),y(12,ooe,2,0,"b",25),l()),2&t){const e=C();m(6),f("ngForOf",e.shardedResponseList),m(3),f("removable",!1),m(3),f("ngIf",e.connectForm.value.isSharded)}}function aoe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function soe(t,n){1&t&&(d(0,"mat-icon",26),h(1," check_circle "),l())}let coe=(()=>{class t{constructor(e,i,o,r,a,s){this.router=e,this.fetch=i,this.data=o,this.loader=r,this.snackbarService=a,this.clickEvent=s,this.connectForm=new ti({dbEngine:new U("",[ee.required]),isSharded:new U(!1),hostName:new U("",[ee.required]),port:new U("",[ee.required,ee.pattern("^[0-9]+$")]),userName:new U("",[ee.required]),password:new U(""),dbName:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.isTestConnectionSuccessful=!1,this.connectRequest=null,this.getSchemaRequest=null,this.shardedResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=DN}ngOnInit(){null!=localStorage.getItem(Zr.DirectConnectForm)&&this.connectForm.setValue(JSON.parse(localStorage.getItem(Zr.DirectConnectForm))),null!=localStorage.getItem(Zr.IsConnectionSuccessful)&&(this.isTestConnectionSuccessful="true"===localStorage.getItem(Zr.IsConnectionSuccessful)),this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.connectRequest&&(this.connectRequest.unsubscribe(),this.getSchemaRequest&&this.getSchemaRequest.unsubscribe())}})}testConn(){this.clickEvent.openDatabaseLoader("test-connection",this.connectForm.value.dbName);const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.snackbarService.openSnackBar("SUCCESS! Spanner migration tool was able to successfully ping source database","Close",3),localStorage.setItem(Zr.IsConnectionSuccessful,"true"),this.clickEvent.closeDatabaseLoader()},error:g=>{this.isTestConnectionSuccessful=!1,this.snackbarService.openSnackBar(g.error,"Close"),localStorage.setItem(Zr.IsConnectionSuccessful,"false"),this.clickEvent.closeDatabaseLoader()}})}connectToDb(){this.clickEvent.openDatabaseLoader("direct",this.connectForm.value.dbName),window.scroll(0,0),this.data.resetStore(),localStorage.clear();const{dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c,dialect:u}=this.connectForm.value;localStorage.setItem(Zr.DirectConnectForm,JSON.stringify(this.connectForm.value)),this.connectRequest=this.fetch.connectTodb({dbEngine:e,isSharded:i,hostName:o,port:r,userName:a,password:s,dbName:c},u).subscribe({next:()=>{this.getSchemaRequest=this.data.getSchemaConversionFromDb(),this.data.conv.subscribe(g=>{localStorage.setItem(Wi.Config,JSON.stringify({dbEngine:e,hostName:o,port:r,userName:a,password:s,dbName:c})),localStorage.setItem(Wi.Type,Jn.DirectConnect),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),localStorage.removeItem(Zr.DirectConnectForm),this.router.navigate(["/workspace"])})},error:g=>{this.snackbarService.openSnackBar(g.error,"Close"),this.clickEvent.closeDatabaseLoader()}})}refreshDbSpecifcConnectionOptions(){this.connectForm.value.isSharded=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(En),_(Hi),_(Mg),_(nr),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-direct-connection"]],decls:54,vars:8,consts:[["id","direct-connection-component",1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup"],[1,"primary-header"],["appearance","outline",1,"full-width"],["formControlName","dbEngine","id","dbengine-input",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["class","shardingConfig",4,"ngIf"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName","id","hostname-input"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port","id","port-input"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName","id","username-input"],["matInput","","name","password","type","password","formControlName","password","id","password-input"],["matInput","","name","dbname","type","text","formControlName","dbName","id","dbname-input"],["matSelect","","name","dialect","formControlName","dialect","appearance","outline","id","spanner-dialect-input"],["class","success","matTooltip","Source Connection Successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","id","test-connect-btn","type","submit","color","accent",3,"disabled","click"],["mat-raised-button","","id","connect-btn","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","",3,"routerLink"],[3,"value"],[1,"shardingConfig"],[1,"flex-container"],["appearance","outline",1,"flex-item"],["formControlName","isSharded"],["matTooltip","Configure multiple source database instances (shards) and consolidate them by migrating to a single Cloud Spanner instance to take advantage of Spanner's horizontal scalability and consistency semantics.",1,"flex-item","configure"],[1,"flex-item","rounded-chip",3,"removable"],[4,"ngIf"],["matTooltip","Source Connection Successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h3",3),h(4,"Connect to Source Database"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),A("selectionChange",function(){return o.refreshDbSpecifcConnectionOptions()}),y(9,ioe,2,2,"mat-option",6),l()(),y(10,roe,13,3,"div",7),D(11,"br"),d(12,"h3",3),h(13,"Connection Detail"),l(),d(14,"mat-form-field",4)(15,"mat-label"),h(16,"Hostname"),l(),D(17,"input",8),l(),d(18,"mat-form-field",4)(19,"mat-label"),h(20,"Port"),l(),D(21,"input",9),d(22,"mat-error"),h(23," Only numbers are allowed. "),l()(),D(24,"br"),d(25,"mat-form-field",4)(26,"mat-label"),h(27,"User name"),l(),D(28,"input",10),l(),d(29,"mat-form-field",4)(30,"mat-label"),h(31,"Password"),l(),D(32,"input",11),l(),D(33,"br"),d(34,"mat-form-field",4)(35,"mat-label"),h(36,"Database Name"),l(),D(37,"input",12),l(),D(38,"br"),d(39,"h3",3),h(40,"Spanner Dialect"),l(),d(41,"mat-form-field",4)(42,"mat-label"),h(43,"Spanner dialect"),l(),d(44,"mat-select",13),y(45,aoe,2,2,"mat-option",6),l()(),D(46,"br"),y(47,soe,2,0,"mat-icon",14),d(48,"button",15),A("click",function(){return o.testConn()}),h(49," Test Connection "),l(),d(50,"button",16),A("click",function(){return o.connectToDb()}),h(51," Connect "),l(),d(52,"button",17),h(53,"Cancel"),l()()()()),2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(),f("ngIf","mysql"===o.connectForm.value.dbEngine),m(35),f("ngForOf",o.dialect),m(2),f("ngIf",o.isTestConnectionSuccessful),m(),f("disabled",!o.connectForm.valid),m(2),f("disabled",!o.connectForm.valid||!o.isTestConnectionSuccessful),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,iC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,uc,vn],styles:[".connect-load-database-container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:0}.configure[_ngcontent-%COMP%]{color:#1967d2}.flex-container[_ngcontent-%COMP%]{display:flex;align-items:center}.flex-item[_ngcontent-%COMP%]{margin-right:8px;align-self:baseline}.rounded-chip[_ngcontent-%COMP%]{background-color:#fff!important;color:#0f33ab!important;border-radius:16px;padding:6px 12px;border:1px solid black;cursor:not-allowed;pointer-events:none}"]})}return t})();function loe(t,n){if(1&t){const e=_e();d(0,"button",7),A("click",function(){return ie(e),ne(C().onConfirm())}),h(1," Continue "),l()}}let Uo=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,void 0===i.title&&(i.title="Update can not be saved")}ngOnInit(){}onConfirm(){this.dialogRef.close(!0)}onDismiss(){this.dialogRef.close(!1)}getIconFromMessageType(){switch(this.data.type){case"warning":return"warning";case"error":return"error";case"success":return"check_circle";default:return"message"}}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-infodialog"]],decls:9,vars:3,consts:[[1,"dialog-container"],["mat-dialog-title",""],["mat-dialog-content",""],[1,"dialog-message",3,"innerHtml"],["mat-dialog-actions","",1,"dialog-action"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","color","primary",3,"click",4,"ngIf"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h1",1),h(2),l(),d(3,"div",2),D(4,"p",3),l(),d(5,"div",4)(6,"button",5),h(7,"CANCEL"),l(),y(8,loe,2,0,"button",6),l()()),2&i&&(m(2),Pe(o.data.title),m(2),f("innerHtml",o.data.message,M1),m(4),f("ngIf","error"!=o.data.type))},dependencies:[It,Yt,zn,tee,So,ko]})}return t})();function ON(t=0,n=Pu){return t<0&&(t=0),Pf(t,t,n)}let doe=(()=>{class t{constructor(e,i){this.fetch=e,this.dialog=i,this.healthCheckSubscription=new de,this.unHealthyCheckCount=0,this.MAX_UNHEALTHY_CHECK_ATTEMPTS=5}startHealthCheck(){this.healthCheckSubscription=ON(5e3).subscribe(()=>{this.checkBackendHealth()})}stopHealthCheck(){this.healthCheckSubscription&&this.healthCheckSubscription.unsubscribe()}checkBackendHealth(){this.checkHealth().subscribe(e=>{e?this.unHealthyCheckCount=0:(this.unHealthyCheckCount==this.MAX_UNHEALTHY_CHECK_ATTEMPTS&&this.openHealthDialog(),this.unHealthyCheckCount++)})}openHealthDialog(){let e=this.dialog.open(Uo,{width:"500px",data:{message:"Please check terminal logs for more details. In case of a crash please file a github issue with all the details.",type:"error",title:"Spanner migration tool unresponsive"}});this.stopHealthCheck(),e.afterClosed().subscribe(()=>{this.startHealthCheck()})}checkHealth(){return Xi(this.fetch.checkBackendHealth()).pipe(nt(()=>!0),Li(()=>Ke(!1)))}ngOnDestroy(){this.stopHealthCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(X(En),X(Hr))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function uoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function hoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function moe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",24)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.sessionName,o)||(r.filterColumnsValue.sessionName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"sessionName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.sessionName)}}function poe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Session Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("sessionName"))}),y(5,uoe,2,0,"mat-icon",22)(6,hoe,2,0,"mat-icon",22),l()(),y(7,moe,4,1,"mat-form-field",23),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.sessionName),m(),f("ngIf",!e.displayFilter.sessionName),m(),f("ngIf",e.displayFilter.sessionName)}}function foe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.SessionName)}}function goe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function _oe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function boe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.editorName,o)||(r.filterColumnsValue.editorName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"editorName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.editorName)}}function voe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Editor"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("editorName"))}),y(5,goe,2,0,"mat-icon",22)(6,_oe,2,0,"mat-icon",22),l()(),y(7,boe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.editorName),m(),f("ngIf",!e.displayFilter.editorName),m(),f("ngIf",e.displayFilter.editorName)}}function yoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.EditorName)}}function Coe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function woe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function xoe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseType,o)||(r.filterColumnsValue.databaseType=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseType"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseType)}}function Doe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Type"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseType"))}),y(5,Coe,2,0,"mat-icon",22)(6,woe,2,0,"mat-icon",22),l()(),y(7,xoe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseType),m(),f("ngIf",!e.displayFilter.databaseType),m(),f("ngIf",e.displayFilter.databaseType)}}function Soe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseType)}}function koe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Moe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Toe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.databaseName,o)||(r.filterColumnsValue.databaseName=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"databaseName"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.databaseName)}}function Ioe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Database Name"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("databaseName"))}),y(5,koe,2,0,"mat-icon",22)(6,Moe,2,0,"mat-icon",22),l()(),y(7,Toe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.databaseName),m(),f("ngIf",!e.displayFilter.databaseName),m(),f("ngIf",e.displayFilter.databaseName)}}function Eoe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.DatabaseName)}}function Ooe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Aoe(t,n){1&t&&(d(0,"mat-icon"),h(1,"filter_list"),l())}function Poe(t,n){if(1&t){const e=_e();d(0,"mat-form-field",28)(1,"mat-label"),h(2,"Filter"),l(),d(3,"input",25),un("ngModelChange",function(o){ie(e);const r=C(3);return kn(r.filterColumnsValue.dialect,o)||(r.filterColumnsValue.dialect=o),ne(o)}),A("keyup",function(o){return ie(e),ne(C(3).updateFilterValue(o,"dialect"))}),l()()}if(2&t){const e=C(3);m(3),dn("ngModel",e.filterColumnsValue.dialect)}}function Roe(t,n){if(1&t){const e=_e();d(0,"th",19)(1,"div",20)(2,"span"),h(3,"Spanner Dialect"),l(),d(4,"button",21),A("click",function(){return ie(e),ne(C(2).toggleFilterDisplay("dialect"))}),y(5,Ooe,2,0,"mat-icon",22)(6,Aoe,2,0,"mat-icon",22),l()(),y(7,Poe,4,1,"mat-form-field",27),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.displayFilter.dialect),m(),f("ngIf",!e.displayFilter.dialect),m(),f("ngIf",e.displayFilter.dialect)}}function Noe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Dialect)}}function Foe(t,n){1&t&&(d(0,"th",19),h(1,"Notes"),l())}function Loe(t,n){if(1&t){const e=_e();d(0,"button",34),A("click",function(){ie(e);const o=C(2).index,r=C(2);return ne(r.notesToggle[o]=!r.notesToggle[o])}),h(1," ... "),l()}}function Boe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e)}}function Voe(t,n){if(1&t&&(d(0,"div"),y(1,Boe,2,1,"p",35),l()),2&t){const e=C(2).$implicit;m(),f("ngForOf",e.Notes)}}function joe(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),Pe(null==e.Notes||null==e.Notes[0]?null:e.Notes[0].substring(0,20))}}function zoe(t,n){if(1&t&&(d(0,"div",30),y(1,Loe,2,0,"button",31)(2,Voe,2,1,"div",32)(3,joe,2,1,"ng-template",null,33,br),l()),2&t){const e=Ft(4),i=C(),o=i.$implicit,r=i.index,a=C(2);m(),f("ngIf",(null==o.Notes?null:o.Notes.length)>1||(null==o.Notes[0]?null:o.Notes[0].length)>20),m(),f("ngIf",a.notesToggle[r])("ngIfElse",e)}}function Hoe(t,n){if(1&t&&(d(0,"td",26),y(1,zoe,5,3,"div",29),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.Notes)}}function Uoe(t,n){1&t&&(d(0,"th",19),h(1,"Created At"),l())}function $oe(t,n){if(1&t&&(d(0,"td",26),h(1),l()),2&t){const e=n.$implicit,i=C(2);m(),Pe(i.convertDateTime(e.CreateTimestamp))}}function Goe(t,n){1&t&&D(0,"th",19)}function qoe(t,n){if(1&t){const e=_e();d(0,"td",26)(1,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).resumeFromSessionFile(r.VersionId))}),h(2," Resume "),l(),d(3,"button",36),A("click",function(){const r=ie(e).$implicit;return ne(C(2).downloadSessionFile(r.VersionId,r.SessionName,r.DatabaseType,r.DatabaseName))}),h(4," Download "),l()()}}function Woe(t,n){1&t&&D(0,"tr",37)}function Koe(t,n){1&t&&D(0,"tr",38)}function Zoe(t,n){if(1&t&&(d(0,"div",5)(1,"table",6),me(2,7),y(3,poe,8,3,"th",8)(4,foe,2,1,"td",9),pe(),me(5,10),y(6,voe,8,3,"th",8)(7,yoe,2,1,"td",9),pe(),me(8,11),y(9,Doe,8,3,"th",8)(10,Soe,2,1,"td",9),pe(),me(11,12),y(12,Ioe,8,3,"th",8)(13,Eoe,2,1,"td",9),pe(),me(14,13),y(15,Roe,8,3,"th",8)(16,Noe,2,1,"td",9),pe(),me(17,14),y(18,Foe,2,0,"th",8)(19,Hoe,2,1,"td",9),pe(),me(20,15),y(21,Uoe,2,0,"th",8)(22,$oe,2,1,"td",9),pe(),me(23,16),y(24,Goe,1,0,"th",8)(25,qoe,5,0,"td",9),pe(),y(26,Woe,1,0,"tr",17)(27,Koe,1,0,"tr",18),l()()),2&t){const e=C();m(),f("dataSource",e.filteredDataSource),m(25),f("matHeaderRowDef",e.displayedColumns)("matHeaderRowDefSticky",!0),m(),f("matRowDefColumns",e.displayedColumns)}}function Yoe(t,n){if(1&t){const e=_e();d(0,"div",39),ei(),d(1,"svg",40),D(2,"rect",41)(3,"path",42),l(),pr(),d(4,"button",43),A("click",function(){return ie(e),ne(C().openSpannerConfigDialog())}),h(5," Configure Spanner Details "),l(),d(6,"span"),h(7,"Do not have any previous session to display. "),d(8,"u"),h(9," OR "),l(),D(10,"br"),h(11," Invalid Spanner configuration. "),l()()}}let Qoe=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.router=o,this.clickEvent=r,this.displayedColumns=["SessionName","EditorName","DatabaseType","DatabaseName","Dialect","Notes","CreateTimestamp","Action"],this.notesToggle=[],this.dataSource=[],this.filteredDataSource=[],this.filterColumnsValue={sessionName:"",editorName:"",databaseType:"",databaseName:"",dialect:""},this.displayFilter={sessionName:!1,editorName:!1,databaseType:!1,databaseName:!1,dialect:!1}}ngOnInit(){this.data.getAllSessions(),this.data.sessions.subscribe({next:e=>{null!=e?(this.filteredDataSource=e,this.dataSource=e):(this.filteredDataSource=[],this.dataSource=[])}})}toggleFilterDisplay(e){this.displayFilter[e]=!this.displayFilter[e]}updateFilterValue(e,i){e.stopPropagation(),this.filterColumnsValue[i]=e.target.value,this.applyFilter()}applyFilter(){this.filteredDataSource=this.dataSource.filter(e=>!!e.SessionName.toLowerCase().includes(this.filterColumnsValue.sessionName.toLowerCase())).filter(e=>!!e.EditorName.toLowerCase().includes(this.filterColumnsValue.editorName.toLowerCase())).filter(e=>!!e.DatabaseType.toLowerCase().includes(this.filterColumnsValue.databaseType.toLowerCase())).filter(e=>!!e.DatabaseName.toLowerCase().includes(this.filterColumnsValue.databaseName.toLowerCase())).filter(e=>!!e.Dialect.toLowerCase().includes(this.filterColumnsValue.dialect.toLowerCase()))}downloadSessionFile(e,i,o,r){this.fetch.getConvForSession(e).subscribe(a=>{var s=document.createElement("a");s.href=URL.createObjectURL(a),s.download=`${i}_${o}_${r}.json`,s.click()})}resumeFromSessionFile(e){this.data.resetStore(),this.data.getSchemaConversionFromResumeSession(e),this.data.conv.subscribe(i=>{localStorage.setItem(Wi.Config,e),localStorage.setItem(Wi.Type,Jn.ResumeSession),this.router.navigate(["/workspace"])})}openSpannerConfigDialog(){this.clickEvent.openSpannerConfig()}convertDateTime(e){return(e=(e=new Date(e).toString()).substring(e.indexOf(" ")+1)).substring(0,e.indexOf("("))}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-session-listing"]],decls:8,vars:2,consts:[[1,"sessions-wrapper"],[1,"primary-header"],[1,"summary"],["class","session-container mat-elevation-z3",4,"ngIf"],["class","mat-elevation-z3 warning-container",4,"ngIf"],[1,"session-container","mat-elevation-z3"],["mat-table","",3,"dataSource"],["matColumnDef","SessionName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","EditorName"],["matColumnDef","DatabaseType"],["matColumnDef","DatabaseName"],["matColumnDef","Dialect"],["matColumnDef","Notes"],["matColumnDef","CreateTimestamp"],["matColumnDef","Action"],["mat-header-row","",4,"matHeaderRowDef","matHeaderRowDefSticky"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],[1,"table-header-container"],["mat-icon-button","",3,"click"],[4,"ngIf"],["appearance","outline","class","full-width",4,"ngIf"],["appearance","outline",1,"full-width"],["matInput","","autocomplete","off",3,"ngModel","ngModelChange","keyup"],["mat-cell",""],["appearance","outline",4,"ngIf"],["appearance","outline"],["class","notes-wrapper",4,"ngIf"],[1,"notes-wrapper"],["class","notes-toggle-button",3,"click",4,"ngIf"],[4,"ngIf","ngIfElse"],["short",""],[1,"notes-toggle-button",3,"click"],[4,"ngFor","ngForOf"],["mat-button","","color","primary",3,"click"],["mat-header-row",""],["mat-row",""],[1,"mat-elevation-z3","warning-container"],["width","49","height","48","viewBox","0 0 49 48","fill","none","xmlns","http://www.w3.org/2000/svg"],["x","0.907227","width","48","height","48","rx","4","fill","#E6ECFA"],["fill-rule","evenodd","clip-rule","evenodd","d","M17.9072 15C16.8027 15 15.9072 15.8954 15.9072 17V31C15.9072 32.1046 16.8027 33 17.9072 33H31.9072C33.0118 33 33.9072 32.1046 33.9072 31V17C33.9072 15.8954 33.0118 15 31.9072 15H17.9072ZM20.9072 18H18.9072V20H20.9072V18ZM21.9072 18H23.9072V20H21.9072V18ZM20.9072 23H18.9072V25H20.9072V23ZM21.9072 23H23.9072V25H21.9072V23ZM20.9072 28H18.9072V30H20.9072V28ZM21.9072 28H23.9072V30H21.9072V28ZM30.9072 18H24.9072V20H30.9072V18ZM24.9072 23H30.9072V25H24.9072V23ZM30.9072 28H24.9072V30H30.9072V28Z","fill","#3367D6"],["mat-button","","color","primary",1,"spanner-config-button",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Session history"),l(),d(3,"div",2),h(4," Choose a session to resume an existing migration session, or download the session file. "),l(),D(5,"br"),y(6,Zoe,28,4,"div",3)(7,Yoe,12,0,"div",4),l()),2&i&&(m(6),f("ngIf",o.dataSource.length>0),m(),f("ngIf",0===o.dataSource.length))},dependencies:[rn,It,Yt,ba,Mi,Di,xi,qi,Ci,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,Nl],styles:[".session-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.session-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .table-header-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.sessions-wrapper[_ngcontent-%COMP%]{margin-top:20px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:57vh;text-align:center}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-bottom:10px}.sessions-wrapper[_ngcontent-%COMP%] .warning-container[_ngcontent-%COMP%] .spanner-config-button[_ngcontent-%COMP%]{text-decoration:underline}.mat-mdc-column-Notes[_ngcontent-%COMP%]{max-width:200px;padding-right:10px}.notes-toggle-button[_ngcontent-%COMP%]{float:right;margin-right:32px;background-color:#f5f5f5;border:none;border-radius:2px;padding:0 5px 5px}.notes-toggle-button[_ngcontent-%COMP%]:hover{background-color:#ebe7e7;cursor:pointer}.notes-wrapper[_ngcontent-%COMP%]{margin-top:10px}.mat-mdc-column-SessionName[_ngcontent-%COMP%], .mat-mdc-column-EditorName[_ngcontent-%COMP%], .mat-mdc-column-DatabaseType[_ngcontent-%COMP%], .mat-mdc-column-DatabaseName[_ngcontent-%COMP%], .mat-mdc-column-Dialect[_ngcontent-%COMP%]{width:13vw;min-width:150px}.mat-mdc-column-Action[_ngcontent-%COMP%], .mat-mdc-column-Notes[_ngcontent-%COMP%], .mat-mdc-column-CreateTimestamp[_ngcontent-%COMP%]{width:15vw;min-width:150px}.mat-mdc-form-field[_ngcontent-%COMP%]{width:80%}"]})}return t})(),Xoe=(()=>{class t{constructor(e,i,o){this.dialog=e,this.router=i,this.healthCheckService=o}ngOnInit(){this.healthCheckService.startHealthCheck(),null!=localStorage.getItem(he.IsMigrationInProgress)&&"true"===localStorage.getItem(he.IsMigrationInProgress)&&(this.dialog.open(Uo,{data:{title:"Redirecting to prepare migration page",message:"Another migration already in progress",type:"error"},maxWidth:"500px"}),this.router.navigate(["/prepare-migration"]))}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(Rn),_(doe))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-home"]],decls:21,vars:4,consts:[[1,"container"],[1,"primary-header"],[1,"summary","global-font-color","body-font-size"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool#readme","target","_blank"],[1,"btn-source-select"],["mat-raised-button","","color","primary","id","connect-to-database-btn",1,"split-button-left",3,"routerLink"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"routerLink"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"h3",1),h(2,"Get started with Spanner migration tool"),l(),d(3,"div",2),h(4," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation and migration, using data from an existing PostgreSQL, MySQL, SQL Server, Oracle or DynamoDB database. "),d(5,"a",3),h(6,"Learn More"),l(),h(7,". "),l(),d(8,"div",4)(9,"button",5),h(10," Connect to database "),l(),d(11,"button",6)(12,"mat-icon",7),h(13,"expand_more"),l()(),d(14,"mat-menu",8,9)(16,"button",10),h(17,"Load database dump"),l(),d(18,"button",10),h(19,"Load session file"),l()()(),D(20,"app-session-listing"),l()),2&i){const r=Ft(15);m(9),f("routerLink","/source/direct-connection"),m(2),f("matMenuTriggerFor",r),m(5),f("routerLink","/source/load-dump"),m(2),f("routerLink","/source/load-session")}},dependencies:[qr,Yt,Mi,jl,wa,zl,Qoe],styles:[".container[_ngcontent-%COMP%]{padding:7px 27px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{width:500px;font-weight:lighter}.container[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 5px}.container[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-color:#fff;margin-bottom:20px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{margin:20px 0;padding-bottom:5px}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.container[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}"]})}return t})(),eo=(()=>{class t{constructor(){this.sidenavOpenSub=new pt(!1),this.sidenavComponentSub=new pt(""),this.sidenavRuleTypeSub=new pt(""),this.sidenavAddIndexTableSub=new pt(""),this.setSidenavDatabaseNameSub=new pt(""),this.ruleDataSub=new pt({}),this.displayRuleFlagSub=new pt(!1),this.setMiddleColumn=new pt(!1),this.isSidenav=this.sidenavOpenSub.asObservable(),this.sidenavComponent=this.sidenavComponentSub.asObservable(),this.sidenavRuleType=this.sidenavRuleTypeSub.asObservable(),this.sidenavAddIndexTable=this.sidenavAddIndexTableSub.asObservable(),this.sidenavDatabaseName=this.setSidenavDatabaseNameSub.asObservable(),this.ruleData=this.ruleDataSub.asObservable(),this.displayRuleFlag=this.displayRuleFlagSub.asObservable(),this.setMiddleColumnComponent=this.setMiddleColumn.asObservable()}openSidenav(){this.sidenavOpenSub.next(!0)}closeSidenav(){this.sidenavOpenSub.next(!1)}setSidenavComponent(e){this.sidenavComponentSub.next(e)}setSidenavRuleType(e){this.sidenavRuleTypeSub.next(e)}setSidenavAddIndexTable(e){this.sidenavAddIndexTableSub.next(e)}setSidenavDatabaseName(e){this.setSidenavDatabaseNameSub.next(e)}setRuleData(e){this.ruleDataSub.next(e)}setDisplayRuleFlag(e){this.displayRuleFlagSub.next(e)}setMiddleColComponent(e){this.setMiddleColumn.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),AN=(()=>{class t{constructor(e){this.sidenav=e}ngOnInit(){}closeInstructionSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-instruction"]],decls:150,vars:0,consts:[[1,"instructions-div"],[1,"instruction-header-div"],["mat-icon-button","",3,"click"],["src","../../../assets/icons/google-spanner-logo.png",1,"instructions-icon"],[1,"textCenter"],[1,"instructions-main-heading"],[1,"instructions-sub-heading"],[1,"instructions-command"],["href","https://github.com/GoogleCloudPlatform/spanner-migration-tool",1,"instructionsLink"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"button",2),A("click",function(){return o.closeInstructionSidenav()}),d(3,"mat-icon"),h(4,"close"),l()()(),D(5,"img",3),d(6,"h1",4),h(7,"Spanner migration tool User Manual"),l(),D(8,"br")(9,"br"),d(10,"h3",5),h(11,"1 \xa0 \xa0 \xa0Introduction"),l(),d(12,"p"),h(13," Spanner migration tool (formerly known as HarbourBridge) is a stand-alone open source tool for Cloud Spanner evaluation, using data from an existing PostgreSQL or MySQL database. The tool ingests schema and data from either a pg_dump/mysqldump file or directly from the source database, automatically builds a Spanner schema, and creates a new Spanner database populated with data from the source database. "),D(14,"br")(15,"br")(16,"br"),h(17," Spanner migration tool is designed to simplify Spanner evaluation, and in particular to bootstrap the process by getting moderate-size PostgreSQL/MySQL datasets into Spanner (up to a few tens of GB). Many features of PostgreSQL/MySQL, especially those that don't map directly to Spanner features, are ignored, e.g. (non-primary) indexes, functions, and sequences. Types such as integers, floats, char/text, bools, timestamps, and (some) array types, map fairly directly to Spanner, but many other types do not and instead are mapped to Spanner's STRING(MAX). "),l(),D(18,"br"),d(19,"h4",6),h(20,"1.1 \xa0 \xa0 \xa0Spanner migration tool UI"),l(),d(21,"p"),h(22," Spanner migration tool UI is designed to focus on generating spanner schema from either a pg_dump/mysqldump file or directly from the source database and providing edit functionality to the spanner schema and thereby creating a new spanner database populated with new data. UI gives the provision to edit column name, edit data type, edit constraints, drop foreign key and drop secondary index of spanner schema. "),l(),D(23,"br"),d(24,"h3",5),h(25,"2 \xa0 \xa0 \xa0Key Features of UI"),l(),d(26,"ul")(27,"li"),h(28,"Connecting to a new database"),l(),d(29,"li"),h(30,"Load dump file"),l(),d(31,"li"),h(32,"Load session file"),l(),d(33,"li"),h(34,"Storing session for each conversion"),l(),d(35,"li"),h(36,"Edit data type globally for each table in schema"),l(),d(37,"li"),h(38,"Edit data type, column name, constraint for a particular table"),l(),d(39,"li"),h(40,"Edit foreign key and secondary index name"),l(),d(41,"li"),h(42,"Drop a column from a table"),l(),d(43,"li"),h(44,"Drop foreign key from a table"),l(),d(45,"li"),h(46,"Drop secondary index from a table"),l(),d(47,"li"),h(48,"Convert foreign key into interleave table"),l(),d(49,"li"),h(50,"Search a table"),l(),d(51,"li"),h(52,"Download schema, report and session files"),l()(),D(53,"br"),d(54,"h3",5),h(55,"3 \xa0 \xa0 \xa0UI Setup"),l(),d(56,"ul")(57,"li"),h(58,"Install go in local"),l(),d(59,"li"),h(60," Clone Spanner migration tool project and run following command in the terminal: "),D(61,"br"),d(62,"span",7),h(63,"go run main.go --web"),l()(),d(64,"li"),h(65,"Open "),d(66,"span",7),h(67,"http://localhost:8080"),l(),h(68,"in browser"),l()(),D(69,"br"),d(70,"h3",5),h(71," 4 \xa0 \xa0 \xa0Different modes to select source database "),l(),d(72,"h4",6),h(73,"4.1 \xa0 \xa0 \xa0Connect to Database"),l(),d(74,"ul")(75,"li"),h(76,"Enter database details in connect to database dialog box"),l(),d(77,"li"),h(78," Input Fields: database type, database host, database port, database user, database name, database password "),l()(),d(79,"h4",6),h(80,"4.2 \xa0 \xa0 \xa0Load Database Dump"),l(),d(81,"ul")(82,"li"),h(83,"Enter dump file path in load database dialog box"),l(),d(84,"li"),h(85,"Input Fields: database type, file path"),l()(),d(86,"h4",6),h(87,"4.3 \xa0 \xa0 \xa0Import Schema File"),l(),d(88,"ul")(89,"li"),h(90,"Enter session file path in load session dialog box"),l(),d(91,"li"),h(92,"Input Fields: database type, session file path"),l()(),d(93,"h3",5),h(94,"5 \xa0 \xa0 \xa0Session Table"),l(),d(95,"ul")(96,"li"),h(97,"Session table is used to store the previous sessions of schema conversion"),l()(),d(98,"h3",5),h(99,"6 \xa0 \xa0 \xa0Edit Global Data Type"),l(),d(100,"ul")(101,"li"),h(102,"Click on edit global data type button on the screen"),l(),d(103,"li"),h(104,"Select required spanner data type from the dropdown available for each source data type"),l(),d(105,"li"),h(106,"Click on next button after making all the changes"),l()(),d(107,"h3",5),h(108," 7 \xa0 \xa0 \xa0Edit Spanner Schema for a particular table "),l(),d(109,"ul")(110,"li"),h(111,"Expand any table"),l(),d(112,"li"),h(113,"Click on edit spanner schema button"),l(),d(114,"li"),h(115,"Edit column name/ data type/ constraint of spanner schema"),l(),d(116,"li"),h(117,"Edit name of secondary index or foreign key"),l(),d(118,"li"),h(119,"Select to convert foreign key to interleave or use as is (if option is available)"),l(),d(120,"li"),h(121,"Drop a column by unselecting any checkbox"),l(),d(122,"li"),h(123," Drop a foreign key or secondary index by expanding foreign keys or secondary indexes tab inside table "),l(),d(124,"li"),h(125,"Click on save changes button to save the changes"),l(),d(126,"li"),h(127," If current table is involved in foreign key/secondary indexes relationship with other table then user will be prompt to delete foreign key or secondary indexes and then proceed with save changes "),l()(),d(128,"p"),h(129,"- Warning before deleting secondary index from a table"),l(),d(130,"p"),h(131,"- Error on saving changes"),l(),d(132,"p"),h(133,"- Changes saved successfully after resolving all errors"),l(),d(134,"h3",5),h(135,"8 \xa0 \xa0 \xa0Download Session File"),l(),d(136,"ul")(137,"li"),h(138,"Save all the changes done in spanner schema table wise or globally"),l(),d(139,"li"),h(140,"Click on download session file button on the top right corner"),l(),d(141,"li"),h(142,"Save the generated session file with all the changes in local machine"),l()(),d(143,"h3",5),h(144,"9 \xa0 \xa0 \xa0How to use Session File"),l(),d(145,"p"),h(146," Please refer below link to get more information on how to use session file with Spanner migration tool "),l(),d(147,"a",8),h(148,"Refer this to use Session File"),l(),D(149,"br"),l())},dependencies:[ba,Mi],styles:[".instructions-div[_ngcontent-%COMP%]{padding:5px 20px 20px}.instructions-div[_ngcontent-%COMP%] .instruction-header-div[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.instructions-icon[_ngcontent-%COMP%]{height:200px;display:block;margin-left:auto;margin-right:auto}.textCenter[_ngcontent-%COMP%]{text-align:center}.instructions-main-heading[_ngcontent-%COMP%]{font-size:1.25rem;color:#4285f4;font-weight:700}.instructions-sub-heading[_ngcontent-%COMP%]{font-size:1rem;color:#4285f4;font-weight:700}.instructions-command[_ngcontent-%COMP%]{background-color:#8080806b;border-radius:5px;padding:0 5px}.instructions-img-width[_ngcontent-%COMP%]{width:800px}.instructionsLink[_ngcontent-%COMP%]{color:#4285f4;text-decoration:underline}"]})}return t})();const Joe=["determinateSpinner"];function ere(t,n){if(1&t&&(ei(),d(0,"svg",11),D(1,"circle",12),l()),2&t){const e=C();Xe("viewBox",e._viewBox()),m(),Sn("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Xe("r",e._circleRadius())}}const tre=is(class{constructor(t){this._elementRef=t}},"primary"),ire=new se("mat-progress-spinner-default-options",{providedIn:"root",factory:function nre(){return{diameter:PN}}}),PN=100;let sd=(()=>{class t extends tre{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=PN,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,yi(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=yi(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=yi(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static#e=this.\u0275fac=function(i){return new(i||t)(_(Be),_(ui,8),_(ire))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,o){if(1&i&&vt(Joe,5),2&i){let r;Oe(r=Ae())&&(o._determinateCircle=r.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(i,o){2&i&&(Xe("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===o.mode?o.value:null)("mode",o.mode),Sn("width",o.diameter,"px")("height",o.diameter,"px")("--mdc-circular-progress-size",o.diameter+"px")("--mdc-circular-progress-active-indicator-width",o.diameter+"px"),et("_mat-animation-noopable",o._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===o.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[ve],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,o){if(1&i&&(y(0,ere,2,8,"ng-template",null,0,br),d(2,"div",1,2),ei(),d(4,"svg",3),D(5,"circle",4),l()(),pr(),d(6,"div",5)(7,"div",6)(8,"div",7),ro(9,8),l(),d(10,"div",9),ro(11,8),l(),d(12,"div",10),ro(13,8),l()()()),2&i){const r=Ft(1);m(4),Xe("viewBox",o._viewBox()),m(),Sn("stroke-dasharray",o._strokeCircumference(),"px")("stroke-dashoffset",o._strokeDashOffset(),"px")("stroke-width",o._circleStrokeWidth(),"%"),Xe("r",o._circleRadius()),m(4),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r),m(2),f("ngTemplateOutlet",r)}},dependencies:[kp],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}return t})(),rre=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[Vn,Mt]})}return t})();function are(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function sre(t,n){1&t&&D(0,"mat-spinner",18),2&t&&f("diameter",25)}function cre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"check_circle"),l())}function lre(t,n){1&t&&(d(0,"mat-icon",20),h(1,"cancel"),l())}function dre(t,n){if(1&t&&(d(0,"mat-option",17),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let ure=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysqldump",[ee.required]),filePath:new U("",[ee.required]),dialect:new U("",[ee.required])}),this.dbEngineList=[{value:"mysqldump",displayName:"MySQL"},{value:"pg_dump",displayName:"PostgreSQL"}],this.dialect=DN,this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromDump(){this.clickEvent.openDatabaseLoader("dump",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i,dialect:o}=this.connectForm.value,s={Config:{Driver:e,Path:i},SpannerDetails:{Dialect:o}};this.getSchemaRequest=this.data.getSchemaConversionFromDump(s),this.data.conv.subscribe(c=>{localStorage.setItem(Wi.Config,JSON.stringify(s)),localStorage.setItem(Wi.Type,Jn.DumpFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-dump"]],decls:36,vars:8,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["matSelect","","name","dialect","formControlName","dialect","appearance","outline"],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromDump()}),d(3,"h3",3),h(4,"Load from database dump"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,are,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Dump File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,sre,1,1,"mat-spinner",8)(17,cre,2,0,"mat-icon",9)(18,lre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"h3",3),h(25,"Spanner Dialect"),l(),d(26,"mat-form-field",4)(27,"mat-label"),h(28,"Select a spanner dialect"),l(),d(29,"mat-select",14),y(30,dre,2,2,"mat-option",6),l()(),D(31,"br"),d(32,"button",15),h(33," Convert "),l(),d(34,"button",16),h(35,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(12),f("ngForOf",o.dialect),m(2),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function hre(t,n){if(1&t&&(d(0,"mat-option",16),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function mre(t,n){1&t&&D(0,"mat-spinner",17),2&t&&f("diameter",25)}function pre(t,n){1&t&&(d(0,"mat-icon",18),h(1,"check_circle"),l())}function fre(t,n){1&t&&(d(0,"mat-icon",19),h(1,"cancel"),l())}let gre=(()=>{class t{constructor(e,i,o){this.data=e,this.router=i,this.clickEvent=o,this.connectForm=new ti({dbEngine:new U("mysql",[ee.required]),filePath:new U("",[ee.required])}),this.dbEngineList=[{value:"mysql",displayName:"MySQL"},{value:"sqlserver",displayName:"SQL Server"},{value:"oracle",displayName:"Oracle"},{value:"postgres",displayName:"PostgreSQL"}],this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.getSchemaRequest=null}ngOnInit(){this.clickEvent.cancelDbLoad.subscribe({next:e=>{e&&this.getSchemaRequest&&this.getSchemaRequest.unsubscribe()}})}convertFromSessionFile(){this.clickEvent.openDatabaseLoader("session",""),this.data.resetStore(),localStorage.clear();const{dbEngine:e,filePath:i}=this.connectForm.value,o={driver:e,filePath:i};this.getSchemaRequest=this.data.getSchemaConversionFromSession(o),this.data.conv.subscribe(r=>{localStorage.setItem(Wi.Config,JSON.stringify(o)),localStorage.setItem(Wi.Type,Jn.SessionFile),localStorage.setItem(Wi.SourceDbName,ad(e)),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/workspace"])})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.connectForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.data.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-load-session"]],decls:28,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline",1,"full-width"],["matSelect","","name","dbEngine","formControlName","dbEngine","appearance","outline"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["mat-stroked-button","","type","button",3,"click"],["hidden","","type","file",3,"change"],["file",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["mat-raised-button","",3,"routerLink"],[3,"value"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2),A("ngSubmit",function(){return o.convertFromSessionFile()}),d(3,"h3",3),h(4,"Load from session"),l(),d(5,"mat-form-field",4)(6,"mat-label"),h(7,"Database Engine"),l(),d(8,"mat-select",5),y(9,hre,2,2,"mat-option",6),l()(),d(10,"h3",3),h(11,"Session File"),l(),d(12,"mat-form-field",4)(13,"mat-label"),h(14,"File path"),l(),d(15,"input",7),A("click",function(){return ie(r),ne(Ft(22).click())}),l(),y(16,mre,1,1,"mat-spinner",8)(17,pre,2,0,"mat-icon",9)(18,fre,2,0,"mat-icon",10),l(),d(19,"button",11),A("click",function(){return ie(r),ne(Ft(22).click())}),h(20,"Upload File"),l(),d(21,"input",12,13),A("change",function(s){return o.handleFileInput(s)}),l(),D(23,"br"),d(24,"button",14),h(25," Convert "),l(),d(26,"button",15),h(27,"Cancel"),l()()()()}2&i&&(m(2),f("formGroup",o.connectForm),m(7),f("ngForOf",o.dbEngineList),m(7),f("ngIf",o.uploadStart&&!o.uploadSuccess&&!o.uploadFail),m(),f("ngIf",o.uploadStart&&o.uploadSuccess),m(),f("ngIf",o.uploadStart&&o.uploadFail),m(6),f("disabled",!o.connectForm.valid||!o.uploadSuccess),m(2),f("routerLink","/"))},dependencies:[rn,It,qr,Yt,Mi,Di,xi,nC,qi,Xn,Tn,_n,Ci,_i,Bi,wi,zi,sd]})}return t})();function _re(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Reading schema for ",e.databaseName," database. Please wait...")}}function bre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool will read the information schema at source and automatically map it to Cloud Spanner"),l())}function vre(t,n){if(1&t&&(d(0,"h3"),h(1),l()),2&t){const e=C();m(),xe("Testing connection to ",e.databaseName," database...")}}function yre(t,n){1&t&&(d(0,"h4"),h(1,"Tip: Spanner migration tool is attempting to ping the source database, it will retry a couple of times before timing out."),l())}function Cre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the dump file..."),l())}function wre(t,n){1&t&&(d(0,"h3"),h(1,"Loading the session file..."),l())}let xre=(()=>{class t{constructor(e,i){this.router=e,this.clickEvent=i,this.loaderType="",this.databaseName="",this.timeElapsed=0,this.timeElapsedInterval=setInterval(()=>{this.timeElapsed+=1},1e3)}ngOnInit(){this.timeElapsed=0}ngOnDestroy(){clearInterval(this.timeElapsedInterval)}cancelDbLoad(){this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader(),this.router.navigate(["/"])}static#e=this.\u0275fac=function(i){return new(i||t)(_(Rn),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-database-loader"]],inputs:{loaderType:"loaderType",databaseName:"databaseName"},decls:12,vars:7,consts:[[1,"container","content-height"],["src","../../../assets/gifs/database-loader.gif","alt","database-loader-gif",1,"loader-gif"],[4,"ngIf"],["mat-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0),D(1,"img",1),y(2,_re,2,1,"h3",2)(3,bre,2,0,"h4",2)(4,vre,2,1,"h3",2)(5,yre,2,0,"h4",2)(6,Cre,2,0,"h3",2)(7,wre,2,0,"h3",2),d(8,"h5"),h(9),l(),d(10,"button",3),A("click",function(){return o.cancelDbLoad()}),h(11,"Cancel"),l()()),2&i&&(m(2),f("ngIf","direct"===o.loaderType),m(),f("ngIf","direct"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","test-connection"===o.loaderType),m(),f("ngIf","dump"===o.loaderType),m(),f("ngIf","session"===o.loaderType),m(2),xe("",o.timeElapsed," seconds have elapsed"))},dependencies:[It,Yt],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .loader-gif[_ngcontent-%COMP%]{width:10rem;height:10rem}"]})}return t})();function Dre(t,n){1&t&&(d(0,"div"),D(1,"router-outlet"),l())}function Sre(t,n){if(1&t&&(d(0,"div"),D(1,"app-database-loader",1),l()),2&t){const e=C();m(),f("loaderType",e.loaderType)("databaseName",e.databaseName)}}let kre=(()=>{class t{constructor(e){this.clickevent=e,this.isDatabaseLoading=!1,this.loaderType="",this.databaseName=""}ngOnInit(){this.clickevent.databaseLoader.subscribe(e=>{this.loaderType=e.type,this.databaseName=e.databaseName,this.isDatabaseLoading=""!==this.loaderType})}static#e=this.\u0275fac=function(i){return new(i||t)(_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-selection"]],decls:2,vars:2,consts:[[4,"ngIf"],[3,"loaderType","databaseName"]],template:function(i,o){1&i&&y(0,Dre,2,0,"div",0)(1,Sre,2,2,"div",0),2&i&&(f("ngIf",!o.isDatabaseLoading),m(),f("ngIf",o.isDatabaseLoading))},dependencies:[It,Cg,xre],styles:[".mat-card-class[_ngcontent-%COMP%]{padding:0 20px}"]})}return t})();var RN=Re(304);function Mre(t,n){if(1&t){const e=_e();d(0,"mat-chip-row",16),A("removed",function(){const r=ie(e).$implicit;return ne(C().removeFilter(r))}),h(1),d(2,"button",17)(3,"mat-icon"),h(4,"cancel"),l()()()}if(2&t){const e=n.$implicit;m(),xe(" ",e," ")}}function Tre(t,n){if(1&t){const e=_e();d(0,"mat-option",18),A("click",function(){const r=ie(e).$implicit;return ne(C().addFilter(r))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function Ire(t,n){1&t&&(d(0,"mat-icon",31),h(1," error "),l())}function Ere(t,n){1&t&&(d(0,"mat-icon",32),h(1," warning "),l())}function Ore(t,n){1&t&&(d(0,"mat-icon",33),h(1," wb_incandescent "),l())}function Are(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function Pre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as read"),l()()}}function Rre(t,n){if(1&t){const e=_e();d(0,"button",35),A("click",function(){ie(e);const o=C().$implicit;return ne(C(2).toggleRead(o))}),d(1,"span"),h(2,"Mark as unread"),l()()}}function Nre(t,n){if(1&t&&(d(0,"section",21)(1,"div",2)(2,"div",3),y(3,Ire,2,0,"mat-icon",22)(4,Ere,2,0,"mat-icon",23)(5,Ore,2,0,"mat-icon",24)(6,Are,2,0,"mat-icon",25),l(),d(7,"div",26),h(8),l(),d(9,"div",6)(10,"mat-icon",27),h(11,"more_vert"),l(),d(12,"mat-menu",28,29),y(14,Pre,3,0,"button",30)(15,Rre,3,0,"button",30),l()()()()),2&t){const e=n.$implicit,i=Ft(13);m(3),f("ngIf","error"==e.type),m(),f("ngIf","warning"==e.type),m(),f("ngIf","suggestion"==e.type),m(),f("ngIf","note"==e.type),m(2),Pe(e.content),m(2),f("matMenuTriggerFor",i),m(4),f("ngIf",!e.isRead),m(),f("ngIf",e.isRead)}}function Fre(t,n){if(1&t&&(d(0,"div",19),y(1,Nre,16,8,"section",20),l()),2&t){const e=C();m(),f("ngForOf",e.filteredSummaryRows)}}function Lre(t,n){1&t&&(d(0,"div",36)(1,"div",37),ei(),d(2,"svg",38),D(3,"path",39),l()(),pr(),d(4,"div",40),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l()())}let Bre=(()=>{class t{constructor(e,i){this.data=e,this.clickEvent=i,this.changeIssuesLabel=new Ne,this.summaryRows=[],this.summary=new Map,this.filteredSummaryRows=[],this.separatorKeysCodes=[],this.summaryCount=0,this.totalNoteCount=0,this.totalWarningCount=0,this.totalSuggestionCount=0,this.totalErrorCount=0,this.filterInput=new U,this.options=["read","unread","warning","suggestion","note","error"],this.obsFilteredOptions=new li,this.searchFilters=["unread","warning","note","suggestion","error"],this.currentObject=null}ngOnInit(){this.data.summary.subscribe({next:e=>{if(this.summary=e,this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.initialiseSummaryCollectionForAllTables(this.summary),this.summaryCount=this.totalNoteCount+this.totalErrorCount+this.totalSuggestionCount+this.totalWarningCount,this.changeIssuesLabel.emit(this.summaryCount)}}),this.registerAutoCompleteChange()}initialiseSummaryCollectionForAllTables(e){this.summaryRows=[],this.totalErrorCount=0,this.totalNoteCount=0,this.totalSuggestionCount=0,this.totalWarningCount=0;for(const i of e.values())this.initiateSummaryCollection(i);this.applyFilters()}ngOnChanges(e){if(this.currentObject=e?.currentObject?.currentValue||this.currentObject,this.summaryRows=[],this.currentObject){let i=this.currentObject.id;"indexName"==this.currentObject.type&&(i=this.currentObject.parentId);let o=this.summary.get(i);o?(this.summaryRows=[],this.initiateSummaryCollection(o),this.applyFilters(),this.summaryCount=o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount,this.changeIssuesLabel.emit(o.NotesCount+o.WarningsCount+o.ErrorsCount+o.SuggestionsCount)):(this.summaryCount=0,this.changeIssuesLabel.emit(0))}else this.summaryCount=0,this.changeIssuesLabel.emit(0)}initiateSummaryCollection(e){this.totalErrorCount+=e.ErrorsCount,this.totalNoteCount+=e.NotesCount,this.totalWarningCount+=e.WarningsCount,this.totalSuggestionCount+=e.SuggestionsCount,e.Errors.forEach(i=>{this.summaryRows.push({type:"error",content:i.description,isRead:!1})}),e.Warnings.forEach(i=>{this.summaryRows.push({type:"warning",content:i.description,isRead:!1})}),e.Suggestions.forEach(i=>{this.summaryRows.push({type:"suggestion",content:i.description,isRead:!1})}),e.Notes.forEach(i=>{this.summaryRows.push({type:"note",content:i.description,isRead:!1})})}applyFilters(){let e=[],i=[];this.searchFilters.includes("read")&&i.push(o=>o.isRead),this.searchFilters.includes("unread")&&i.push(o=>!o.isRead),this.searchFilters.includes("warning")&&e.push(o=>"warning"==o.type),this.searchFilters.includes("note")&&e.push(o=>"note"==o.type),this.searchFilters.includes("suggestion")&&e.push(o=>"suggestion"==o.type),this.searchFilters.includes("error")&&e.push(o=>"error"==o.type),this.filteredSummaryRows=this.summaryRows.filter(o=>(!i.length||i.some(r=>r(o)))&&(!e.length||e.some(r=>r(o))))}addFilter(e){e&&!this.searchFilters.includes(e)&&this.searchFilters.push(e),this.applyFilters(),this.registerAutoCompleteChange()}removeFilter(e){const i=this.searchFilters.indexOf(e);i>=0&&this.searchFilters.splice(i,1),this.applyFilters()}toggleRead(e){e.isRead=!e.isRead,this.applyFilters()}registerAutoCompleteChange(){this.obsFilteredOptions=this.filterInput.valueChanges.pipe(an(""),nt(e=>this.autoCompleteOnChangeFilter(e)))}autoCompleteOnChangeFilter(e){return this.options.filter(i=>i.toLowerCase().includes(e))}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-summary"]],inputs:{currentObject:"currentObject"},outputs:{changeIssuesLabel:"changeIssuesLabel"},features:[fi],decls:29,vars:11,consts:[[1,"container"],[1,"filter"],[1,"columns"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],[1,"chip-list"],["chipGrid",""],["class","primary",3,"removed",4,"ngFor","ngForOf"],["placeholder","New Filter...",3,"formControl","matChipInputFor","matChipInputSeparatorKeyCodes","matChipInputAddOnBlur","matAutocomplete"],["auto","matAutocomplete"],[3,"value","click",4,"ngFor","ngForOf"],[1,"header"],["class","content",4,"ngIf"],["class","no-issue-container",4,"ngIf"],[1,"primary",3,"removed"],["matChipRemove",""],[3,"value","click"],[1,"content"],["class","summary-row",4,"ngFor","ngForOf"],[1,"summary-row"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above","class","danger",4,"ngIf"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above","class","warning",4,"ngIf"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above","class","suggestion",4,"ngIf"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above","class","success",4,"ngIf"],[1,"middle"],[3,"matMenuTriggerFor"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click",4,"ngIf"],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you dont need to do anything.","matTooltipPosition","above",1,"success"],["mat-menu-item","",3,"click"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div")(2,"div",1)(3,"div",2)(4,"div",3)(5,"span",4),h(6,"filter_list"),l(),d(7,"span",5),h(8,"Filter"),l()(),d(9,"div",6)(10,"mat-form-field",7)(11,"mat-chip-grid",null,8),y(13,Mre,5,1,"mat-chip-row",9),l(),D(14,"input",10),d(15,"mat-autocomplete",null,11),y(17,Tre,2,2,"mat-option",12),lu(18,"async"),l()()()()(),d(19,"div",13)(20,"div",2)(21,"div",3)(22,"span"),h(23," Status "),l()(),d(24,"div",6)(25,"span"),h(26," Summary "),l()()()(),y(27,Fre,2,1,"div",14)(28,Lre,8,0,"div",15),l()()),2&i){const r=Ft(12),a=Ft(16);m(13),f("ngForOf",o.searchFilters),m(),f("formControl",o.filterInput)("matChipInputFor",r)("matChipInputSeparatorKeyCodes",o.separatorKeysCodes)("matChipInputAddOnBlur",!1)("matAutocomplete",a),m(3),f("ngForOf",du(18,9,o.obsFilteredOptions)),m(10),f("ngIf",0!==o.summaryCount),m(),f("ngIf",0===o.summaryCount)}},dependencies:[rn,It,Mi,Di,Tn,Ci,_i,Fl,jl,wa,zl,MP,TP,DP,IC,vn,Kee,_R,x2],styles:[".container[_ngcontent-%COMP%]{height:calc(100vh - 271px);position:relative;overflow-y:auto;background-color:#fff}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-object-container[_ngcontent-%COMP%] .no-object-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%]{width:100%;position:absolute;top:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-icon-container[_ngcontent-%COMP%]{padding:10px;background-color:#3367d61f;border-radius:3px;margin:20px}.container[_ngcontent-%COMP%] .no-issue-container[_ngcontent-%COMP%] .no-issue-message[_ngcontent-%COMP%]{width:80%;max-width:500px;text-align:center}h3[_ngcontent-%COMP%]{margin-bottom:0;padding-left:15px}.filter[_ngcontent-%COMP%]{display:flex;flex:1;min-height:65px;padding:0 15px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{order:1;position:relative;padding-top:20px;width:100px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{position:absolute;font-size:20px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .filter-text[_ngcontent-%COMP%]{position:absolute;margin-left:30px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{order:2;width:100%}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;min-height:22px}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .mat-mdc-chip-input[_ngcontent-%COMP%]{height:24px;flex:0}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff}.filter[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;opacity:.4}.filter[_ngcontent-%COMP%] .mat-mdc-form-field-underline{display:none}.filter[_ngcontent-%COMP%] .mat-mdc-chip[_ngcontent-%COMP%]{min-height:24px;font-weight:lighter}.header[_ngcontent-%COMP%]{display:flex;flex:1;padding:5px 0;background-color:#f5f5f5;text-align:center}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1}.header[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%]{display:flex;flex:1;padding:10px 0;border-bottom:1px solid #ccc}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%]{display:flex;flex:1}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:60px;order:1;text-align:center;padding-top:5px}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1;order:2}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:30px;order:3;cursor:pointer}.summary-row[_ngcontent-%COMP%] .columns[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:18px}.chip-list[_ngcontent-%COMP%]{width:100%}.mat-mdc-standard-chip[_ngcontent-%COMP%]{--mdc-chip-label-text-color: #fff}"]})}return t})();function Vre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Skip ",e.eligibleTables.length," table(s)?")}}function jre(t,n){if(1&t&&(d(0,"h2"),h(1),l()),2&t){const e=C();m(),xe("Restore ",e.eligibleTables.length," table(s) and all associated indexes?")}}function zre(t,n){1&t&&(d(0,"span",9),h(1," Confirm skip by typing the following below: "),d(2,"b"),h(3,"SKIP"),l(),D(4,"br"),l())}function Hre(t,n){1&t&&(d(0,"span",9),h(1," Confirm restoration by typing the following below: "),d(2,"b"),h(3,"RESTORE"),l(),D(4,"br"),l())}function Ure(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already skipped tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be skipped since they are already skipped."),m(4),xe(" ",e.ineligibleTables," ")}}function $re(t,n){if(1&t&&(d(0,"div")(1,"b"),h(2,"Note:"),l(),h(3),D(4,"br"),d(5,"b"),h(6,"Already active tables:"),l(),h(7),l()),2&t){const e=C();m(3),_l(" You selected ",e.data.tables.length," tables. ",e.ineligibleTables.length," table(s) will not be restored since they are already active."),m(4),xe(" ",e.ineligibleTables," ")}}let NN=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.eligibleTables=[],this.ineligibleTables=[];let o="";"SKIP"==this.data.operation?(o="SKIP",this.data.tables.forEach(r=>{r.isDeleted?this.ineligibleTables.push(r.TableName):this.eligibleTables.push(r.TableName)})):(o="RESTORE",this.data.tables.forEach(r=>{r.isDeleted?this.eligibleTables.push(r.TableName):this.ineligibleTables.push(r.TableName)})),this.confirmationInput=new U("",[ee.required,ee.pattern(o)]),i.disableClose=!0}confirm(){this.dialogRef.close(this.data.operation)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-bulk-drop-restore-table-dialog"]],decls:19,vars:8,consts:[["mat-dialog-content",""],[4,"ngIf"],[1,"form-container"],["class","form-custom-label",4,"ngIf"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"form-custom-label"]],template:function(i,o){1&i&&(d(0,"div",0),y(1,Vre,2,1,"h2",1)(2,jre,2,1,"h2",1),d(3,"mat-dialog-content")(4,"div",2)(5,"form"),y(6,zre,5,0,"span",3)(7,Hre,5,0,"span",3),d(8,"mat-form-field",4)(9,"mat-label"),h(10,"Confirm"),l(),D(11,"input",5),l(),y(12,Ure,8,3,"div",1)(13,$re,8,3,"div",1),l()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.confirm()}),h(18," Confirm "),l()()()),2&i&&(m(),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("ngIf","SKIP"==o.data.operation),m(),f("ngIf","RESTORE"==o.data.operation),m(4),f("formControl",o.confirmationInput),m(),f("ngIf","SKIP"==o.data.operation&&0!=o.ineligibleTables.length),m(),f("ngIf","RESTORE"==o.data.operation&&0!=o.ineligibleTables.length),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Gre(t,n){if(1&t&&(d(0,"mat-option",13),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}let FN=(()=>{class t{constructor(e,i,o,r){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.selectedSequenceKind="",this.sequenceKinds=[],this.addNewSequenceForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],sequenceKind:["",ee.required],skipRangeMin:["",ee.pattern("^[0-9]+$")],skipRangeMax:["",ee.pattern("^[0-9]+$")],startWithCounter:["",ee.pattern("^[0-9]+$")]},{validator:EN("skipRangeMin","skipRangeMax")}),this.fetchSerice.getSequenceKind().subscribe(a=>{this.sequenceKinds=a})}ngOnInit(){}addNewSequence(){let e=this.addNewSequenceForm.value;this.dataService.addSequence({Name:e.name,SequenceKind:this.selectedSequenceKind,SkipRangeMin:e.skipRangeMin,SkipRangeMax:e.skipRangeMax,StartWithCounter:e.startWithCounter}),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-sequence"]],decls:35,vars:4,consts:[["mat-dialog-content",""],[1,"add-new-sequence-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Sequence Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","sequenceKind","required","true",1,"input-field",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","placeholder","Skip Range Min","type","text","formControlName","skipRangeMin"],["matInput","","placeholder","Skip Range Max","type","text","formControlName","skipRangeMax"],["matInput","","placeholder","Start With Counter","type","text","formControlName","startWithCounter"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Sequence Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Sequence Type"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedSequenceKind,a)||(o.selectedSequenceKind=a),a}),y(13,Gre,2,2,"mat-option",6),l()(),D(14,"br"),d(15,"mat-form-field",2)(16,"mat-label"),h(17,"Skip Range Minimum"),l(),D(18,"input",7),l(),D(19,"br"),d(20,"mat-form-field",2)(21,"mat-label"),h(22,"Skip Range Maximum"),l(),D(23,"input",8),l(),D(24,"br"),d(25,"mat-form-field",2)(26,"mat-label"),h(27,"Start With Counter"),l(),D(28,"input",9),l(),D(29,"br"),l(),d(30,"div",10)(31,"button",11),h(32,"CANCEL"),l(),d(33,"button",12),A("click",function(){return o.addNewSequence()}),h(34," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewSequenceForm),m(11),dn("ngModel",o.selectedSequenceKind),m(),f("ngForOf",o.sequenceKinds),m(20),f("disabled",!o.addNewSequenceForm.valid))},dependencies:[rn,Yt,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko]})}return t})();const LN=t=>({"blue-font-color":t});function qre(t,n){if(1&t&&(d(0,"span",25),h(1),l()),2&t){const e=C();f("ngClass",hi(2,LN,"source"===e.selectedTab)),m(),xe(" ",e.srcDbName.toUpperCase()," ")}}function Wre(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function Kre(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function Zre(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function Yre(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function Qre(t,n){if(1&t&&(d(0,"td",27),y(1,Kre,2,0,"svg",28)(2,Zre,2,0,"mat-icon",29)(3,Yre,2,0,"mat-icon",30),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status)}}function Xre(t,n){1&t&&(d(0,"mat-icon",38),h(1,"arrow_upward"),l())}function Jre(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function eae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function tae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().srcTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,Xre,2,0,"mat-icon",36)(5,Jre,2,0,"mat-icon",37)(6,eae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.srcSortOrder),m(),f("ngIf","asc"===e.srcSortOrder),m(),f("ngIf","desc"===e.srcSortOrder)}}function iae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function nae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function oae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function rae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function aae(t,n){if(1&t&&(d(0,"span",56)(1,"mat-icon",57),h(2,"more_vert"),l(),d(3,"mat-menu",null,58)(5,"button",59)(6,"span"),h(7,"Add Index"),l()()()()),2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function sae(t,n){if(1&t){const e=_e();d(0,"td",40)(1,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().srcTreeControl.toggle(r))}),y(2,iae,2,0,"svg",42)(3,nae,2,0,"ng-template",null,43,br),l(),d(5,"span",44),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(6,"span"),y(7,oae,2,0,"svg",45)(8,rae,2,0,"svg",46),d(9,"span"),h(10),l()(),y(11,aae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(4),o=C();m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.srcTreeControl.isExpanded(e))("ngIfElse",i),m(5),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)&&e.isSpannerNode)}}function cae(t,n){1&t&&D(0,"tr",60)}const BN=t=>({"selected-row":t});function lae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}function dae(t,n){if(1&t&&(d(0,"span",25),h(1," SPANNER DRAFT "),l()),2&t){const e=C();f("ngClass",hi(1,LN,"spanner"===e.selectedTab))}}function uae(t,n){1&t&&(d(0,"th",26),h(1,"Status"),l())}function hae(t,n){1&t&&(ei(),d(0,"svg",31),D(1,"path",32),l())}function mae(t,n){1&t&&(d(0,"mat-icon",33),h(1," work "),l())}function pae(t,n){1&t&&(d(0,"mat-icon",34),h(1," work_history "),l())}function fae(t,n){1&t&&(d(0,"mat-icon",63),h(1," delete "),l())}function gae(t,n){if(1&t&&(d(0,"td",27),y(1,hae,2,0,"svg",28)(2,mae,2,0,"mat-icon",29)(3,pae,2,0,"mat-icon",30)(4,fae,2,0,"mat-icon",62),l()),2&t){const e=n.$implicit;m(),f("ngIf","EXCELLENT"===e.status||"NONE"===e.status),m(),f("ngIf","OK"===e.status||"GOOD"===e.status),m(),f("ngIf","POOR"===e.status),m(),f("ngIf","DARK"===e.status||1==e.isDeleted)}}function _ae(t,n){1&t&&(d(0,"mat-icon",65),h(1,"arrow_upward"),l())}function bae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_upward"),l())}function vae(t,n){1&t&&(d(0,"mat-icon",39),h(1,"arrow_downward"),l())}function yae(t,n){if(1&t){const e=_e();d(0,"th",35),A("click",function(){return ie(e),ne(C().spannerTableSort())}),d(1,"div")(2,"span"),h(3," Object Name "),l(),y(4,_ae,2,0,"mat-icon",64)(5,bae,2,0,"mat-icon",37)(6,vae,2,0,"mat-icon",37),l()()}if(2&t){const e=C();m(4),f("ngIf",""===e.spannerSortOrder),m(),f("ngIf","asc"===e.spannerSortOrder),m(),f("ngIf","desc"===e.spannerSortOrder)}}function Cae(t,n){if(1&t){const e=_e();d(0,"mat-checkbox",70),A("change",function(){ie(e);const o=C().$implicit;return ne(C().selectionToggle(o))}),l()}if(2&t){const e=C().$implicit;f("checked",C().checklistSelection.isSelected(e))}}function wae(t,n){1&t&&(ei(),d(0,"svg",48),D(1,"path",49),l())}function xae(t,n){1&t&&(ei(),d(0,"svg",50),D(1,"path",51),l())}function Dae(t,n){1&t&&(ei(),d(0,"svg",52),D(1,"path",53),l())}function Sae(t,n){1&t&&(ei(),d(0,"svg",54),D(1,"path",55),l())}function kae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",71),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){ie(e);const o=C().$implicit;return ne(C().openAddIndexForm(o.parent))}),d(6,"span"),h(7,"Add Index"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Mae(t,n){if(1&t){const e=_e();d(0,"span",56)(1,"mat-icon",74),h(2,"more_vert"),l(),d(3,"mat-menu",72,58)(5,"button",73),A("click",function(){return ie(e),ne(C(2).openAddSequenceForm())}),d(6,"span"),h(7,"Add Sequence"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Tae=()=>({sidebar_link:!0}),Iae=t=>({"gray-out":t});function Eae(t,n){if(1&t){const e=_e();d(0,"td",66),y(1,Cae,1,1,"mat-checkbox",67),d(2,"button",41),A("click",function(){const r=ie(e).$implicit;return ne(C().treeControl.toggle(r))}),y(3,wae,2,0,"svg",42)(4,xae,2,0,"ng-template",null,43,br),l(),d(6,"span",68),A("click",function(){const r=ie(e).$implicit;return ne(C().objectSelected(r))}),d(7,"span"),y(8,Dae,2,0,"svg",45)(9,Sae,2,0,"svg",46),d(10,"span",69),h(11),l()(),y(12,kae,8,1,"span",47)(13,Mae,8,1,"span",47),l()()}if(2&t){const e=n.$implicit,i=Ft(5),o=C();f("ngClass",No(14,Tae)),m(),f("ngIf",o.isTableLikeNode(e)),m(),Sn("visibility",e.expandable?"":"hidden")("margin-left",10*e.level,"px"),m(),f("ngIf",o.treeControl.isExpanded(e))("ngIfElse",i),m(3),f("ngClass",hi(15,Iae,e.isDeleted)),m(2),f("ngIf",o.isTableNode(e.type)),m(),f("ngIf",o.isIndexNode(e.type)),m(2),Pe(e.name),m(),f("ngIf",o.isIndexNode(e.type)),m(),f("ngIf",o.isSequenceNode(e.type))}}function Oae(t,n){1&t&&D(0,"tr",60)}function Aae(t,n){if(1&t&&D(0,"tr",61),2&t){const e=n.$implicit,i=C();f("ngClass",hi(1,BN,i.shouldHighlight(e)))}}const ww=t=>[t];let Pae=(()=>{class t{constructor(e,i,o,r,a){this.conversion=e,this.dialog=i,this.data=o,this.sidenav=r,this.clickEvent=a,this.isLeftColumnCollapse=!1,this.currentSelectedObject=null,this.srcSortOrder="",this.spannerSortOrder="",this.srcSearchText="",this.spannerSearchText="",this.selectedTab="spanner",this.selectedDatabase=new Ne,this.selectObject=new Ne,this.updateSpannerTable=new Ne,this.updateSrcTable=new Ne,this.leftCollaspe=new Ne,this.updateSidebar=new Ne,this.spannerTree=[],this.srcTree=[],this.srcDbName="",this.selectedIndex=1,this.transformer=(s,c)=>({expandable:!!s.children&&s.children.length>0,name:s.name,status:s.status,type:s.type,parent:s.parent,parentId:s.parentId,pos:s.pos,isSpannerNode:s.isSpannerNode,level:c,isDeleted:!!s.isDeleted,id:s.id}),this.treeControl=new EP(s=>s.level,s=>s.expandable),this.srcTreeControl=new EP(s=>s.level,s=>s.expandable),this.treeFlattener=new LX(this.transformer,s=>s.level,s=>s.expandable,s=>s.children),this.dataSource=new AP(this.treeControl,this.treeFlattener),this.srcDataSource=new AP(this.srcTreeControl,this.treeFlattener),this.checklistSelection=new qu(!0,[]),this.displayedColumns=["status","name"]}ngOnInit(){this.clickEvent.tabToSpanner.subscribe({next:e=>{this.setSpannerTab()}})}ngOnChanges(e){let i=e?.spannerTree?.currentValue,o=e?.srcTree?.currentValue;o&&(this.srcDataSource.data=o,this.srcTreeControl.expand(this.srcTreeControl.dataNodes[0]),this.srcTreeControl.expand(this.srcTreeControl.dataNodes[1])),i&&(this.dataSource.data=i,this.treeControl.expand(this.treeControl.dataNodes[0]),this.treeControl.expand(this.treeControl.dataNodes[1]))}filterSpannerTable(){this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}filterSrcTable(){this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}srcTableSort(){this.srcSortOrder=""===this.srcSortOrder?"asc":"asc"===this.srcSortOrder?"desc":"",this.updateSrcTable.emit({text:this.srcSearchText,order:this.srcSortOrder})}spannerTableSort(){this.spannerSortOrder=""===this.spannerSortOrder?"asc":"asc"===this.spannerSortOrder?"desc":"",this.updateSpannerTable.emit({text:this.spannerSearchText,order:this.spannerSortOrder})}objectSelected(e){this.currentSelectedObject=e,(e.type===jt.Index||e.type===jt.Table||e.type===jt.Sequence)&&this.selectObject.emit(e)}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse,this.leftCollaspe.emit()}isTableNode(e){return new RegExp("^tables").test(e)}isIndexNode(e){return new RegExp("^indexes").test(e)}isSequenceNode(e){return new RegExp("^sequences").test(e)}isIndexLikeNode(e){return e.type==jt.Index||e.type==jt.Indexes}isTableLikeNode(e){return e.type==jt.Table||e.type==jt.Tables}isSequenceLikeNode(e){return e.type==jt.Sequence||e.type==jt.Sequences}openAddIndexForm(e){this.sidenav.setSidenavAddIndexTable(e),this.sidenav.setSidenavRuleType("addIndex"),this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("rule"),this.sidenav.setRuleData([]),this.sidenav.setDisplayRuleFlag(!1)}openAddSequenceForm(){this.dialog.open(FN,MN)}shouldHighlight(e){return e.name===this.currentSelectedObject?.name&&(e.type===jt.Table||e.type===jt.Index)}onTabChanged(){"spanner"==this.selectedTab?(this.selectedTab="source",this.selectedIndex=0):(this.selectedTab="spanner",this.selectedIndex=1),this.selectedDatabase.emit(this.selectedTab),this.currentSelectedObject=null,this.selectObject.emit(void 0)}setSpannerTab(){this.selectedIndex=1}checkDropSelection(){return 0!=this.countSelectionByCategory().eligibleForDrop}checkRestoreSelection(){return 0!=this.countSelectionByCategory().eligibleForRestore}countSelectionByCategory(){let i=0,o=0;return this.checklistSelection.selected.forEach(r=>{r.isDeleted?o+=1:i+=1}),{eligibleForDrop:i,eligibleForRestore:o}}dropSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",maxHeight:"90vh",data:{tables:i,operation:"SKIP"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"SKIP"==a&&(this.data.dropTables(r).pipe(Pt(1)).subscribe(s=>{""===s&&(this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.checklistSelection.clear())})}restoreSelected(){var i=[];this.checklistSelection.selected.forEach(a=>{""!=a.id&&a.type==jt.Table&&i.push({TableId:a.id,TableName:a.name,isDeleted:a.isDeleted})});let o=this.dialog.open(NN,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{tables:i,operation:"RESTORE"}});var r={TableList:[]};i.forEach(a=>{r.TableList.push(a.TableId)}),o.afterClosed().subscribe(a=>{"RESTORE"==a&&(this.data.restoreTables(r).pipe(Pt(1)).subscribe(s=>{this.data.getConversionRate(),this.data.getDdl()}),this.checklistSelection.clear())})}selectionToggle(e){this.checklistSelection.toggle(e);const i=this.treeControl.getDescendants(e);this.checklistSelection.isSelected(e)?this.checklistSelection.select(...i):this.checklistSelection.deselect(...i)}static#e=this.\u0275fac=function(i){return new(i||t)(_(pc),_(Hr),_(Hi),_(eo),_(or))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-object-explorer"]],inputs:{spannerTree:"spannerTree",srcTree:"srcTree",srcDbName:"srcDbName"},outputs:{selectedDatabase:"selectedDatabase",selectObject:"selectObject",updateSpannerTable:"updateSpannerTable",updateSrcTable:"updateSrcTable",leftCollaspe:"leftCollaspe",updateSidebar:"updateSidebar"},features:[fi],decls:59,vars:20,consts:[[1,"container"],[3,"ngClass","selectedIndex","selectedTabChange"],["mat-tab-label",""],[1,"filter-wrapper"],[1,"left"],[1,"material-icons","filter-icon"],[1,"filter-text"],[1,"right"],["placeholder","Filter by table name",3,"ngModel","ngModelChange"],[1,"explorer-table"],["mat-table","",3,"dataSource"],["matColumnDef","status"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","name"],["mat-header-cell","","class","mat-header-cell-name cursor-pointer",3,"click",4,"matHeaderCellDef"],["mat-cell","","class","sidebar_link",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",3,"ngClass",4,"matRowDef","matRowDefColumns"],["clas","delete-selected-btn"],["mat-button","","color","primary",1,"icon","drop",3,"disabled","click"],["clas","restore-selected-btn"],["mat-table","","id","schema-object-list",3,"dataSource"],["mat-cell","",3,"ngClass",4,"matCellDef"],["id","left-column-toggle-button",3,"click"],[3,"ngClass"],["mat-header-cell",""],["mat-cell",""],["class","icon success","matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",4,"ngIf"],["class","work","matTooltip","Requires minimal conversion changes","matTooltipPosition","above",4,"ngIf"],["class","work_history","matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",4,"ngIf"],["matTooltip","Can be converted automatically","matTooltipPosition","above","xmlns","http://www.w3.org/2000/svg","width","24","height","24","fill","black",1,"icon","success"],["d","m10.4 17.6-2-4.4-4.4-2 4.4-2 2-4.4 2 4.4 4.4 2-4.4 2Zm6.4 1.6-1-2.2-2.2-1 2.2-1 1-2.2 1 2.2 2.2 1-2.2 1Z"],["matTooltip","Requires minimal conversion changes","matTooltipPosition","above",1,"work"],["matTooltip","Requires high complexity conversion changes","matTooltipPosition","above",1,"work_history"],["mat-header-cell","",1,"mat-header-cell-name","cursor-pointer",3,"click"],["class","src-unsorted-icon sort-icon",4,"ngIf"],["class","sort-icon",4,"ngIf"],[1,"src-unsorted-icon","sort-icon"],[1,"sort-icon"],["mat-cell","",1,"sidebar_link"],["mat-icon-button","",3,"click"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf","ngIfElse"],["collaps",""],[1,"sidebar_link",3,"click"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf"],["class","actions",4,"ngIf"],["width","12","height","6","viewBox","0 0 12 6","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M12 0L0 0L6 6L12 0Z","fill","black","fill-opacity","0.54"],["width","6","height","12","viewBox","0 0 6 12","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M-5.24537e-07 2.62268e-07L0 12L6 6L-5.24537e-07 2.62268e-07Z","fill","black","fill-opacity","0.54"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M0 0V18H18V0H0ZM16 2V6H2V2H16ZM7.33 11V8H10.66V11H7.33ZM10.67 13V16H7.34V13H10.67ZM5.33 11H2V8H5.33V11ZM12.67 8H16V11H12.67V8ZM2 13H5.33V16H2V13ZM12.67 16V13H16V16H12.67Z","fill","black","fill-opacity","0.54"],["width","12","height","14","viewBox","0 0 12 14","fill","none","xmlns","http://www.w3.org/2000/svg"],["fill-rule","evenodd","clip-rule","evenodd","d","M11.005 14C11.555 14 12 13.554 12 13.002V5L10 3V12H2V14H11.005ZM0 0.996C0 0.446 0.438 0 1.003 0H7L9 2.004V10.004C9 10.554 8.554 11 8.002 11H0.998C0.867035 11.0003 0.737304 10.9747 0.616233 10.9248C0.495162 10.8748 0.385128 10.8015 0.292428 10.709C0.199729 10.6165 0.126186 10.5066 0.0760069 10.3856C0.0258282 10.2646 -2.64036e-07 10.135 0 10.004V0.996ZM6 1L5 5.5H2L6 1ZM3 10L4 5.5H7L3 10Z","fill","black","fill-opacity","0.54"],[1,"actions"],[3,"matMenuTriggerFor"],["menu","matMenu"],["mat-menu-item",""],["mat-header-row",""],["mat-row","",3,"ngClass"],["class","icon dark","matTooltip","Deleted","matTooltipPosition","above",4,"ngIf"],["matTooltip","Deleted","matTooltipPosition","above",1,"icon","dark"],["class","spanner-unsorted-icon sort-icon",4,"ngIf"],[1,"spanner-unsorted-icon","sort-icon"],["mat-cell","",3,"ngClass"],["class","checklist-node",3,"checked","change",4,"ngIf"],[1,"sidebar_link",3,"ngClass","click"],[1,"object-name"],[1,"checklist-node",3,"checked","change"],[1,"add-index-icon",3,"matMenuTriggerFor"],["xPosition","before"],["mat-menu-item","",3,"click"],[1,"add-sequence-icon",3,"matMenuTriggerFor"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-tab-group",1),A("selectedTabChange",function(){return o.onTabChanged()}),d(2,"mat-tab"),y(3,qre,2,4,"ng-template",2),d(4,"div",3)(5,"div",4)(6,"span",5),h(7,"filter_list"),l(),d(8,"span",6),h(9,"Filter"),l()(),d(10,"div",7)(11,"input",8),un("ngModelChange",function(a){return kn(o.srcSearchText,a)||(o.srcSearchText=a),a}),A("ngModelChange",function(){return o.filterSrcTable()}),l()()(),d(12,"div",9)(13,"table",10),me(14,11),y(15,Wre,2,0,"th",12)(16,Qre,4,3,"td",13),pe(),me(17,14),y(18,tae,7,3,"th",15)(19,sae,12,10,"td",16),pe(),y(20,cae,1,0,"tr",17)(21,lae,1,3,"tr",18),l()()(),d(22,"mat-tab"),y(23,dae,2,3,"ng-template",2),d(24,"div",3)(25,"div",4)(26,"span",5),h(27,"filter_list"),l(),d(28,"span",6),h(29,"Filter"),l()(),d(30,"div",7)(31,"input",8),un("ngModelChange",function(a){return kn(o.spannerSearchText,a)||(o.spannerSearchText=a),a}),A("ngModelChange",function(){return o.filterSpannerTable()}),l()(),d(32,"div",19)(33,"button",20),A("click",function(){return o.dropSelected()}),d(34,"mat-icon"),h(35,"delete"),l(),d(36,"span"),h(37,"SKIP"),l()()(),d(38,"div",21)(39,"button",20),A("click",function(){return o.restoreSelected()}),d(40,"mat-icon"),h(41,"undo"),l(),d(42,"span"),h(43,"RESTORE"),l()()()(),d(44,"div",9)(45,"table",22),me(46,11),y(47,uae,2,0,"th",12)(48,gae,5,4,"td",13),pe(),me(49,14),y(50,yae,7,3,"th",15)(51,Eae,14,17,"td",23),pe(),y(52,Oae,1,0,"tr",17)(53,Aae,1,3,"tr",18),l()()()(),d(54,"button",24),A("click",function(){return o.leftColumnToggle()}),d(55,"mat-icon",25),h(56,"first_page"),l(),d(57,"mat-icon",25),h(58,"last_page"),l()()()),2&i&&(m(),f("ngClass",hi(14,ww,o.isLeftColumnCollapse?"hidden":"display"))("selectedIndex",o.selectedIndex),m(10),dn("ngModel",o.srcSearchText),m(2),f("dataSource",o.srcDataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(10),dn("ngModel",o.spannerSearchText),m(2),f("disabled",!o.checkDropSelection()),m(6),f("disabled",!o.checkRestoreSelection()),m(6),f("dataSource",o.dataSource),m(7),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(2),f("ngClass",hi(16,ww,o.isLeftColumnCollapse?"hidden":"display")),m(2),f("ngClass",hi(18,ww,o.isLeftColumnCollapse?"display":"hidden")))},dependencies:[yr,It,Yt,ba,Mi,Ci,_i,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,FC,eg,BC,vn,og,Nl],styles:[".container[_ngcontent-%COMP%]{position:relative;background-color:#fff}.container[_ngcontent-%COMP%] .filter-wrapper[_ngcontent-%COMP%]{padding:0 10px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]{height:35px}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .spanner-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%] .src-unsorted-icon[_ngcontent-%COMP%]{visibility:hidden}.container[_ngcontent-%COMP%] .mat-mdc-header-cell-name[_ngcontent-%COMP%]:hover .src-unsorted-icon[_ngcontent-%COMP%]{visibility:visible;opacity:.7}.container[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%]{font-size:1.1rem;vertical-align:middle}.selected-row[_ngcontent-%COMP%]{background-color:#61b3ff4a}.explorer-table[_ngcontent-%COMP%]{height:calc(100vh - 320px);width:100%;overflow:auto}.mdc-data-table__cell[_ngcontent-%COMP%], .mdc-data-table__header-cell[_ngcontent-%COMP%]{padding:0 0 0 16px}.mat-mdc-table[_ngcontent-%COMP%]{width:100%;border:inset}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;height:40px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{margin-right:10px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{height:40px;margin-left:14px}.mat-mdc-table[_ngcontent-%COMP%] .sidebar_link[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .add-index-icon[_ngcontent-%COMP%]{margin-top:7px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-row[_ngcontent-%COMP%], .mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-row[_ngcontent-%COMP%]{height:29px}.mat-mdc-table[_ngcontent-%COMP%] .mat-mdc-header-cell[_ngcontent-%COMP%]{font-family:Roboto;font-size:13px;font-style:normal;font-weight:500;line-height:18px;background:#f5f5f5}.mat-mdc-table[_ngcontent-%COMP%] .mat-column-status[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:medium}.mat-mdc-table[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{margin-right:20px}.filter-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;height:48px}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{width:30%;display:flex;align-items:center}.filter-wrapper[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{margin-right:5px}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:70%}.filter-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:70%;border:none;outline:none;background-color:transparent}#left-column-toggle-button[_ngcontent-%COMP%]{z-index:100;position:absolute;right:4px;top:10px;border:none;background-color:inherit}#left-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer}.mat-mdc-column-status[_ngcontent-%COMP%]{width:80px} .column-left .mat-mdc-tab-label-container{margin-right:40px} .column-left .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-left .mat-mdc-tab-header-pagination-after{margin-right:40px}"]})}return t})();function Rae(t,n){1&t&&(d(0,"div",9)(1,"mat-icon"),h(2,"warning"),l(),d(3,"span"),h(4,"This operation cannot be undone"),l()())}let xw=(()=>{class t{constructor(e,i){this.data=e,this.dialogRef=i,this.ObjectDetailNodeType=ys,this.confirmationInput=new U("",[ee.required,ee.pattern(`^${e.name}$`)]),i.disableClose=!0}delete(){this.dialogRef.close(this.data.type)}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-drop-index-dialog"]],decls:19,vars:7,consts:[["mat-dialog-content",""],["class","alert-container",4,"ngIf"],[1,"form-container"],[1,"form-custom-label"],["appearance","outline"],["matInput","","type","text",3,"formControl"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[1,"alert-container"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2),l(),y(3,Rae,5,0,"div",1),d(4,"div",2)(5,"form")(6,"span",3),h(7," Confirm deletion by typing the following below: "),d(8,"b"),h(9),l()(),d(10,"mat-form-field",4)(11,"mat-label"),h(12),l(),D(13,"input",5),l()()()(),d(14,"div",6)(15,"button",7),h(16,"Cancel"),l(),d(17,"button",8),A("click",function(){return o.delete()}),h(18," Confirm "),l()()),2&i&&(m(2),_l("Skip ",o.data.type," (",o.data.name,")?"),m(),f("ngIf","Index"===o.data.type),m(6),Pe(o.data.name),m(3),xe("",o.data.type==o.ObjectDetailNodeType.Table?"Table":"Index"," Name"),m(),f("formControl",o.confirmationInput),m(4),f("disabled",!o.confirmationInput.valid))},dependencies:[It,Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,Fl,zn,So,ko,hs],styles:[".alert-container[_ngcontent-%COMP%]{padding:.5rem;display:flex;align-items:center;margin-bottom:1rem;background-color:#f8f4f4}.alert-container[_ngcontent-%COMP%] mat-mdc-icon[_ngcontent-%COMP%]{color:#f3b300;margin-right:20px}.form-container[_ngcontent-%COMP%] .mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:flex-end}"]})}return t})();function Nae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Fae(t,n){1&t&&(d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Length"),l(),D(4,"input",13),l(),D(5,"br"),l())}function Lae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Bae(t,n){if(1&t&&(me(0),y(1,Lae,2,2,"mat-option",16),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Vae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function jae(t,n){if(1&t&&(d(0,"mat-optgroup",18),y(1,Vae,2,2,"mat-option",6),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function zae(t,n){if(1&t&&(me(0),y(1,jae,2,2,"mat-optgroup",17),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Hae(t,n){if(1&t&&(me(0),y(1,zae,2,1,"ng-container",15),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf;m(),f("ngForOf",du(2,1,e))}}function Uae(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",2)(2,"mat-label"),h(3,"Auto Generated"),l(),d(4,"mat-select",14),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedAutoGen,o)||(r.selectedAutoGen=o),ne(o)}),y(5,Bae,2,1,"ng-container",15)(6,Hae,3,3,"ng-container",7),l()(),D(7,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedAutoGen),m(),f("ngForOf",e.autoGenMap[e.selectedDatatype]),m(),f("ngIf",e.processedAutoGenMap[e.selectedDatatype])}}function $ae(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}let Gae=(()=>{class t{constructor(e,i,o,r,a){this.formBuilder=e,this.dataService=i,this.fetchSerice=o,this.dialogRef=r,this.data=a,this.dialect="",this.datatypes=[],this.selectedDatatype="",this.tableId="",this.selectedNull=!0,this.dataTypesWithColLen=In.DataTypes,this.autoGenMap={},this.selectedAutoGen={Name:"",GenerationType:""},this.processedAutoGenMap={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.autoGenSupportedDbs=["MySQL"],this.autGenSupported=!1,this.isColumnNullable=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.dialect=a.dialect,this.tableId=a.tableId,this.addNewColumnForm=this.formBuilder.group({name:["",[ee.required,ee.minLength(1),ee.maxLength(128),ee.pattern("^[a-zA-Z][a-zA-Z0-9_]*$")]],datatype:["",ee.required],length:["",ee.pattern("^[0-9]+$")],isNullable:[],autoGen:[{Name:"",GenerationType:""}]}),this.fetchSerice.getAutoGenMap().subscribe(s=>{this.autoGenMap=s,this.processedAutoGenMap=IN(this.autoGenMap)}),this.autGenSupported=this.autoGenSupportedDbs.includes(this.srcDbName)}ngOnInit(){this.datatypes="google_standard_sql"==this.dialect?SN_GoogleStandardSQL:SN_PostgreSQL}changeValidator(){this.addNewColumnForm.controls.length.clearValidators(),"BYTES"===this.selectedDatatype?this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.ByteMaxLength)]):("VARCHAR"===this.selectedDatatype||"STRING"===this.selectedDatatype)&&this.addNewColumnForm.get("length")?.addValidators([ee.required,ee.max(In.StringMaxLength)]),this.addNewColumnForm.controls.length.updateValueAndValidity()}addNewColumn(){let e=this.addNewColumnForm.value,i={Name:e.name,Datatype:this.selectedDatatype,Length:parseInt(e.length),IsNullable:this.selectedNull,AutoGen:this.selectedAutoGen};this.dataService.addColumn(this.tableId,i),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(En),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-new-column"]],decls:27,vars:8,consts:[["mat-dialog-content",""],[1,"add-new-column-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Column Name","type","text","formControlName","name"],["appearance","outline"],["formControlName","datatype","required","true",1,"input-field",3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["formControlName","isNullable","required","true",3,"ngModel","ngModelChange"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],["matInput","","placeholder","Length","type","text","formControlName","length"],["formControlName","autoGen",1,"input-field",3,"ngModel","ngModelChange"],[4,"ngFor","ngForOf"],[3,"value",4,"ngIf"],[3,"label",4,"ngIf"],[3,"label"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Column Details"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Name"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Datatype"),l(),d(12,"mat-select",5),un("ngModelChange",function(a){return kn(o.selectedDatatype,a)||(o.selectedDatatype=a),a}),A("selectionChange",function(){return o.changeValidator()}),y(13,Nae,2,2,"mat-option",6),l()(),D(14,"br"),y(15,Fae,6,0,"div",7)(16,Uae,8,3,"div",7),d(17,"mat-form-field",4)(18,"mat-label"),h(19,"IsNullable"),l(),d(20,"mat-select",8),un("ngModelChange",function(a){return kn(o.selectedNull,a)||(o.selectedNull=a),a}),y(21,$ae,2,2,"mat-option",6),l()()(),d(22,"div",9)(23,"button",10),h(24,"CANCEL"),l(),d(25,"button",11),A("click",function(){return o.addNewColumn()}),h(26," ADD "),l()()()),2&i&&(m(),f("formGroup",o.addNewColumnForm),m(11),dn("ngModel",o.selectedDatatype),m(),f("ngForOf",o.datatypes),m(2),f("ngIf",o.dataTypesWithColLen.indexOf(o.selectedDatatype)>-1),m(),f("ngIf",""!=o.selectedDatatype&&o.autoGenMap[o.selectedDatatype].length>1&&o.autGenSupported),m(4),dn("ngModel",o.selectedNull),m(),f("ngForOf",o.isColumnNullable),m(4),f("disabled",!o.addNewColumnForm.valid))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,TE,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,ay]})}return t})();function qae(t,n){1&t&&(d(0,"span"),h(1," To view and modify an object details, click on the object name on the Spanner draft panel. "),l())}function Wae(t,n){if(1&t&&(d(0,"span"),h(1),l()),2&t){const e=C(2);m(),xe(" To view an object details, click on the object name on the ",e.srcDbName," panel. ")}}const Tg=t=>[t];function Kae(t,n){if(1&t){const e=_e();d(0,"div",2)(1,"div",3)(2,"h3",4),h(3,"OBJECT VIEWER"),l(),d(4,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(5,"mat-icon",6),h(6,"first_page"),l(),d(7,"mat-icon",6),h(8,"last_page"),l()()(),D(9,"mat-divider"),d(10,"div",7)(11,"div",8),ei(),d(12,"svg",9),D(13,"path",10),l()(),pr(),d(14,"div",11),y(15,qae,2,0,"span",12)(16,Wae,2,1,"span",12),l()()()}if(2&t){const e=C();m(5),f("ngClass",hi(4,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(6,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(8),f("ngIf","spanner"==e.currentDatabase),m(),f("ngIf","source"==e.currentDatabase)}}function Zae(t,n){1&t&&(d(0,"mat-icon",24),h(1," table_chart"),l())}function Yae(t,n){1&t&&(ei(),d(0,"svg",25),D(1,"path",26),l())}function Qae(t,n){if(1&t&&(d(0,"span"),h(1),lu(2,"uppercase"),l()),2&t){const e=C(2);m(),xe("( TABLE: ",du(2,1,e.currentObject.parent)," ) ")}}function Xae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropIndex())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP INDEX"),l()()}}function Jae(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropSequence())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"DELETE SEQUENCE"),l()()}}function ese(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreIndex())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE INDEX"),l()()}}function tse(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).dropTable())}),d(1,"mat-icon"),h(2,"delete"),l(),d(3,"span"),h(4,"SKIP TABLE"),l()()}}function ise(t,n){if(1&t){const e=_e();d(0,"button",27),A("click",function(){return ie(e),ne(C(2).restoreSpannerTable())}),d(1,"mat-icon"),h(2,"undo"),l(),d(3,"span"),h(4," RESTORE TABLE"),l()()}}function nse(t,n){if(1&t&&(d(0,"div",28),h(1," Interleaved: "),d(2,"div",29),h(3),l()()),2&t){const e=C(2);m(3),xe(" ",e.interleaveParentName," ")}}function ose(t,n){1&t&&(d(0,"span"),h(1,"COLUMNS "),l())}function rse(t,n){if(1&t&&(d(0,"th",82),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function ase(t,n){1&t&&(d(0,"th",83),h(1,"S No."),l())}function sse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function cse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function lse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function dse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function use(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function hse(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function mse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColMaxLength").value," ")}}function pse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function fse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function gse(t,n){1&t&&(me(0,85),y(1,pse,2,0,"th",42)(2,fse,2,1,"td",39),pe())}function _se(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function bse(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function vse(t,n){if(1&t&&(d(0,"td",84),y(1,bse,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function yse(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Cse(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function wse(t,n){1&t&&D(0,"tr",88)}function xse(t,n){1&t&&D(0,"tr",88)}const Dse=t=>({"scr-column-data-edit-mode":t});function Sse(t,n){if(1&t&&D(0,"tr",89),2&t){const e=C(3);f("ngClass",hi(1,Dse,e.isEditMode))}}function kse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).toggleEdit())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," EDIT "),l()}}function Mse(t,n){if(1&t&&(d(0,"div"),y(1,kse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Tse(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewColumn())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD COLUMN "),l()}}function Ise(t,n){if(1&t&&(d(0,"div"),y(1,Tse,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ese(t,n){if(1&t){const e=_e();d(0,"button",93),A("click",function(){return ie(e),ne(C(5).addNewSequence())}),d(1,"mat-icon",94),h(2,"edit"),l(),h(3," ADD SEQUENCE "),l()}}function Ose(t,n){if(1&t&&(d(0,"div"),y(1,Ese,4,0,"button",92),l()),2&t){const e=C(4);m(),f("ngIf",e.currentObject.isSpannerNode)}}function Ase(t,n){if(1&t&&(d(0,"th",90)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,Mse,2,1,"div",12)(5,Ise,2,1,"div",12)(6,Ose,2,1,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted),m(),f("ngIf",!e.isEditMode&&!e.currentObject.isDeleted&&e.autoGenSupported)}}function Pse(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Rse(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spColName"))("matTooltipDisabled",!(null!=(i=e.get("spColName"))&&i.hasError("pattern")))}}function Nse(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function Fse(t,n){if(1&t&&(d(0,"td",84),y(1,Rse,2,2,"div",12)(2,Nse,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode||""===e.get("srcId").value)}}function Lse(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Bse(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Vse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayT),m(),xe(" ",e.DisplayT," ")}}function jse(t,n){1&t&&(d(0,"mat-option",107),h(1," STRING "),l())}function zse(t,n){1&t&&(d(0,"mat-option",108),h(1," VARCHAR "),l())}function Hse(t,n){if(1&t){const e=_e();d(0,"mat-form-field",100)(1,"mat-select",101,102),A("selectionChange",function(){ie(e);const o=Ft(2),r=C().index;return ne(C(3).spTableEditSuggestionHandler(r,o.value))}),y(3,Vse,2,2,"mat-option",103)(4,jse,2,0,"mat-option",104)(5,zse,2,0,"mat-option",105),l()()}if(2&t){const e=C().$implicit,i=C(3);m(),f("formControl",e.get("spDataType")),m(2),f("ngForOf",i.typeMap[e.get("srcDataType").value]),m(),f("ngIf",""==e.get("srcDataType").value&&!i.isPostgreSQLDialect),m(),f("ngIf",""==e.get("srcDataType").value&&i.isPostgreSQLDialect)}}function Use(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spDataType").value)}}function $se(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Bse,2,1,"span",97)(3,Hse,6,4,"mat-form-field",98)(4,Use,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spDataType").value),m(),f("ngIf",o.isEditMode&&""!==e.get("spDataType").value&&""!==e.get("srcId").value),m(),f("ngIf",!o.isEditMode||""===e.get("srcId").value)}}function Gse(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function qse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=C().$implicit;f("value",e),m(),xe(" ",""!==e.Name?e.Name:"None"," ")}}function Wse(t,n){if(1&t&&(me(0),y(1,qse,2,2,"mat-option",114),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""===e.GenerationType)}}function Kse(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e.Name," ")}}function Zse(t,n){if(1&t&&(d(0,"mat-optgroup",116),y(1,Kse,2,2,"mat-option",103),l()),2&t){const e=C().$implicit;f("label",e.key),m(),f("ngForOf",e.value)}}function Yse(t,n){if(1&t&&(me(0),y(1,Zse,2,2,"mat-optgroup",115),pe()),2&t){const e=n.$implicit;m(),f("ngIf",""!==e.key)}}function Qse(t,n){if(1&t&&(me(0),y(1,Yse,2,1,"ng-container",113),lu(2,"keyvalue"),pe()),2&t){const e=n.ngIf,i=C(6);m(),f("ngForOf",du(2,1,i.processedAutoGenMap[e]))}}function Xse(t,n){if(1&t&&(me(0),d(1,"mat-form-field",100)(2,"mat-select",111,112),y(4,Wse,2,1,"ng-container",113)(5,Qse,3,3,"ng-container",12),l()(),pe()),2&t){const e=C().$implicit,i=C(4);m(2),f("formControl",e.get("spAutoGen"))("compareWith",i.compareAutoGen),m(2),f("ngForOf",i.autoGenMap[e.get("spDataType").value]),m(),f("ngIf",e.get("spDataType").value)}}function Jse(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function ece(t,n){if(1&t&&(d(0,"td",84)(1,"div",110),y(2,Xse,6,4,"ng-container",12)(3,Jse,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(4);m(2),f("ngIf",i.isEditMode&&""!==e.get("srcId").value),m(),f("ngIf",!i.isEditMode)}}function tce(t,n){1&t&&(me(0,109),y(1,Gse,2,0,"th",42)(2,ece,4,2,"td",39),pe())}function ice(t,n){1&t&&(d(0,"th",83),h(1,"Max Length"),l())}function nce(t,n){if(1&t&&(d(0,"div"),D(1,"input",117),l()),2&t){const e=C(2).$implicit;m(),f("formControl",e.get("spColMaxLength"))}}function oce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C(2).$implicit;m(),xe(" ",e.get("spColMaxLength").value," ")}}function rce(t,n){if(1&t&&(d(0,"div"),y(1,nce,2,1,"div",12)(2,oce,2,1,"p",12),l()),2&t){const e=C().$implicit,i=C(3);m(),f("ngIf",i.isEditMode&&""!=e.get("srcDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function ace(t,n){if(1&t&&(d(0,"td",84),y(1,rce,3,2,"div",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.dataTypesWithColLen.indexOf(e.get("spDataType").value)>-1)}}function sce(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function cce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function lce(t,n){if(1&t&&(d(0,"td",84),y(1,cce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function dce(t,n){1&t&&(d(0,"span"),h(1,"Not Null"),l())}function uce(t,n){1&t&&(d(0,"span"),h(1,"Nullable"),l())}function hce(t,n){if(1&t&&(d(0,"th",83),y(1,dce,2,0,"span",12)(2,uce,2,0,"span",12),l()),2&t){const e=C(3);m(),f("ngIf",e.isEditMode),m(),f("ngIf",!e.isEditMode)}}function mce(t,n){if(1&t&&(d(0,"div"),D(1,"mat-checkbox",119),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spIsNotNull"))}}function pce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function fce(t,n){if(1&t&&(d(0,"td",84)(1,"div",118),y(2,mce,2,1,"div",12)(3,pce,2,1,"p",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isEditMode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol),m(),f("ngIf",!i.isEditMode||e.get("spId").value===i.shardIdCol)}}function gce(t,n){1&t&&D(0,"th",83)}function _ce(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropColumn(o))}),d(6,"span"),h(7,"Drop Column"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}const Ig=t=>({"drop-button-left-border":t});function bce(t,n){if(1&t&&(d(0,"td",120),y(1,_ce,8,1,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isEditMode)),m(),f("ngIf",i.isEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spDataType").value&&e.get("spId").value!==i.shardIdCol)}}function vce(t,n){1&t&&D(0,"tr",88)}function yce(t,n){1&t&&D(0,"tr",88)}function Cce(t,n){1&t&&D(0,"tr",127)}function wce(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function xce(t,n){if(1&t){const e=_e();d(0,"div",128)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setColumn(o.value))}),y(5,wce,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).restoreColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," RESTORE COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addColumnForm),m(5),f("ngForOf",e.droppedSourceColumns)}}function Dce(t,n){1&t&&(d(0,"span"),h(1,"PRIMARY KEY "),l())}function Sce(t,n){if(1&t&&(d(0,"th",132),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function kce(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).togglePkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function Mce(t,n){if(1&t&&(d(0,"th",133)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,kce,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isPkEditMode&&e.pkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function Tce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Ice(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function Ece(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Oce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function Ace(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Pce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcDataType").value," ")}}function Rce(t,n){1&t&&(d(0,"th",83),h(1,"PK"),l())}function Nce(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function Fce(t,n){if(1&t&&(d(0,"td",84),y(1,Nce,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcIsPk").value)}}function Lce(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function Bce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcIsNotNull").value?"Not Null":""," ")}}function Vce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function jce(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",""!==e.get("srcAutoGen").value.GenerationType?e.get("srcAutoGen").value.GenerationType:"None"," ")}}function zce(t,n){1&t&&(me(0,85),y(1,Vce,2,0,"th",42)(2,jce,2,1,"td",39),pe())}function Hce(t,n){1&t&&(d(0,"th",83),h(1,"Order"),l())}function Uce(t,n){if(1&t&&(d(0,"div"),D(1,"input",134),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spOrder"))("matTooltipDisabled",!(null!=(i=e.get("spOrder"))&&i.hasError("pattern")))}}function $ce(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Gce(t,n){if(1&t&&(d(0,"td",84),y(1,Uce,2,2,"div",12)(2,$ce,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isPkEditMode&&""!==e.get("spColName").value),m(),f("ngIf",!i.isPkEditMode)}}function qce(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Wce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.get("spColName").value)}}function Kce(t,n){1&t&&(d(0,"th",83),h(1,"Type"),l())}function Zce(t,n){if(1&t&&(d(0,"span",99),h(1,"warning"),l()),2&t){const e=C().index;f("matTooltip",C(3).spTableSuggestion[e])}}function Yce(t,n){if(1&t&&(d(0,"td",84)(1,"div",96),y(2,Zce,2,1,"span",97),d(3,"p"),h(4),l()()()),2&t){const e=n.$implicit,i=n.index,o=C(3);m(2),f("ngIf",o.isSpTableSuggesstionDisplay[i]&&""!==e.get("spColName").value),m(2),Pe(e.get("spDataType").value)}}function Qce(t,n){1&t&&(d(0,"th",83),h(1,"Auto-Generated"),l())}function Xce(t,n){if(1&t&&(d(0,"td",84)(1,"p"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(""!==e.get("spAutoGen").value.Name?e.get("spAutoGen").value.Name:"None")}}function Jce(t,n){1&t&&(me(0,109),y(1,Qce,2,0,"th",42)(2,Xce,3,1,"td",39),pe())}function ele(t,n){1&t&&(d(0,"th",83),h(1,"Pk"),l())}function tle(t,n){1&t&&(d(0,"div"),ei(),d(1,"svg",86),D(2,"path",87),l()())}function ile(t,n){if(1&t&&(d(0,"td",84),y(1,tle,3,0,"div",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spIsPk").value)}}function nle(t,n){1&t&&(d(0,"th",83),h(1,"Nullable"),l())}function ole(t,n){if(1&t&&(d(0,"td",84)(1,"div",118)(2,"p"),h(3),l()()()),2&t){const e=n.$implicit;m(3),xe(" ",e.get("spIsNotNull").value?"Not Null":""," ")}}function rle(t,n){1&t&&D(0,"th",83)}function ale(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropPk(o))}),d(6,"span"),h(7,"Remove primary key"),l()()()()}if(2&t){const e=Ft(4),i=C(4);m(),f("matMenuTriggerFor",e),m(4),f("disabled",!i.isPkEditMode)}}function sle(t,n){if(1&t&&(d(0,"td",120),y(1,ale,8,2,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isPkEditMode)),m(),f("ngIf",i.isPkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spColName").value)}}function cle(t,n){1&t&&D(0,"tr",88)}function lle(t,n){1&t&&D(0,"tr",88)}function dle(t,n){1&t&&D(0,"tr",127)}function ule(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function hle(t,n){if(1&t){const e=_e();d(0,"div",136)(1,"mat-form-field",129)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",130),A("selectionChange",function(o){return ie(e),ne(C(3).setPkColumn(o.value))}),y(5,ule,2,2,"mat-option",103),l()(),d(6,"button",131),A("click",function(){return ie(e),ne(C(3).addPkColumn())}),d(7,"mat-icon"),h(8,"add"),l(),h(9," ADD COLUMN "),l()()}if(2&t){const e=C(3);f("formGroup",e.addPkColumnForm),m(5),f("ngForOf",e.pkColumnNames)}}function mle(t,n){1&t&&(d(0,"span"),h(1,"FOREIGN KEY"),l())}function ple(t,n){if(1&t&&(d(0,"th",137),h(1),l()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?6:4),m(),Pe(e.srcDbName)}}function fle(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleFkEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function gle(t,n){if(1&t&&(d(0,"th",137)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,fle,5,0,"div",12),l()()),2&t){const e=C(3);Xe("colspan",e.foreignKeyActionsSupported?7:5),m(4),f("ngIf",!e.isFkEditMode&&e.fkDataSource.length>0&&e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function _le(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcName").value," ")}}function vle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function yle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColumns").value," ")}}function Cle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function wle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferTable").value," ")}}function xle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function Dle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcReferColumns").value," ")}}function Sle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function kle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnDelete").value," ")}}function Mle(t,n){1&t&&(me(0,138),y(1,Sle,2,0,"th",38)(2,kle,2,1,"td",39),pe())}function Tle(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Ile(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOnUpdate").value," ")}}function Ele(t,n){1&t&&(me(0,139),y(1,Tle,2,0,"th",38)(2,Ile,2,1,"td",39),pe())}function Ole(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ale(t,n){if(1&t&&(d(0,"div"),D(1,"input",95),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spName"))("matTooltipDisabled",!(null!=(i=e.get("spName"))&&i.hasError("pattern")))}}function Ple(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spName").value)}}function Rle(t,n){if(1&t&&(d(0,"td",84),y(1,Ale,2,2,"div",12)(2,Ple,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isFkEditMode&&""!==e.get("spReferTable").value),m(),f("ngIf",!i.isFkEditMode)}}function Nle(t,n){1&t&&(d(0,"th",83),h(1,"Columns"),l())}function Fle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spColumns").value," ")}}function Lle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Table"),l())}function Ble(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spReferTable").value," ")}}function Vle(t,n){1&t&&(d(0,"th",83),h(1,"Refer Columns"),l())}function jle(t,n){if(1&t&&(d(0,"td",84)(1,"div",140),h(2),l()()),2&t){const e=n.$implicit;m(2),xe(" ",e.get("spReferColumns").value," ")}}function zle(t,n){1&t&&(d(0,"th",83),h(1,"On Delete"),l())}function Hle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnDelete").value," ")}}function Ule(t,n){1&t&&(me(0,141),y(1,zle,2,0,"th",38)(2,Hle,2,1,"td",39),pe())}function $le(t,n){1&t&&(d(0,"th",83),h(1,"On Update"),l())}function Gle(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("spOnUpdate").value," ")}}function qle(t,n){1&t&&(me(0,142),y(1,$le,2,0,"th",38)(2,Gle,2,1,"td",39),pe())}function Wle(t,n){1&t&&D(0,"th",83)}function Kle(t,n){if(1&t){const e=_e();d(0,"button",135),A("click",function(){return ie(e),ne(C(5).setInterleave())}),d(1,"span"),h(2,"Convert to interleave"),l()()}2&t&&f("disabled",""===C(2).$implicit.get("spName").value)}function Zle(t,n){if(1&t){const e=_e();d(0,"div",122)(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",135),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).dropFk(o))}),d(6,"span"),h(7,"Drop Foreign Key"),l()(),y(8,Kle,3,1,"button",143),l()()}if(2&t){const e=Ft(4),i=C().$implicit,o=C(3);m(),f("matMenuTriggerFor",e),m(4),f("disabled",""===i.get("spName").value),m(3),f("ngIf",o.interleaveStatus.tableInterleaveStatus&&o.interleaveStatus.tableInterleaveStatus.Possible)}}function Yle(t,n){if(1&t&&(d(0,"td",120),y(1,Zle,9,3,"div",121),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isFkEditMode)),m(),f("ngIf",i.isFkEditMode&&i.currentObject.isSpannerNode&&""!==e.get("spReferTable").value)}}function Qle(t,n){1&t&&D(0,"tr",88)}function Xle(t,n){1&t&&D(0,"tr",88)}function Jle(t,n){1&t&&D(0,"tr",127)}function ede(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).setInterleave())}),h(1," Convert to Interleave "),l()}}function tde(t,n){if(1&t){const e=_e();d(0,"button",147),A("click",function(){return ie(e),ne(C(4).removeInterleave())}),h(1," Convert Back to Foreign Key "),l()}}function ide(t,n){if(1&t&&(d(0,"div"),h(1," This table is interleaved with "),d(2,"span",148),h(3),l(),h(4,". Click on the above button to convert back to foreign key. "),l()),2&t){const e=C(4);m(3),Pe(e.interleaveParentName)}}function nde(t,n){if(1&t&&(d(0,"mat-tab",144)(1,"div",145),y(2,ede,2,0,"button",146)(3,tde,2,0,"button",146),D(4,"br"),y(5,ide,5,1,"div",12),l()()),2&t){const e=C(3);m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible&&null===e.interleaveParentName),m(),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName),m(2),f("ngIf",e.interleaveStatus.tableInterleaveStatus&&!e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)}}function ode(t,n){1&t&&(d(0,"span"),h(1,"SQL"),l())}function rde(t,n){if(1&t&&(d(0,"mat-tab"),y(1,ode,2,0,"ng-template",31),d(2,"div",149)(3,"pre")(4,"code"),h(5),l()()()()),2&t){const e=C(3);m(5),Pe(e.ddlStmts[e.currentObject.id])}}const ade=t=>({"height-on-edit":t}),sde=()=>["srcDatabase"],VN=()=>["spDatabase"],Dw=()=>["srcDatabase","spDatabase"];function cde(t,n){if(1&t){const e=_e();d(0,"mat-tab-group",30),A("selectedTabChange",function(o){return ie(e),ne(C(2).tabChanged(o))}),d(1,"mat-tab"),y(2,ose,2,0,"ng-template",31),d(3,"div",32)(4,"div",33)(5,"table",34),me(6,35),y(7,rse,2,1,"th",36),pe(),me(8,37),y(9,ase,2,0,"th",38)(10,sse,2,1,"td",39),pe(),me(11,40),y(12,cse,2,0,"th",38)(13,lse,2,1,"td",39),pe(),me(14,41),y(15,dse,2,0,"th",42)(16,use,2,1,"td",39),pe(),me(17,43),y(18,hse,2,0,"th",42)(19,mse,2,1,"td",39),pe(),y(20,gse,3,0,"ng-container",44),me(21,45),y(22,_se,2,0,"th",38)(23,vse,2,1,"td",39),pe(),me(24,46),y(25,yse,2,0,"th",42)(26,Cse,2,1,"td",39),pe(),y(27,wse,1,0,"tr",47)(28,xse,1,0,"tr",47)(29,Sse,1,3,"tr",48),l(),d(30,"table",34),me(31,49),y(32,Ase,7,3,"th",50),pe(),me(33,51),y(34,Pse,2,0,"th",42)(35,Fse,3,2,"td",39),pe(),me(36,52),y(37,Lse,2,0,"th",42)(38,$se,5,3,"td",39),pe(),y(39,tce,3,0,"ng-container",53),me(40,54),y(41,ice,2,0,"th",42)(42,ace,2,1,"td",39),pe(),me(43,55),y(44,sce,2,0,"th",38)(45,lce,2,1,"td",39),pe(),me(46,56),y(47,hce,3,2,"th",42)(48,fce,4,2,"td",39),pe(),me(49,57),y(50,gce,1,0,"th",42)(51,bce,2,4,"td",58),pe(),y(52,vce,1,0,"tr",47)(53,yce,1,0,"tr",47)(54,Cce,1,0,"tr",59),l()(),y(55,xce,10,2,"div",60),l()(),d(56,"mat-tab"),y(57,Dce,2,0,"ng-template",31),d(58,"div",61)(59,"table",34),me(60,35),y(61,Sce,2,1,"th",62),pe(),me(62,49),y(63,Mce,5,1,"th",63),pe(),me(64,37),y(65,Tce,2,0,"th",38)(66,Ice,2,1,"td",39),pe(),me(67,40),y(68,Ece,2,0,"th",38)(69,Oce,2,1,"td",39),pe(),me(70,41),y(71,Ace,2,0,"th",42)(72,Pce,2,1,"td",39),pe(),me(73,45),y(74,Rce,2,0,"th",38)(75,Fce,2,1,"td",39),pe(),me(76,46),y(77,Lce,2,0,"th",42)(78,Bce,2,1,"td",39),pe(),y(79,zce,3,0,"ng-container",44),me(80,64),y(81,Hce,2,0,"th",38)(82,Gce,3,2,"td",39),pe(),me(83,51),y(84,qce,2,0,"th",42)(85,Wce,3,1,"td",39),pe(),me(86,52),y(87,Kce,2,0,"th",42)(88,Yce,5,2,"td",39),pe(),y(89,Jce,3,0,"ng-container",53),me(90,55),y(91,ele,2,0,"th",38)(92,ile,2,1,"td",39),pe(),me(93,56),y(94,nle,2,0,"th",42)(95,ole,4,1,"td",39),pe(),me(96,57),y(97,rle,1,0,"th",42)(98,sle,2,4,"td",58),pe(),y(99,cle,1,0,"tr",47)(100,lle,1,0,"tr",47)(101,dle,1,0,"tr",59),l(),y(102,hle,10,2,"div",65),l()(),d(103,"mat-tab"),y(104,mle,2,0,"ng-template",31),d(105,"div",66)(106,"table",34),me(107,35),y(108,ple,2,2,"th",67),pe(),me(109,49),y(110,gle,5,2,"th",67),pe(),me(111,68),y(112,_le,2,0,"th",38)(113,ble,2,1,"td",39),pe(),me(114,69),y(115,vle,2,0,"th",38)(116,yle,2,1,"td",39),pe(),me(117,70),y(118,Cle,2,0,"th",38)(119,wle,2,1,"td",39),pe(),me(120,71),y(121,xle,2,0,"th",38)(122,Dle,2,1,"td",39),pe(),y(123,Mle,3,0,"ng-container",72)(124,Ele,3,0,"ng-container",73),me(125,74),y(126,Ole,2,0,"th",42)(127,Rle,3,2,"td",39),pe(),me(128,75),y(129,Nle,2,0,"th",38)(130,Fle,2,1,"td",39),pe(),me(131,76),y(132,Lle,2,0,"th",38)(133,Ble,2,1,"td",39),pe(),me(134,77),y(135,Vle,2,0,"th",38)(136,jle,3,1,"td",39),pe(),y(137,Ule,3,0,"ng-container",78)(138,qle,3,0,"ng-container",79),me(139,80),y(140,Wle,1,0,"th",42)(141,Yle,2,4,"td",58),pe(),y(142,Qle,1,0,"tr",47)(143,Xle,1,0,"tr",47)(144,Jle,1,0,"tr",59),l()()(),y(145,nde,6,3,"mat-tab",81)(146,rde,6,1,"mat-tab",12),l()}if(2&t){const e=C(2);f("ngClass",hi(29,ade,e.isEditMode||e.isPkEditMode||e.isFkEditMode)),m(5),f("dataSource",e.srcDataSource),m(15),f("ngIf",e.autoGenSupported),m(7),f("matHeaderRowDef",No(31,sde)),m(),f("matHeaderRowDef",e.srcDisplayedColumns),m(),f("matRowDefColumns",e.srcDisplayedColumns),m(),f("dataSource",e.spDataSource),m(9),f("ngIf",e.autoGenSupported),m(13),f("matHeaderRowDef",No(32,VN)),m(),f("matHeaderRowDef",e.spDisplayedColumns),m(),f("matRowDefColumns",e.spDisplayedColumns),m(),f("ngIf",e.isEditMode&&0!=e.droppedSourceColumns.length),m(4),f("dataSource",e.pkDataSource),m(20),f("ngIf",e.autoGenSupported),m(10),f("ngIf",e.autoGenSupported),m(10),f("matHeaderRowDef",No(33,Dw)),m(),f("matHeaderRowDef",e.displayedPkColumns),m(),f("matRowDefColumns",e.displayedPkColumns),m(),f("ngIf",e.isPkEditMode),m(4),f("dataSource",e.fkDataSource),m(17),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(13),f("ngIf",e.foreignKeyActionsSupported),m(),f("ngIf",e.foreignKeyActionsSupported),m(4),f("matHeaderRowDef",No(34,Dw)),m(),f("matHeaderRowDef",e.displayedFkColumns),m(),f("matRowDefColumns",e.displayedFkColumns),m(),f("ngIf",(e.interleaveStatus.tableInterleaveStatus&&e.interleaveStatus.tableInterleaveStatus.Possible||null!==e.interleaveParentName)&&e.currentObject.isSpannerNode),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted)}}function lde(t,n){if(1&t&&(d(0,"th",161),h(1),l()),2&t){const e=C(3);m(),Pe(e.srcDbName)}}function dde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleIndexEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function ude(t,n){if(1&t&&(d(0,"th",162)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,dde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isIndexEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function hde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function mde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcColName").value," ")}}function pde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function fde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function gde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function _de(t,n){if(1&t&&(d(0,"td",84),y(1,fde,2,0,"p",12)(2,gde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("srcDesc").value),m(),f("ngIf",!1===e.get("srcDesc").value)}}function bde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function vde(t,n){if(1&t&&(d(0,"td",84),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.get("srcOrder").value," ")}}function yde(t,n){1&t&&(d(0,"th",83),h(1,"Column"),l())}function Cde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spColName").value)}}function wde(t,n){if(1&t&&(d(0,"td",84),y(1,Cde,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spColName").value)}}function xde(t,n){1&t&&(d(0,"th",83),h(1,"Sort By"),l())}function Dde(t,n){1&t&&(d(0,"p"),h(1,"Desc"),l())}function Sde(t,n){1&t&&(d(0,"p"),h(1,"Asc"),l())}function kde(t,n){if(1&t&&(d(0,"td",84),y(1,Dde,2,0,"p",12)(2,Sde,2,0,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spDesc").value),m(),f("ngIf",!1===e.get("spDesc").value)}}function Mde(t,n){1&t&&(d(0,"th",83),h(1,"Column Order"),l())}function Tde(t,n){if(1&t&&(d(0,"div"),D(1,"input",163),l()),2&t){const e=C().$implicit;m(),f("formControl",e.get("spOrder"))}}function Ide(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spOrder").value)}}function Ede(t,n){if(1&t&&(d(0,"td",84),y(1,Tde,2,1,"div",12)(2,Ide,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value),m(),f("ngIf",!i.isIndexEditMode)}}function Ode(t,n){1&t&&D(0,"th",83)}function Ade(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-icon",123),h(2,"more_vert"),l(),d(3,"mat-menu",124,125)(5,"button",126),A("click",function(){ie(e);const o=C().index;return ne(C(3).dropIndexKey(o))}),d(6,"span"),h(7,"Drop Index Key"),l()()()()}if(2&t){const e=Ft(4);m(),f("matMenuTriggerFor",e)}}function Pde(t,n){if(1&t&&(d(0,"td",120),y(1,Ade,8,1,"div",12),l()),2&t){const e=n.$implicit,i=C(3);f("ngClass",hi(2,Ig,i.isIndexEditMode)),m(),f("ngIf",i.isIndexEditMode&&e.get("spColName").value)}}function Rde(t,n){1&t&&D(0,"tr",88)}function Nde(t,n){1&t&&D(0,"tr",88)}function Fde(t,n){1&t&&D(0,"tr",164)}function Lde(t,n){if(1&t&&(d(0,"mat-option",106),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Bde(t,n){if(1&t){const e=_e();d(0,"div",165)(1,"mat-form-field",166)(2,"mat-label"),h(3,"Column Name"),l(),d(4,"mat-select",167),y(5,Lde,2,2,"mat-option",103),l()(),d(6,"mat-form-field",168)(7,"mat-label"),h(8,"Sort By"),l(),d(9,"mat-select",169)(10,"mat-option",170),h(11,"Ascending"),l(),d(12,"mat-option",171),h(13,"Descending"),l()()(),d(14,"button",172),A("click",function(){return ie(e),ne(C(3).addIndexKey())}),d(15,"mat-icon"),h(16,"add"),l(),d(17,"span"),h(18," ADD COLUMN"),l()()()}if(2&t){const e=C(3);f("formGroup",e.addIndexKeyForm),m(5),f("ngForOf",e.indexColumnNames),m(9),f("disabled",!e.addIndexKeyForm.valid)}}function Vde(t,n){if(1&t&&(d(0,"div",150)(1,"table",34),me(2,35),y(3,lde,2,1,"th",151),pe(),me(4,49),y(5,ude,5,1,"th",152),pe(),me(6,153),y(7,hde,2,0,"th",38)(8,mde,2,1,"td",39),pe(),me(9,154),y(10,pde,2,0,"th",42)(11,_de,3,2,"td",39),pe(),me(12,155),y(13,bde,2,0,"th",38)(14,vde,2,1,"td",39),pe(),me(15,156),y(16,yde,2,0,"th",42)(17,wde,2,1,"td",39),pe(),me(18,157),y(19,xde,2,0,"th",42)(20,kde,3,2,"td",39),pe(),me(21,158),y(22,Mde,2,0,"th",38)(23,Ede,3,2,"td",39),pe(),me(24,57),y(25,Ode,1,0,"th",42)(26,Pde,2,4,"td",58),pe(),y(27,Rde,1,0,"tr",47)(28,Nde,1,0,"tr",47)(29,Fde,1,0,"tr",159),l(),y(30,Bde,19,3,"div",160),l()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(26),f("matHeaderRowDef",No(5,Dw)),m(),f("matHeaderRowDef",e.indexDisplayedColumns),m(),f("matRowDefColumns",e.indexDisplayedColumns),m(),f("ngIf",e.isIndexEditMode&&e.indexColumnNames.length>0)}}function jde(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",93),A("click",function(){return ie(e),ne(C(4).toggleSequenceEdit())}),d(2,"mat-icon",94),h(3,"edit"),l(),h(4," EDIT "),l()()}}function zde(t,n){if(1&t&&(d(0,"th",132)(1,"div",91)(2,"span"),h(3,"Spanner"),l(),y(4,jde,5,0,"div",12),l()()),2&t){const e=C(3);m(4),f("ngIf",!e.isSequenceEditMode&&!e.currentObject.isDeleted&&e.currentObject.isSpannerNode)}}function Hde(t,n){1&t&&(d(0,"th",83),h(1,"Name"),l())}function Ude(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSeqName").value)}}function $de(t,n){if(1&t&&(d(0,"td",84),y(1,Ude,2,1,"p",12),l()),2&t){const e=n.$implicit;m(),f("ngIf",e.get("spSeqName").value)}}function Gde(t,n){1&t&&(d(0,"th",83),h(1,"Sequence Type"),l())}function qde(t,n){if(1&t&&(me(0),d(1,"mat-option",106),h(2),l(),pe()),2&t){const e=n.$implicit;m(),f("value",e),m(),xe(" ",e," ")}}function Wde(t,n){if(1&t&&(me(0),d(1,"mat-form-field",181)(2,"mat-select",182,183),y(4,qde,3,2,"ng-container",113),l()(),pe()),2&t){const e=C().$implicit,i=C(3);m(2),f("formControl",e.get("spSequenceKind")),m(2),f("ngForOf",i.sequenceKinds)}}function Kde(t,n){if(1&t&&(me(0),d(1,"p"),h(2),l(),pe()),2&t){const e=C().$implicit;m(2),Pe(e.get("spSequenceKind").value)}}function Zde(t,n){if(1&t&&(d(0,"td",84)(1,"div",180),y(2,Wde,5,2,"ng-container",12)(3,Kde,3,1,"ng-container",12),l()()),2&t){const e=n.$implicit,i=C(3);m(2),f("ngIf",i.isSequenceEditMode&&""!==e.get("spSequenceKind").value),m(),f("ngIf",!i.isSequenceEditMode)}}function Yde(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Min"),l())}function Qde(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMin"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMin"))&&i.hasError("pattern")))}}function Xde(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMin").value)}}function Jde(t,n){if(1&t&&(d(0,"td",84),y(1,Qde,2,2,"div",12)(2,Xde,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMin").value)}}function eue(t,n){1&t&&(d(0,"th",83),h(1,"Skip Range Max"),l())}function tue(t,n){if(1&t&&(d(0,"div"),D(1,"input",184),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spSkipRangeMax"))("matTooltipDisabled",!(null!=(i=e.get("spSkipRangeMax"))&&i.hasError("pattern")))}}function iue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spSkipRangeMax").value)}}function nue(t,n){if(1&t&&(d(0,"td",84),y(1,tue,2,2,"div",12)(2,iue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spSkipRangeMax").value)}}function oue(t,n){1&t&&(d(0,"th",83),h(1,"Start With Counter"),l())}function rue(t,n){if(1&t&&(d(0,"div"),D(1,"input",185),l()),2&t){const e=C().$implicit;let i;m(),f("formControl",e.get("spStartWithCounter"))("matTooltipDisabled",!(null!=(i=e.get("spStartWithCounter"))&&i.hasError("pattern")))}}function aue(t,n){if(1&t&&(d(0,"p"),h(1),l()),2&t){const e=C().$implicit;m(),Pe(e.get("spStartWithCounter").value)}}function sue(t,n){if(1&t&&(d(0,"td",84),y(1,rue,2,2,"div",12)(2,aue,2,1,"p",12),l()),2&t){const e=n.$implicit,i=C(3);m(),f("ngIf",i.isSequenceEditMode),m(),f("ngIf",!i.isSequenceEditMode&&e.get("spStartWithCounter").value)}}function cue(t,n){1&t&&D(0,"tr",88)}function lue(t,n){1&t&&D(0,"tr",88)}function due(t,n){1&t&&D(0,"tr",186)}function uue(t,n){if(1&t&&(d(0,"div",173)(1,"table",34),me(2,49),y(3,zde,5,1,"th",62),pe(),me(4,174),y(5,Hde,2,0,"th",42)(6,$de,2,1,"td",39),pe(),me(7,175),y(8,Gde,2,0,"th",42)(9,Zde,4,2,"td",39),pe(),me(10,176),y(11,Yde,2,0,"th",42)(12,Jde,3,2,"td",39),pe(),me(13,177),y(14,eue,2,0,"th",42)(15,nue,3,2,"td",39),pe(),me(16,178),y(17,oue,2,0,"th",42)(18,sue,3,2,"td",39),pe(),y(19,cue,1,0,"tr",47)(20,lue,1,0,"tr",47)(21,due,1,0,"tr",179),l()()),2&t){const e=C(2);m(),f("dataSource",e.spDataSource),m(18),f("matHeaderRowDef",No(4,VN)),m(),f("matHeaderRowDef",e.sequenceDisplayedColumns),m(),f("matRowDefColumns",e.sequenceDisplayedColumns)}}function hue(t,n){1&t&&D(0,"mat-divider")}function mue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleEdit())}),h(1," CANCEL "),l()}}function pue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveColumnTable())}),h(2," SAVE & CONVERT "),l(),y(3,mue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function fue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).togglePkEdit())}),h(1," CANCEL "),l()}}function gue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).savePk())}),h(2," SAVE & CONVERT "),l(),y(3,fue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.pkArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function _ue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleFkEdit())}),h(1," CANCEL "),l()}}function bue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveFk())}),h(2,"SAVE & CONVERT"),l(),y(3,_ue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function vue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleIndexEdit())}),h(1," CANCEL "),l()}}function yue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",147),A("click",function(){return ie(e),ne(C(2).saveIndex())}),h(2,"SAVE & CONVERT"),l(),y(3,vue,2,0,"button",189),l()}if(2&t){const e=C(2);m(3),f("ngIf",e.currentObject.isSpannerNode)}}function Cue(t,n){if(1&t){const e=_e();d(0,"button",190),A("click",function(){return ie(e),ne(C(3).toggleSequenceEdit())}),h(1," CANCEL "),l()}}function wue(t,n){if(1&t){const e=_e();d(0,"div",187)(1,"button",188),A("click",function(){return ie(e),ne(C(2).saveSequence())}),h(2," SAVE & CONVERT "),l(),y(3,Cue,2,0,"button",189),l()}if(2&t){const e=C(2);m(),f("disabled",!e.spRowArray.valid),m(2),f("ngIf",e.currentObject.isSpannerNode)}}function xue(t,n){if(1&t){const e=_e();d(0,"div",13)(1,"div",3)(2,"span")(3,"h3",4),y(4,Zae,2,0,"mat-icon",14)(5,Yae,2,0,"svg",15),d(6,"span",16),h(7),l(),y(8,Qae,3,3,"span",12)(9,Xae,5,0,"button",17)(10,Jae,5,0,"button",17)(11,ese,5,0,"button",17)(12,tse,5,0,"button",17)(13,ise,5,0,"button",17),l(),y(14,nse,4,1,"div",18),l(),d(15,"button",5),A("click",function(){return ie(e),ne(C().middleColumnToggle())}),d(16,"mat-icon",6),h(17,"first_page"),l(),d(18,"mat-icon",6),h(19,"last_page"),l()()(),y(20,cde,147,35,"mat-tab-group",19)(21,Vde,31,6,"div",20)(22,uue,22,5,"div",21),d(23,"div",22),y(24,hue,1,0,"mat-divider",12)(25,pue,4,2,"div",23)(26,gue,4,2,"div",23)(27,bue,4,1,"div",23)(28,yue,4,1,"div",23)(29,wue,4,2,"div",23),l()()}if(2&t){const e=C();m(4),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.currentObject.type===e.ObjectExplorerNodeType.Index||e.currentObject.type===e.ObjectExplorerNodeType.Sequence),m(2),Pe(" "+e.currentObject.name+" "),m(),f("ngIf",""!=e.currentObject.parent),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"indexName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&!e.currentObject.isDeleted&&"sequenceName"===e.currentObject.type),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Index),m(),f("ngIf",e.currentObject.isSpannerNode&&"indexName"!==e.currentObject.type&&"sequenceName"!==e.currentObject.type&&!e.currentObject.isDeleted),m(),f("ngIf",e.currentObject.isSpannerNode&&e.currentObject.isDeleted&&e.currentObject.type==e.ObjectExplorerNodeType.Table),m(),f("ngIf",e.interleaveParentName&&e.currentObject.isSpannerNode),m(2),f("ngClass",hi(21,Tg,e.isMiddleColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(23,Tg,e.isMiddleColumnCollapse?"hidden":"display")),m(2),f("ngIf","tableName"===e.currentObject.type),m(),f("ngIf","indexName"===e.currentObject.type),m(),f("ngIf","sequenceName"===e.currentObject.type&&e.autoGenSupported),m(2),f("ngIf",e.isEditMode||e.isPkEditMode||e.isFkEditMode),m(),f("ngIf",e.isEditMode&&0===e.currentTabIndex),m(),f("ngIf",e.isPkEditMode&&1===e.currentTabIndex),m(),f("ngIf",e.isFkEditMode&&2===e.currentTabIndex),m(),f("ngIf",e.isIndexEditMode&&-1===e.currentTabIndex),m(),f("ngIf",e.isSequenceEditMode&&-1===e.currentTabIndex)}}let Due=(()=>{class t{constructor(e,i,o,r,a,s,c,u){this.data=e,this.dialog=i,this.snackbar=o,this.conversion=r,this.sidenav=a,this.tableUpdatePubSub=s,this.fb=c,this.fetchSerice=u,this.currentObject=null,this.typeMap={},this.defaultTypeMap={},this.autoGenMap={},this.ddlStmts={},this.fkData=[],this.tableData=[],this.currentDatabase="spanner",this.indexData=[],this.sequenceData={},this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.updateSidebar=new Ne,this.ObjectExplorerNodeType=jt,this.conv={},this.interleaveParentName=null,this.localTableData=[],this.localIndexData=[],this.localSequenceData={},this.isMiddleColumnCollapse=!1,this.isPostgreSQLDialect=!1,this.processedAutoGenMap={},this.sequenceKinds=[],this.autoGenSupported=!1,this.foreignKeyActionsSupported=!1,this.srcDisplayedColumns=["srcOrder","srcColName","srcDataType","srcColMaxLength","srcIsPk","srcIsNotNull"],this.spDisplayedColumns=["spColName","spDataType","spColMaxLength","spIsPk","spIsNotNull","dropButton"],this.displayedFkColumns=["srcName","srcColumns","srcReferTable","srcReferColumns","spName","spColumns","spReferTable","spReferColumns","dropButton"],this.displayedPkColumns=["srcOrder","srcColName","srcDataType","srcIsPk","srcIsNotNull","spOrder","spColName","spDataType","spIsPk","spIsNotNull","dropButton"],this.indexDisplayedColumns=["srcIndexColName","srcSortBy","srcIndexOrder","spIndexColName","spSortBy","spIndexOrder","dropButton"],this.sequenceDisplayedColumns=["spSeqName","spSequenceKind","spSkipRangeMin","spSkipRangeMax","spStartWithCounter"],this.spDataSource=[],this.srcDataSource=[],this.fkDataSource=[],this.pkDataSource=[],this.pkData=[],this.isPkEditMode=!1,this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isObjectSelected=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.pkArray=this.fb.array([]),this.fkArray=this.fb.array([]),this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.currentTabIndex=0,this.addedColumnName="",this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.indexColumnNames=[],this.shardIdCol="",this.addColumnForm=new ti({columnName:new U("",[ee.required])}),this.addIndexKeyForm=new ti({columnName:new U("",[ee.required]),ascOrDesc:new U("",[ee.required])}),this.addedPkColumnName="",this.addPkColumnForm=new ti({columnName:new U("",[ee.required])}),this.pkObj={},this.dataTypesWithColLen=In.DataTypes,this.spColspan=6,this.srcColspan=6}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),this.autoGenSupported=kN.includes(this.srcDbName),(this.srcDbName==ir.MySQL||this.srcDbName==ir.Postgres)&&(this.foreignKeyActionsSupported=!0)}ngOnChanges(e){this.fkData=e.fkData?.currentValue||this.fkData,this.currentObject=e.currentObject?.currentValue||this.currentObject,this.tableData=e.tableData?.currentValue||this.tableData,this.indexData=e.indexData?.currentValue||this.indexData,this.sequenceData=e.sequenceData?.currentValue||this.sequenceData,this.currentDatabase=e.currentDatabase?.currentValue||this.currentDatabase,this.currentTabIndex=this.currentObject?.type===jt.Index||this.currentObject?.type===jt.Sequence?-1:0,this.isObjectSelected=!!this.currentObject,this.pkData=this.conversion.getPkMapping(this.tableData),this.interleaveParentName=this.getInterleaveParentFromConv(),this.isEditMode=!1,this.isFkEditMode=!1,this.isIndexEditMode=!1,this.isSequenceEditMode=!1,this.isPkEditMode=!1,this.srcRowArray=this.fb.array([]),this.spRowArray=this.fb.array([]),this.droppedColumns=[],this.droppedSourceColumns=[],this.pkColumnNames=[],this.interleaveParentName=this.getInterleaveParentFromConv(),this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.localIndexData=JSON.parse(JSON.stringify(this.indexData)),this.localSequenceData=JSON.parse(JSON.stringify(this.sequenceData)),this.srcDbName==ir.MySQL&&!this.spDisplayedColumns.includes("spAutoGen")&&(this.spDisplayedColumns.splice(2,0,"spAutoGen"),this.displayedPkColumns.splice(8,0,"spAutoGen"),this.srcDisplayedColumns.splice(2,0,"srcAutoGen"),this.displayedPkColumns.splice(2,0,"srcAutoGen"),this.spColspan++,this.srcColspan++),this.foreignKeyActionsSupported&&!this.displayedFkColumns.includes("srcOnDelete")&&(this.displayedFkColumns.splice(4,0,"srcOnDelete","srcOnUpdate"),this.displayedFkColumns.splice(10,0,"spOnDelete","spOnUpdate")),this.currentObject?.type===jt.Table?(this.checkIsInterleave(),this.interleaveObj=this.data.tableInterleaveStatus.subscribe(i=>{this.interleaveStatus=i}),this.setSrcTableRows(),this.setSpTableRows(),this.setColumnsToAdd(),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.setFkRows(),this.updateSpTableSuggestion(),this.setShardIdColumn(),this.processedAutoGenMap=IN(this.autoGenMap)):this.currentObject?.type===jt.Index?(this.indexOrderValidation(),this.setIndexRows()):this.currentObject?.type===jt.Sequence&&(this.setSequence(),this.fetchSerice.getSequenceKind().subscribe(i=>{this.sequenceKinds=i})),this.data.getSummary()}setSpTableRows(){this.spRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(e.spOrder){let i=new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength,[ee.required]),spAutoGen:new U(e.spAutoGen)});this.dataTypesWithColLen.indexOf(e.spDataType.toString())>-1?(i.get("spColMaxLength")?.setValidators([ee.required,ee.pattern("([1-9][0-9]*|MAX)")]),(void 0===e.spColMaxLength||"MAX"!==e.spColMaxLength&&(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&"number"==typeof e.spColMaxLength&&e.spColMaxLength>In.ByteMaxLength))&&i.get("spColMaxLength")?.setValue("MAX")):i.controls.spColMaxLength.clearValidators(),i.controls.spColMaxLength.updateValueAndValidity(),this.spRowArray.push(i)}}),this.spDataSource=this.spRowArray.controls}setSrcTableRows(){this.srcRowArray=this.fb.array([]),this.localTableData.forEach(e=>{if(""!=e.spColName)this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.spOrder),spColName:new U(e.spColName),spDataType:new U(e.spDataType),spIsPk:new U(e.spIsPk),spIsNotNull:new U(e.spIsNotNull),spId:new U(e.spId),srcId:new U(e.srcId),spColMaxLength:new U(e.spColMaxLength),spAutoGen:new U(e.spAutoGen)}));else{let i="",o=e.srcColMaxLength;void 0===this.defaultTypeMap[e.srcDataType]?(i="STRING",o="MAX"):i=this.defaultTypeMap[e.srcDataType].Name,""==o&&("STRING"==i||"BYTES"==i)&&(o="MAX"),this.srcRowArray.push(new ti({srcOrder:new U(e.srcOrder),srcColName:new U(e.srcColName),srcDataType:new U(e.srcDataType),srcIsPk:new U(e.srcIsPk),srcIsNotNull:new U(e.srcIsNotNull),srcColMaxLength:new U(e.srcColMaxLength),srcAutoGen:new U(e.srcAutoGen),spOrder:new U(e.srcOrder),spColName:new U(e.srcColName),spDataType:new U(i),spIsPk:new U(e.srcIsPk),spIsNotNull:new U(e.srcIsNotNull),spColMaxLength:new U(o),spAutoGen:new U(e.spAutoGen)}))}}),this.srcDataSource=this.srcRowArray.controls}setColumnsToAdd(){this.localTableData.forEach(e=>{e.spColName||this.srcRowArray.value.forEach(i=>{e.srcColName==i.srcColName&&""!=i.srcColName&&(this.droppedColumns.push(i),this.droppedSourceColumns.push(i.srcColName))})})}toggleEdit(){this.currentTabIndex=0,this.isEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.setSpTableRows(),this.isEditMode=!1):this.isEditMode=!0}saveColumnTable(){this.isEditMode=!1;let i,e={UpdateCols:{}};this.conversion.pgSQLToStandardTypeTypeMap.subscribe(o=>{i=o}),this.spRowArray.value.forEach((o,r)=>{for(let a=0;aIn.StringMaxLength||"BYTES"===o.spDataType&&"number"==typeof o.spColMaxLength&&o.spColMaxLength>In.ByteMaxLength)&&(o.spColMaxLength="MAX"),"number"==typeof o.spColMaxLength&&(o.spColMaxLength=o.spColMaxLength.toString()),"STRING"!=o.spDataType&&"BYTES"!=o.spDataType&&"VARCHAR"!=o.spDataType&&(o.spColMaxLength=""),o.srcId==this.tableData[a].srcId&&""!=this.tableData[a].srcId){e.UpdateCols[this.tableData[a].srcId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen};break}o.spId==this.tableData[a].spId&&(e.UpdateCols[this.tableData[a].spId]={Add:""==this.tableData[a].spId,Rename:s.spColName!==o.spColName?o.spColName:"",NotNull:o.spIsNotNull?"ADDED":"REMOVED",Removed:!1,ToType:"postgresql"===this.conv.SpDialect?void 0===c?o.spDataType:c:o.spDataType,MaxColLength:o.spColMaxLength,AutoGen:o.spAutoGen})}}),this.droppedColumns.forEach(o=>{e.UpdateCols[o.spId]={Add:!1,Rename:"",NotNull:"",Removed:!0,ToType:"",MaxColLength:"",AutoGen:{Name:"",GenerationType:""}}}),this.data.reviewTableUpdate(this.currentObject.id,e).subscribe({next:o=>{""==o?(this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("reviewChanges"),this.tableUpdatePubSub.setTableUpdateDetail({tableName:this.currentObject.name,tableId:this.currentObject.id,updateDetail:e}),this.isEditMode=!0):(this.dialog.open(Uo,{data:{message:o,type:"error"},maxWidth:"500px"}),this.isEditMode=!0)}})}addNewColumn(){this.dialog.open(Gae,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{dialect:this.conv.SpDialect,tableId:this.currentObject?.id}})}addNewSequence(){this.dialog.open(FN,MN),this.updateSidebar.emit(!0)}setColumn(e){this.addedColumnName=e}restoreColumn(){let e=this.tableData.map(r=>r.srcColName).indexOf(this.addedColumnName),i=this.droppedColumns.map(r=>r.srcColName).indexOf(this.addedColumnName);this.localTableData[e].spColName=this.droppedColumns[i].spColName,this.localTableData[e].spDataType=this.droppedColumns[i].spDataType,this.localTableData[e].spOrder=-1,this.localTableData[e].spIsPk=this.droppedColumns[i].spIsPk,this.localTableData[e].spIsNotNull=this.droppedColumns[i].spIsNotNull,this.localTableData[e].spColMaxLength=this.droppedColumns[i].spColMaxLength,this.localTableData[e].spAutoGen=this.droppedColumns[i].spAutoGen;let o=this.droppedColumns.map(r=>r.spColName).indexOf(this.addedColumnName);o>-1&&(this.droppedColumns.splice(o,1),this.droppedSourceColumns.indexOf(this.addedColumnName)>-1&&this.droppedSourceColumns.splice(this.droppedSourceColumns.indexOf(this.addedColumnName),1)),this.setSpTableRows()}dropColumn(e){let i=e.get("srcColName").value,o=e.get("srcId").value,r=e.get("spId").value,a=""!=o?o:r,s=e.get("spColName").value,c=this.getAssociatedIndexs(a);if(this.checkIfPkColumn(a)||0!=c.length){let u="",p="",g="";this.checkIfPkColumn(a)&&(u=" Primary key"),0!=c.length&&(p=` Index ${c}`),""!=u&&""!=p&&(g=" and"),this.dialog.open(Uo,{data:{message:`Column ${s} is a part of${u}${g}${p}. Remove the dependencies from respective tabs before dropping the Column. `,type:"error"},maxWidth:"500px"})}else this.spRowArray.value.forEach((u,p)=>{u.spId===r&&this.droppedColumns.push(u)}),this.dropColumnFromUI(r),""!==i&&this.droppedSourceColumns.push(i)}checkIfPkColumn(e){let i=!1;return null!=this.conv.SpSchema[this.currentObject.id].PrimaryKeys&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(o=>o.ColId).includes(e)&&(i=!0),i}setShardIdColumn(){void 0!==this.conv.SpSchema[this.currentObject.id]&&(this.shardIdCol=this.conv.SpSchema[this.currentObject.id].ShardIdColumn)}getAssociatedIndexs(e){let i=[];return null!=this.conv.SpSchema[this.currentObject.id].Indexes&&this.conv.SpSchema[this.currentObject.id].Indexes.forEach(o=>{o.Keys.map(r=>r.ColId).includes(e)&&i.push(o.Name)}),i}dropColumnFromUI(e){this.localTableData.forEach((i,o)=>{i.spId==e&&(i.spColName="",i.spDataType="",i.spIsNotNull=!1,i.spIsPk=!1,i.spOrder="",i.spColMaxLength="",i.spAutoGen={Name:"",GenerationType:""})}),this.setSpTableRows()}updateSpTableSuggestion(){this.isSpTableSuggesstionDisplay=[],this.spTableSuggestion=[],this.localTableData.forEach(e=>{const i=e.srcDataType,o=e.spDataType;let r="";this.typeMap[i]?.forEach(a=>{o==a.DiplayT&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay.push(""!==r),this.spTableSuggestion.push(r)})}spTableEditSuggestionHandler(e,i){let r="";this.typeMap[this.localTableData[e].srcDataType].forEach(a=>{i==a.T&&(r=a.Brief)}),this.isSpTableSuggesstionDisplay[e]=""!==r,this.spTableSuggestion[e]=r}compareAutoGen(e,i){return e&&i?e.Name===i.Name&&e.GenerationType===i.GenerationType:e===i}setPkRows(){this.pkArray=this.fb.array([]),this.pkOrderValidation();var e=new Array,i=new Array;this.pkData.forEach(o=>{o.srcIsPk&&e.push({srcColName:o.srcColName,srcDataType:o.srcDataType,srcIsNotNull:o.srcIsNotNull,srcIsPk:o.srcIsPk,srcOrder:o.srcOrder,srcId:o.srcId,srcAutoGen:o.srcAutoGen}),o.spIsPk&&i.push({spColName:o.spColName,spDataType:o.spDataType,spIsNotNull:o.spIsNotNull,spIsPk:o.spIsPk,spOrder:o.spOrder,spId:o.spId,spAutoGen:o.spAutoGen})}),i.sort((o,r)=>o.spOrder-r.spOrder);for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);or.spColName).indexOf(this.addedPkColumnName),i=this.localTableData[e],o=1;this.localTableData[e].spIsPk=!0,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),e=this.pkData.findIndex(r=>r.srcId===i.srcId||r.spId==i.spId),this.pkArray.value.forEach(r=>{r.spIsPk&&(o+=1);for(let a=0;a{i.spIsPk&&e.push(i.spColName)});for(let i=0;i{if(this.pkData[i].spId===this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].ColId)this.pkData[i].spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[i].Order;else{let o=this.conv.SpSchema[this.currentObject.id].PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);e.spOrder=this.conv.SpSchema[this.currentObject.id].PrimaryKeys[o]?.Order}}:(e,i)=>{let o=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys.map(r=>r.ColId).indexOf(e.spId);-1!==o&&(e.spOrder=this.conv.SpSchema[this.currentObject.id]?.PrimaryKeys[o].Order)})}pkOrderValidation(){let e=this.pkData.filter(i=>i.spIsPk).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.pkData.forEach(r=>{r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{"number"==typeof o.spOrder&&o.spOrder{o.spIsPk&&i.push({ColId:o.spId,Desc:typeof this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId)<"u"&&this.conv.SpSchema[this.currentObject.id].PrimaryKeys.find(({ColId:r})=>r===o.spId).Desc,Order:parseInt(o.spOrder)})}),this.pkObj.TableId=e,this.pkObj.Columns=i}togglePkEdit(){this.currentTabIndex=1,this.isPkEditMode?(this.localTableData=JSON.parse(JSON.stringify(this.tableData)),this.pkData=this.conversion.getPkMapping(this.tableData),this.setAddPkColumnList(),this.setPkOrder(),this.setPkRows(),this.isPkEditMode=!1):this.isPkEditMode=!0}savePk(){if(this.pkArray.value.forEach(e=>{for(let i=0;i{o&&this.data.removeInterleave(""!=this.conv.SpSchema[this.currentObject.id].ParentTable.Id?this.currentObject.id:this.conv.SpSchema[e].Id).pipe(Pt(1)).subscribe(a=>{this.updatePk()})}):this.updatePk()}}updatePk(){this.isPkEditMode=!1,this.data.updatePk(this.pkObj).subscribe({next:e=>{""==e?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:e,type:"error"},maxWidth:"500px"}),this.isPkEditMode=!0)}})}dropPk(e){let i=this.localTableData.map(a=>a.spColName).indexOf(e.value.spColName);this.localTableData[i].spId==(this.conv.SyntheticPKeys[this.currentObject.id]?this.conv.SyntheticPKeys[this.currentObject.id].ColId:"")?this.dialog.open(Uo,{data:{message:"Removing this synthetic id column from primary key will drop the column from the table",title:"Confirm removal of synthetic id",type:"warning"},maxWidth:"500px"}).afterClosed().subscribe(s=>{s&&this.dropPkHelper(i,e.value.spOrder)}):this.dropPkHelper(i,e.value.spOrder)}dropPkHelper(e,i){this.localTableData[e].spIsPk=!1,this.pkData=[],this.pkData=this.conversion.getPkMapping(this.localTableData),this.pkArray.value.forEach(o=>{for(let r=0;r{"number"==typeof o.spOrder&&o.spOrder>i&&(o.spOrder=Number(o.spOrder)-1)}),this.setAddPkColumnList(),this.setPkRows()}setFkRows(){this.fkArray=this.fb.array([]);var e=new Array,i=new Array;this.fkData.forEach(o=>{e.push({srcName:o.srcName,srcColumns:o.srcColumns,srcRefTable:o.srcReferTable,srcRefColumns:o.srcReferColumns,srcOnDelete:o.srcOnDelete,srcOnUpdate:o.srcOnUpdate,Id:o.srcFkId}),""!=o.spName&&i.push({spName:o.spName,spColumns:o.spColumns,spRefTable:o.spReferTable,spRefColumns:o.spReferColumns,spOnDelete:o.spOnDelete,spOnUpdate:o.spOnUpdate,Id:o.spFkId,spColIds:o.spColIds,spReferColumnIds:o.spReferColumnIds,spReferTableId:o.spReferTableId})});for(let o=0;oMath.min(e.length,i.length))for(let o=Math.min(e.length,i.length);o{e.push({Name:i.spName,ColIds:i.spColIds,ReferTableId:i.spReferTableId,ReferColumnIds:i.spReferColumnIds,OnDelete:i.spOnDelete,OnUpdate:i.spOnUpdate,Id:i.spFkId})}),this.data.updateFkNames(this.currentObject.id,e).subscribe({next:i=>{""==i?this.isFkEditMode=!1:this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"})}})}dropFk(e){this.fkData.forEach(i=>{i.spName==e.get("spName").value&&(i.spName="",i.spColumns=[],i.spReferTable="",i.spReferColumns=[],i.spColIds=[],i.spReferColumnIds=[],i.spReferTableId="",i.spOnDelete="",i.spOnUpdate="")}),this.setFkRows()}getRemovedFkIndex(e){let i=-1;return this.fkArray.value.forEach((o,r)=>{o.spName===e.get("spName").value&&(i=r)}),i}removeInterleave(){this.data.removeInterleave(this.currentObject.id).pipe(Pt(1)).subscribe(i=>{""===i&&this.snackbar.openSnackBar("Interleave removed and foreign key restored successfully","Close",5)})}checkIsInterleave(){this.currentObject&&!this.currentObject?.isDeleted&&this.currentObject?.isSpannerNode&&this.data.getInterleaveConversionForATable(this.currentObject.id)}setInterleave(){this.data.setInterleave(this.currentObject.id)}getInterleaveParentFromConv(){return this.currentObject?.type===jt.Table&&this.currentObject.isSpannerNode&&!this.currentObject.isDeleted&&""!=this.conv.SpSchema[this.currentObject.id].ParentTable.Id?this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentTable.Id]?.Name:null}setIndexRows(){this.spRowArray=this.fb.array([]);const e=this.localIndexData.map(i=>i.spColName?i.spColName:"").filter(i=>""!=i);this.indexColumnNames=this.conv.SpSchema[this.currentObject.parentId]?.ColIds?.filter(i=>!e.includes(this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name)).map(i=>this.conv.SpSchema[this.currentObject.parentId]?.ColDefs[i]?.Name),this.localIndexData.forEach(i=>{this.spRowArray.push(new ti({srcOrder:new U(i.srcOrder),srcColName:new U(i.srcColName),srcDesc:new U(i.srcDesc),spOrder:new U(i.spOrder),spColName:new U(i.spColName,[ee.required,ee.pattern("^[a-zA-Z]([a-zA-Z0-9/_]*[a-zA-Z0-9])?")]),spDesc:new U(i.spDesc)}))}),this.spDataSource=this.spRowArray.controls}setIndexOrder(){this.spRowArray.value.forEach(e=>{for(let i=0;i""!=i.spColName).map(i=>Number(i.spOrder));if(e.sort((i,o)=>i-o),e[e.length-1]>e.length&&e.forEach((i,o)=>{this.localIndexData.forEach(r=>{""!=r.spColName&&r.spOrder==i&&(r.spOrder=o+1)})}),0==e[0]&&e[e.length-1]<=e.length){let i;for(let o=0;o{o.spOrder!!i.spColId).map(i=>({ColId:i.spColId,Desc:i.spDesc,Order:i.spOrder})),Id:this.currentObject.id}),0==e[0].Keys.length?this.dropIndex():(this.data.updateIndex(this.currentObject?.parentId,e).subscribe({next:i=>{""==i?this.isEditMode=!1:(this.dialog.open(Uo,{data:{message:i,type:"error"},maxWidth:"500px"}),this.isIndexEditMode=!0)}}),this.addIndexKeyForm.controls.columnName.setValue(""),this.addIndexKeyForm.controls.ascOrDesc.setValue(""),this.addIndexKeyForm.markAsUntouched(),this.data.getSummary(),this.isIndexEditMode=!1)}saveSequence(){this.spRowArray.value.forEach(e=>{this.data.updateSequence({Name:e.spSeqName?e.spSeqName:"",Id:this.currentObject.id,SequenceKind:e.spSequenceKind?e.spSequenceKind:"",SkipRangeMax:e.spSkipRangeMax?e.spSkipRangeMax:"",SkipRangeMin:e.spSkipRangeMin?e.spSkipRangeMin:"",StartWithCounter:e.spStartWithCounter?e.spStartWithCounter:""}).pipe(Pt(1)).subscribe(()=>{})}),this.isSequenceEditMode=!1}dropIndex(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Index}}).afterClosed().subscribe(i=>{i===ys.Index&&(this.data.dropIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}dropSequence(){let e=Jne;e.data={name:this.currentObject?.name,type:ys.Sequence},this.dialog.open(xw,e).afterClosed().subscribe(o=>{o===ys.Sequence&&(this.data.dropSequence(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.updateSidebar.emit(!0))}),this.currentObject=null)})}restoreIndex(){this.data.restoreIndex(this.currentObject.parentId,this.currentObject.id).pipe(Pt(1)).subscribe(o=>{""===o&&(this.isObjectSelected=!1)}),this.currentObject=null}dropIndexKey(e){this.localIndexData[e].srcColName?(this.localIndexData[e].spColName="",this.localIndexData[e].spColId="",this.localIndexData[e].spDesc="",this.localIndexData[e].spOrder=""):this.localIndexData.splice(e,1),this.setIndexRows()}addIndexKey(){let e=0;this.localIndexData.forEach(i=>{i.spColName&&(e+=1)}),this.localIndexData.push({spColName:this.addIndexKeyForm.value.columnName,spDesc:"desc"===this.addIndexKeyForm.value.ascOrDesc,spOrder:e+1,srcColName:"",srcDesc:void 0,srcOrder:"",srcColId:void 0,spColId:this.currentObject?this.conversion.getColIdFromSpannerColName(this.addIndexKeyForm.value.columnName,this.currentObject.parentId,this.conv):""}),this.setIndexRows()}restoreSpannerTable(){this.data.restoreTable(this.currentObject.id).pipe(Pt(1)).subscribe(e=>{""===e&&(this.isObjectSelected=!1),this.data.getConversionRate(),this.data.getDdl()}),this.currentObject=null}dropTable(){this.dialog.open(xw,{width:"35vw",minWidth:"450px",maxWidth:"600px",data:{name:this.currentObject?.name,type:ys.Table}}).afterClosed().subscribe(i=>{i===ys.Table&&(this.data.dropTable(this.currentObject.id).pipe(Pt(1)).subscribe(r=>{""===r&&(this.isObjectSelected=!1,this.data.getConversionRate(),this.updateSidebar.emit(!0))}),this.currentObject=null)})}tabChanged(e){this.currentTabIndex=e.index}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse,this.sidenav.setMiddleColComponent(this.isMiddleColumnCollapse)}tableInterleaveWith(e){if(""!=this.conv.SpSchema[e].ParentTable.Id)return this.conv.SpSchema[e].ParentTable.Id;let i="";return Object.keys(this.conv.SpSchema).forEach(o=>{""!=this.conv.SpSchema[o].ParentTable.Id&&this.conv.SpSchema[o].ParentTable.Id==e&&(i=o)}),i}isPKPrefixModified(e,i){let o,r;this.conv.SpSchema[e].ParentTable.Id!=i?(o=this.pkObj.Columns,r=this.conv.SpSchema[i].PrimaryKeys):(r=this.pkObj.Columns,o=this.conv.SpSchema[i].PrimaryKeys);for(let a=0;a{class t{constructor(e,i){this.sidenavService=e,this.data=i,this.dataSource=[],this.currentDataSource=[],this.displayedColumns=["order","name","type","objectType","associatedObject","enabled","view"],this.currentObject=null,this.lengthOfRules=new Ne}ngOnInit(){this.dataSource=[],this.data.rule.subscribe({next:e=>{this.currentDataSource=e,this.updateRules()}})}ngOnChanges(){this.updateRules()}updateRules(){if(this.currentDataSource){let e=[],i=[];e=this.currentDataSource.filter(o=>"global_datatype_change"===o?.Type||"add_shard_id_primary_key"===o?.Type||"edit_column_max_length"===o?.Type&&"All table"===o?.AssociatedObjects),this.currentObject&&("tableName"===this.currentObject?.type||"indexName"===this.currentObject?.type)&&(i=this.currentDataSource.filter(o=>o?.AssociatedObjects===this.currentObject?.id||o?.AssociatedObjects===this.currentObject?.parentId||o?.AssociatedObjects===this.currentObject?.name||o?.AssociatedObjects===this.currentObject?.parent).map(o=>{let r="";return"tableName"===this.currentObject?.type?r=this.currentObject.name:"indexName"===this.currentObject?.type&&(r=this.currentObject.parent),o.AssociatedObjects=r,o})),this.dataSource=[...e,...i],this.lengthOfRules.emit(this.dataSource.length)}else this.dataSource=[],this.lengthOfRules.emit(0)}openSidenav(){this.sidenavService.openSidenav(),this.sidenavService.setSidenavComponent("rule"),this.sidenavService.setSidenavRuleType(""),this.sidenavService.setRuleData({}),this.sidenavService.setDisplayRuleFlag(!1)}viewSidenavRule(e){let i=[];for(let o=0;o[t],Kue=(t,n,e,i,o)=>({"middle-column-expand":t,"middle-column-collapse":n,"middle-column-full":e,display:i,hidden:o}),Zue=(t,n,e,i,o,r)=>({"right-column-half-expand":t,"right-column-full-expand":n,"right-column-collapse":e,"middle-column-hide":i,display:o,hidden:r}),jN=t=>({"blue-font-color":t});let Yue=(()=>{class t{constructor(e,i,o,r,a,s,c){this.data=e,this.conversion=i,this.dialog=o,this.sidenav=r,this.router=a,this.clickEvent=s,this.fetch=c,this.fkData=[],this.tableData=[],this.indexData=[],this.sequenceData={},this.typeMap=!1,this.defaultTypeMap=!1,this.conversionRates={},this.autoGenMap=!1,this.isLeftColumnCollapse=!1,this.isRightColumnCollapse=!0,this.isMiddleColumnCollapse=!0,this.isOfflineStatus=!1,this.spannerTree=[],this.srcTree=[],this.issuesAndSuggestionsLabel="ISSUES AND SUGGESTIONS",this.rulesLabel="RULES (0)",this.objectExplorerInitiallyRender=!1,this.srcDbName=localStorage.getItem(Wi.SourceDbName),this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0},this.currentDatabase="spanner",this.dialect="",this.currentObject=null}ngOnInit(){this.conversion.getStandardTypeToPGSQLTypemap(),this.conversion.getPGSQLToStandardTypeTypemap(),this.ddlsumconvObj=this.data.getRateTypemapAndSummary(),this.typemapObj=this.data.typeMap.subscribe(e=>{this.typeMap=e}),this.defaultTypemapObj=this.data.defaultTypeMap.subscribe(e=>{this.defaultTypeMap=e}),this.ddlObj=this.data.ddl.subscribe(e=>{this.ddlStmts=e}),this.sidenav.setMiddleColumnComponent.subscribe(e=>{this.isMiddleColumnCollapse=!e}),this.data.autoGenMap&&(this.autoGenMapObj=this.data.autoGenMap.subscribe(e=>{this.autoGenMap=e})),this.data.treeUpdate&&(this.rerenderObj=this.data.treeUpdate.subscribe(()=>{this.reRenderObjectExplorerSpanner()})),this.convObj=this.data.conv.subscribe(e=>{Object.keys(e.SrcSchema).length<=0&&this.router.navigate(["/"]);const i=this.isIndexAddedOrRemoved(e);e&&this.conv&&Object.keys(e?.SpSchema).length!=Object.keys(this.conv?.SpSchema).length&&(this.conv=e,this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc()),this.conv=e,this.conv.DatabaseType&&(this.srcDbName=ad(this.conv.DatabaseType)),i&&this.conversionRates&&this.reRenderObjectExplorerSpanner(),!this.objectExplorerInitiallyRender&&this.conversionRates&&(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0),this.currentObject&&this.currentObject.type===jt.Table&&(this.fkData=this.currentObject?this.conversion.getFkMapping(this.currentObject.id,e):[],this.tableData=this.currentObject?this.conversion.getColumnMapping(this.currentObject.id,e):[]),this.currentObject&&this.currentObject?.type===jt.Index&&!i&&(this.indexData=this.conversion.getIndexMapping(this.currentObject.parentId,this.conv,this.currentObject.id)),this.dialect="postgresql"===this.conv.SpDialect?"PostgreSQL":"Google Standard SQL"}),this.converObj=this.data.conversionRate.subscribe(e=>{this.conversionRates=e,this.updateConversionRatePercentages(),this.conv?(this.reRenderObjectExplorerSpanner(),this.reRenderObjectExplorerSrc(),this.objectExplorerInitiallyRender=!0):this.objectExplorerInitiallyRender=!1}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}})}ngOnDestroy(){this.typemapObj.unsubscribe(),this.convObj.unsubscribe(),this.ddlObj.unsubscribe(),this.ddlsumconvObj.unsubscribe(),this.autoGenMapObj&&this.autoGenMapObj.unsubscribe(),this.rerenderObj&&this.rerenderObj.unsubscribe()}updateConversionRatePercentages(){let e=Object.keys(this.conversionRates).length;this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentages={good:0,ok:0,bad:0};for(const i in this.conversionRates)"NONE"===this.conversionRates[i]||"EXCELLENT"===this.conversionRates[i]?this.conversionRateCount.good+=1:"GOOD"===this.conversionRates[i]||"OK"===this.conversionRates[i]?this.conversionRateCount.ok+=1:this.conversionRateCount.bad+=1;if(e>0)for(let i in this.conversionRatePercentages)this.conversionRatePercentages[i]=Number((this.conversionRateCount[i]/e*100).toFixed(2))}reRenderObjectExplorerSpanner(){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates)}reRenderObjectExplorerSrc(){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates)}changeCurrentObject(e){e.type===jt.Table?(this.currentObject=e,this.tableData=this.conversion.getColumnMapping(this.currentObject.id,this.conv),this.fkData=[],this.fkData=this.conversion.getFkMapping(this.currentObject.id,this.conv)):e.type===jt.Index?(this.currentObject=e,this.indexData=this.conversion.getIndexMapping(e.parentId,this.conv,e.id)):e.type===jt.Sequence?(this.currentObject=e,this.sequenceData=this.conversion.getSequenceMapping(e.id,this.conv)):this.currentObject=null}changeCurrentDatabase(e){this.currentDatabase=e}updateIssuesLabel(e){setTimeout(()=>{this.issuesAndSuggestionsLabel=`ISSUES AND SUGGESTIONS (${e})`})}updateRulesLabel(e){setTimeout(()=>{this.rulesLabel=`RULES (${e})`})}leftColumnToggle(){this.isLeftColumnCollapse=!this.isLeftColumnCollapse}middleColumnToggle(){this.isMiddleColumnCollapse=!this.isMiddleColumnCollapse}rightColumnToggle(){this.isRightColumnCollapse=!this.isRightColumnCollapse}openAssessment(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("assessment");let e="";if(localStorage.getItem(Wi.Type)==Jn.DirectConnect){let r=JSON.parse(localStorage.getItem(Wi.Config));e=r?.hostName+" : "+r?.port}else e=this.conv.DatabaseName;this.clickEvent.setViewAssesmentData({srcDbType:this.srcDbName,connectionDetail:e,conversionRates:this.conversionRateCount})}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}downloadArtifacts(){let e=new RN,i=`${this.conv.DatabaseName}`;this.fetch.getDStructuredReport().subscribe({next:o=>{let r=JSON.stringify(o).replace(/9223372036854776000/g,"9223372036854775807");e.file(i+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(i+"_migration_textReport.txt",s),this.fetch.getDSpannerDDL().subscribe({next:c=>{e.file(i+"_spannerDDL.txt",c);let u=JSON.stringify(this.conv).replace(/9223372036854776000/g,"9223372036854775807");e.file(`${this.conv.SessionName}_${this.conv.DatabaseType}_${i}.json`,u),e.generateAsync({type:"blob"}).then(g=>{var b=document.createElement("a");b.href=URL.createObjectURL(g),b.download=`${i}_artifacts`,b.click()})}})}})}})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),e.download=`${this.conv.DatabaseName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_migration_textReport.txt`,e.click()}})}downloadDDL(){var e=document.createElement("a");this.fetch.getDSpannerDDL().subscribe({next:i=>{e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${this.conv.DatabaseName}_spannerDDL.txt`,e.click()}})}updateSpannerTable(e){this.spannerTree=this.conversion.createTreeNode(this.conv,this.conversionRates,e.text,e.order)}updateSrcTable(e){this.srcTree=this.conversion.createTreeNodeForSource(this.conv,this.conversionRates,e.text,e.order)}isIndexAddedOrRemoved(e){if(this.conv){let i=0,o=0;return Object.entries(this.conv.SpSchema).forEach(r=>{i+=r[1].Indexes?r[1].Indexes.length:0}),Object.entries(e.SpSchema).forEach(r=>{o+=r[1].Indexes?r[1].Indexes.length:0}),i!==o}return!1}prepareMigration(){this.fetch.getTableWithErrors().subscribe({next:e=>{if(null!=e&&0!=e.length){let i="Please fix the errors for the following tables to move ahead: "+e.map(o=>o.Name).join(", ");this.dialog.open(Uo,{data:{message:i,type:"error",title:"Error in Spanner Draft"},maxWidth:"500px"})}else this.isOfflineStatus?this.dialog.open(Uo,{data:{message:"Please configure spanner project id and instance id to proceed",type:"error",title:"Configure Spanner"},maxWidth:"500px"}):0==Object.keys(this.conv.SpSchema).length?this.dialog.open(Uo,{data:{message:"Please restore some table(s) to proceed with the migration",type:"error",title:"All tables skipped"},maxWidth:"500px"}):this.router.navigate(["/prepare-migration"])}})}spannerTab(){this.clickEvent.setTabToSpanner()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(pc),_(Hr),_(eo),_(Rn),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-workspace"]],decls:57,vars:61,consts:[[1,"header"],[1,"breadcrumb","vertical-center"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],[1,"header_action"],["matTooltip","Connect to a spanner instance to run migration",3,"matTooltipDisabled"],["mat-button","",3,"click"],["mat-button","",3,"click",4,"ngIf"],[1,"artifactsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],[1,"container"],[1,"summary"],[1,"spanner-tab-link",3,"click"],[1,"columns"],[1,"column-left",3,"ngClass"],[3,"spannerTree","srcTree","srcDbName","selectedDatabase","selectObject","updateSpannerTable","updateSrcTable","leftCollaspe","middleCollapse"],[1,"column-middle",3,"ngClass"],[3,"currentObject","tableData","indexData","sequenceData","typeMap","autoGenMap","ddlStmts","fkData","currentDatabase","defaultTypeMap","updateSidebar"],[1,"column-right",3,"ngClass"],[3,"ngClass","label"],[3,"currentObject","changeIssuesLabel"],[3,"currentObject","lengthOfRules"],["id","right-column-toggle-button",3,"click"],[3,"ngClass"]],template:function(i,o){if(1&i&&(d(0,"div")(1,"div",0)(2,"div",1)(3,"a",2),h(4,"Select Source"),l(),d(5,"span"),h(6,">"),l(),d(7,"a",3)(8,"b"),h(9),l()()(),d(10,"div",4)(11,"span",5)(12,"button",6),A("click",function(){return o.prepareMigration()}),h(13," PREPARE MIGRATION "),l()(),d(14,"button",6),A("click",function(){return o.openAssessment()}),h(15,"VIEW ASSESSMENT"),l(),y(16,Wue,2,0,"button",7),d(17,"span",8)(18,"button",9),A("click",function(){return o.downloadArtifacts()}),h(19," DOWNLOAD ARTIFACTS "),l(),d(20,"button",10)(21,"mat-icon",11),h(22,"expand_more"),l()(),d(23,"mat-menu",12,13)(25,"button",14),A("click",function(){return o.downloadTextReport()}),h(26,"Download Text Report"),l(),d(27,"button",14),A("click",function(){return o.downloadStructuredReport()}),h(28,"Download Structured Report"),l(),d(29,"button",14),A("click",function(){return o.downloadSession()}),h(30,"Download Session File"),l(),d(31,"button",14),A("click",function(){return o.downloadDDL()}),h(32,"Download Spanner DDL"),l()()()()(),d(33,"div",15)(34,"div",16),h(35),D(36,"br"),h(37," To make schema changes go to "),d(38,"a",17),A("click",function(){return o.spannerTab()}),h(39,"Spanner Draft"),l(),h(40," pane. "),l()(),d(41,"div",18)(42,"div",19)(43,"app-object-explorer",20),A("selectedDatabase",function(a){return o.changeCurrentDatabase(a)})("selectObject",function(a){return o.changeCurrentObject(a)})("updateSpannerTable",function(a){return o.updateSpannerTable(a)})("updateSrcTable",function(a){return o.updateSrcTable(a)})("leftCollaspe",function(){return o.leftColumnToggle()})("middleCollapse",function(){return o.middleColumnToggle()}),l()(),d(44,"div",21)(45,"app-object-detail",22),A("updateSidebar",function(){return o.reRenderObjectExplorerSpanner()}),l()(),d(46,"div",23)(47,"mat-tab-group")(48,"mat-tab",24)(49,"app-summary",25),A("changeIssuesLabel",function(a){return o.updateIssuesLabel(a)}),l()(),d(50,"mat-tab",24)(51,"app-rule",26),A("lengthOfRules",function(a){return o.updateRulesLabel(a)}),l()()(),d(52,"button",27),A("click",function(){return o.rightColumnToggle()}),d(53,"mat-icon",28),h(54,"first_page"),l(),d(55,"mat-icon",28),h(56,"last_page"),l()()()()()),2&i){const r=Ft(24);m(3),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(2),xe("Configure Schema (",o.dialect," Dialect)"),m(2),f("matTooltipDisabled",!o.isOfflineStatus),m(5),f("ngIf",!o.isOfflineStatus),m(4),f("matMenuTriggerFor",r),m(15),wv(" Estimation for ",o.srcDbName.toUpperCase()," to Spanner conversion: ",o.conversionRatePercentages.good,"% of tables can be converted automatically, ",o.conversionRatePercentages.ok,"% requires minimal conversion changes and ",o.conversionRatePercentages.bad,"% requires high complexity conversion changes. "),m(7),f("ngClass",hi(34,Dh,o.isLeftColumnCollapse?"left-column-collapse":"left-column-expand")),m(),f("spannerTree",o.spannerTree)("srcTree",o.srcTree)("srcDbName",o.srcDbName),m(),f("ngClass",function UM(t,n,e,i,o,r,a,s){const c=no()+t,u=be(),p=Wo(u,c,e,i,o,r);return tn(u,c+4,a)||p?Nr(u,c+5,s?n.call(s,e,i,o,r,a):n(e,i,o,r,a)):Xd(u,c+5)}(36,Kue,o.isLeftColumnCollapse,!o.isLeftColumnCollapse,!o.isMiddleColumnCollapse,o.isRightColumnCollapse,!o.isRightColumnCollapse)),m(),f("currentObject",o.currentObject)("tableData",o.tableData)("indexData",o.indexData)("sequenceData",o.sequenceData)("typeMap",o.typeMap)("autoGenMap",o.autoGenMap)("ddlStmts",o.ddlStmts)("fkData",o.fkData)("currentDatabase",o.currentDatabase)("defaultTypeMap",o.defaultTypeMap),m(),f("ngClass",function $M(t,n,e,i,o,r,a,s,c){const u=no()+t,p=be(),g=Wo(p,u,e,i,o,r);return js(p,u+4,a,s)||g?Nr(p,u+6,c?n.call(c,e,i,o,r,a,s):n(e,i,o,r,a,s)):Xd(p,u+6)}(42,Zue,!o.isRightColumnCollapse&&!o.isLeftColumnCollapse,!o.isRightColumnCollapse&&o.isLeftColumnCollapse,o.isRightColumnCollapse,!o.isMiddleColumnCollapse,o.isMiddleColumnCollapse,!o.isMiddleColumnCollapse)),m(2),f("ngClass",hi(51,jN,hi(49,Dh,o.updateIssuesLabel)))("label",o.issuesAndSuggestionsLabel),m(),f("currentObject",o.currentObject),m(),f("ngClass",hi(55,jN,hi(53,Dh,o.updateRulesLabel)))("label",o.rulesLabel),m(),f("currentObject",o.currentObject),m(2),f("ngClass",hi(57,Dh,o.isRightColumnCollapse?"display":"hidden")),m(2),f("ngClass",hi(59,Dh,o.isRightColumnCollapse?"hidden":"display"))}},dependencies:[yr,It,qr,zE,Yt,Mi,jl,wa,zl,eg,BC,vn,Bre,Pae,Due,que],styles:["app-object-detail[_ngcontent-%COMP%]{height:100%}.vertical-center[_ngcontent-%COMP%]{display:flex;align-items:center}.columns[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;border-top:1px solid #d3d3d3;border-bottom:1px solid #d3d3d3;height:calc(100vh - 222px)}.artifactsButtons[_ngcontent-%COMP%]{white-space:nowrap}.container[_ngcontent-%COMP%]{padding:7px 20px;margin-bottom:20px}.container[_ngcontent-%COMP%] .summary[_ngcontent-%COMP%]{font-weight:lighter}.container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 5px}.column-left[_ngcontent-%COMP%]{overflow:auto}.column-middle[_ngcontent-%COMP%]{width:48%;border-left:1px solid #d3d3d3;border-right:1px solid #d3d3d3;overflow:auto}.column-right[_ngcontent-%COMP%]{width:26%;position:relative;overflow:auto}.left-column-collapse[_ngcontent-%COMP%]{width:3%}.left-column-expand[_ngcontent-%COMP%]{width:26%}.middle-column-collapse[_ngcontent-%COMP%]{width:48%}.middle-column-expand[_ngcontent-%COMP%]{width:71%}.right-column-half-expand[_ngcontent-%COMP%]{width:80%}.right-column-collapse[_ngcontent-%COMP%]{width:26%}.right-column-full-expand[_ngcontent-%COMP%]{width:97%}.middle-column-hide[_ngcontent-%COMP%]{width:0%}.middle-column-full[_ngcontent-%COMP%]{width:100%}#right-column-toggle-button[_ngcontent-%COMP%]{border:none;background-color:inherit;position:absolute;top:10px;right:7px;z-index:100}#right-column-toggle-button[_ngcontent-%COMP%]:hover{cursor:pointer} .column-right .mat-mdc-tab-label .mat-mdc-tab-label-content{font-size:.8rem} .column-right .mat-mdc-tab-label{min-width:25px!important;padding:10px} .column-right .mat-mdc-tab-label.mat-mdc-tab-label-active{min-width:25px!important;padding:7px} .column-right .mat-mdc-tab-label-container{margin-right:40px} .column-right .mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-label-container{margin-right:0} .column-right .mat-mdc-tab-header-pagination-after{margin-right:40px}.split-button-left[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:none;padding-right:1px}.split-button-right[_ngcontent-%COMP%]{box-shadow:none;width:30px!important;min-width:unset!important;padding:0 2px;border-top-left-radius:0;border-bottom-left-radius:0;margin-right:7px}"]})}return t})(),Que=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.dialogRef=i,this.data=o,this.region="",this.spannerInstance="",this.dialect="",this.region=o.Region,this.spannerInstance=o.Instance,this.dialect=o.Dialect,this.targetDetailsForm=this.formBuilder.group({targetDb:["",[ee.required,ee.pattern("^[a-z][a-z0-9-_]{0,28}[a-z0-9]$")]]}),this.targetDetailsForm.setValue({targetDb:localStorage.getItem(yt.TargetDB)})}ngOnInit(){}updateTargetDetails(){let e=this.targetDetailsForm.value;localStorage.setItem(yt.TargetDB,e.targetDb),localStorage.setItem(yt.Dialect,e.dialect),localStorage.setItem(he.IsTargetDetailSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-target-details-form"]],decls:35,vars:5,consts:[["mat-dialog-content",""],[1,"target-detail-form",3,"formGroup"],["matTooltip","Schema & Schema and data migration: Specify new database name or existing database with empty schema. Data migration: Specify existing database with tables already created",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Target Database","type","text","formControlName","targetDb","ng-value","targetDetails.TargetDB"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Spanner Database Details"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"Spanner Database"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Min. 2 characters and Max. 30 characters. "),d(13,"a",6),h(14,"More Details"),l()()()(),D(15,"br")(16,"br"),d(17,"b"),h(18,"Region:"),l(),h(19),D(20,"br")(21,"br"),d(22,"b"),h(23,"Spanner Instance:"),l(),h(24),D(25,"br")(26,"br"),d(27,"b"),h(28,"Dialect:"),l(),h(29),l(),d(30,"div",7)(31,"button",8),h(32,"Cancel"),l(),d(33,"button",9),A("click",function(){return o.updateTargetDetails()}),h(34," Save "),l()()()),2&i&&(m(),f("formGroup",o.targetDetailsForm),m(18),xe(" ",o.region," "),m(5),xe(" ",o.spannerInstance," "),m(5),xe(" ",o.dialect," "),m(4),f("disabled",!o.targetDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.container[_ngcontent-%COMP%]{white-space:nowrap;overflow:auto;text-overflow:ellipsis}"]})}return t})();function Xue(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",10),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Jue(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function ehe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Select connection profile"),l(),d(4,"mat-select",12),y(5,Jue,2,2,"mat-option",13),l()()()),2&t){const e=C();m(5),f("ngForOf",e.profileList)}}function the(t,n){1&t&&(d(0,"div")(1,"mat-form-field",15)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",16),l()())}function ihe(t,n){1&t&&(d(0,"div")(1,"mat-form-field",11)(2,"mat-label"),h(3,"Replication slot"),l(),D(4,"input",17),l(),D(5,"br"),d(6,"mat-form-field",11)(7,"mat-label"),h(8,"Publication name"),l(),D(9,"input",18),l()())}function nhe(t,n){if(1&t&&(d(0,"li",24)(1,"span",25),h(2),l(),d(3,"span")(4,"mat-icon",26),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function ohe(t,n){if(1&t&&(d(0,"div",27)(1,"span",25),h(2,"Test connection failed"),l(),d(3,"mat-icon",28),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorMsg)}}function rhe(t,n){1&t&&(d(0,"mat-icon",29),h(1," check_circle "),l())}function ahe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",19),h(5,"Learn More"),l()(),D(6,"br"),y(7,nhe,6,2,"li",20)(8,ohe,5,1,"div",21),D(9,"br"),d(10,"button",22),A("click",function(){return ie(e),ne(C(2).testConnection())}),h(11,"Test Connection"),l(),y(12,rhe,2,0,"mat-icon",23),l()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorMsg),m(2),f("disabled",!e.connectionProfileForm.valid),m(2),f("ngIf",e.testSuccess)}}function she(t,n){if(1&t&&(d(0,"div"),y(1,ahe,13,4,"div",6),l()),2&t){const e=C();m(),f("ngIf",e.isSource)}}let che=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.formBuilder=o,this.dialogRef=r,this.data=a,this.selectedProfile="",this.profileType="Source",this.profileList=[],this.ipList=[],this.selectedOption="new",this.profileOptions=[{value:"new",display:"Create a new connection profile"},{value:"existing",display:"Choose an existing connection profile"}],this.profileName="",this.errorMsg="",this.isSource=!1,this.sourceDatabaseType="",this.testSuccess=!1,this.testingSourceConnection=!1,this.isSource=a.IsSource,this.sourceDatabaseType=a.SourceDatabaseType,this.isSource||(this.profileType="Target"),this.connectionProfileForm=this.formBuilder.group({profileOption:["",ee.required],newProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingProfile:[],replicationSlot:[],publication:[]}),"postgres"==this.sourceDatabaseType&&this.isSource&&(this.connectionProfileForm.get("replicationSlot")?.addValidators([ee.required]),this.connectionProfileForm.controls.replicationSlot.updateValueAndValidity(),this.connectionProfileForm.get("publication")?.addValidators([ee.required]),this.connectionProfileForm.controls.publication.updateValueAndValidity()),this.getConnectionProfilesAndIps()}onItemChange(e){this.selectedOption=e,"new"==this.selectedOption?(this.connectionProfileForm.get("newProfile")?.setValidators([ee.required]),this.connectionProfileForm.controls.existingProfile.clearValidators(),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity()):(this.connectionProfileForm.controls.newProfile.clearValidators(),this.connectionProfileForm.get("existingProfile")?.addValidators([ee.required]),this.connectionProfileForm.controls.newProfile.updateValueAndValidity(),this.connectionProfileForm.controls.existingProfile.updateValueAndValidity())}testConnection(){this.testingSourceConnection=!0,this.fetch.createConnectionProfile({Id:this.connectionProfileForm.value.newProfile,IsSource:this.isSource,ValidateOnly:!0}).subscribe({next:()=>{this.testingSourceConnection=!1,this.testSuccess=!0},error:o=>{this.testingSourceConnection=!1,this.testSuccess=!1,this.errorMsg=o.error}})}createConnectionProfile(){let e=this.connectionProfileForm.value;this.isSource&&(localStorage.setItem(yt.ReplicationSlot,e.replicationSlot),localStorage.setItem(yt.Publication,e.publication)),"new"===this.selectedOption?this.fetch.createConnectionProfile({Id:e.newProfile,IsSource:this.isSource,ValidateOnly:!1}).subscribe({next:()=>{this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.newProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.newProfile)),this.dialogRef.close()},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.dialogRef.close()}}):(this.isSource?(localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(yt.SourceConnProfile,e.existingProfile)):(localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(yt.TargetConnProfile,e.existingProfile)),this.dialogRef.close())}ngOnInit(){}getConnectionProfilesAndIps(){this.fetch.getConnectionProfiles(this.isSource).subscribe({next:e=>{this.profileList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.isSource&&this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-connection-profile-form"]],decls:19,vars:9,consts:[["mat-dialog-content",""],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h3","header-title"],[1,"radio-button-container"],["formControlName","profileOption",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],[3,"value","change"],["appearance","outline"],["formControlName","existingProfile","required","true","ng-value","selectedProfile",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter.",1,"new-connection-profile-input"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newProfile","required","true"],["matInput","","placeholder","Replication slot","type","text","formControlName","replicationSlot","required","true"],["matInput","","placeholder","Publication name","type","text","formControlName","publication","required","true"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists"],["class","connection-form-container",4,"ngFor","ngForOf"],["class","failure",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"span",2),h(3),l(),D(4,"br"),d(5,"div",3)(6,"mat-radio-group",4),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(7,Xue,2,2,"mat-radio-button",5),l()(),D(8,"br"),y(9,ehe,6,1,"div",6)(10,the,5,0,"div",6),D(11,"br"),y(12,ihe,10,0,"div",6)(13,she,2,1,"div",6),d(14,"div",7)(15,"button",8),h(16,"Cancel"),l(),d(17,"button",9),A("click",function(){return o.createConnectionProfile()}),h(18," Save "),l()()()()),2&i&&(m(),f("formGroup",o.connectionProfileForm),m(2),xe("",o.profileType," Connection Profile"),m(3),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.profileOptions),m(2),f("ngIf","existing"===o.selectedOption),m(),f("ngIf","new"===o.selectedOption),m(2),f("ngIf",o.isSource&&"postgres"==o.sourceDatabaseType),m(),f("ngIf","new"===o.selectedOption),m(4),f("disabled",!o.connectionProfileForm.valid||!o.testSuccess&&"new"===o.selectedOption&&o.isSource))},dependencies:[rn,It,Yt,Mi,Di,xi,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,zn,So,ko,vn,cg,lg,KC],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}"]})}return t})();function lhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",6),A("change",function(){const r=ie(e).$implicit;return ne(C().onItemChange(r.value))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function dhe(t,n){1&t&&D(0,"mat-spinner",19),2&t&&f("diameter",25)}function uhe(t,n){1&t&&(d(0,"mat-icon",20),h(1,"check_circle"),l())}function hhe(t,n){1&t&&(d(0,"mat-icon",21),h(1,"cancel"),l())}function mhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function phe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDump())}),d(2,"h4",8),h(3,"Load from database dump"),l(),h(4," Dump File "),d(5,"mat-form-field",9)(6,"mat-label"),h(7,"File path"),l(),d(8,"input",10),A("click",function(){return ie(e),ne(Ft(13).click())}),l(),y(9,dhe,1,1,"mat-spinner",11)(10,uhe,2,0,"mat-icon",12)(11,hhe,2,0,"mat-icon",13),l(),d(12,"input",14,15),A("change",function(o){return ie(e),ne(C().handleFileInput(o))}),l(),D(14,"br"),d(15,"button",16),h(16,"CANCEL"),l(),d(17,"button",17),h(18," SAVE "),l(),y(19,mhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.dumpFileForm),m(8),f("ngIf",e.uploadStart&&!e.uploadSuccess&&!e.uploadFail),m(),f("ngIf",e.uploadStart&&e.uploadSuccess),m(),f("ngIf",e.uploadStart&&e.uploadFail),m(6),f("disabled",!e.dumpFileForm.valid||!e.uploadSuccess),m(2),f("ngIf",""!=e.errorMsg)}}function fhe(t,n){if(1&t&&(d(0,"div",22)(1,"span",23),h(2,"Source database connection failed"),l(),d(3,"mat-icon",24),h(4," error "),l()()),2&t){const e=C(2);m(3),f("matTooltip",e.errorMsg)}}function ghe(t,n){if(1&t){const e=_e();d(0,"div")(1,"form",7),A("ngSubmit",function(){return ie(e),ne(C().setSourceDBDetailsForDirectConnect())}),d(2,"h4",8),h(3,"Connect to Source Database"),l(),h(4," Connection Detail "),d(5,"mat-form-field",25)(6,"mat-label"),h(7,"Hostname"),l(),D(8,"input",26),l(),d(9,"mat-form-field",25)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",27),d(13,"mat-error"),h(14," Only numbers are allowed. "),l()(),D(15,"br"),d(16,"mat-form-field",25)(17,"mat-label"),h(18,"User name"),l(),D(19,"input",28),l(),d(20,"mat-form-field",25)(21,"mat-label"),h(22,"Password"),l(),D(23,"input",29),l(),D(24,"br"),d(25,"mat-form-field",25)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",30),l(),D(29,"br"),d(30,"button",16),h(31,"CANCEL"),l(),d(32,"button",17),h(33," SAVE "),l(),y(34,fhe,5,1,"div",18),l()()}if(2&t){const e=C();m(),f("formGroup",e.directConnectForm),m(31),f("disabled",!e.directConnectForm.valid),m(2),f("ngIf",""!=e.errorMsg)}}let _he=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.dataService=i,this.snack=o,this.dialogRef=r,this.data=a,this.inputOptions=[{value:Jn.DumpFile,display:"Connect via dump file"},{value:Jn.DirectConnect,display:"Connect via direct connection"}],this.selectedOption=Jn.DirectConnect,this.sourceDatabaseEngine="",this.errorMsg="",this.fileToUpload=null,this.uploadStart=!1,this.uploadSuccess=!1,this.uploadFail=!1,this.dumpFileForm=new ti({filePath:new U("",[ee.required])}),this.directConnectForm=new ti({hostName:new U("",[ee.required]),port:new U("",[ee.required]),userName:new U("",[ee.required]),dbName:new U("",[ee.required]),password:new U("")}),this.sourceDatabaseEngine=a}ngOnInit(){}setSourceDBDetailsForDump(){const{filePath:e}=this.dumpFileForm.value;this.fetch.setSourceDBDetailsForDump({Driver:this.sourceDatabaseEngine,Path:e}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}setSourceDBDetailsForDirectConnect(){const{hostName:e,port:i,userName:o,password:r,dbName:a}=this.directConnectForm.value;this.fetch.setSourceDBDetailsForDirectConnect({dbEngine:this.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a}).subscribe({next:()=>{localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:c=>{this.errorMsg=c.error}})}handleFileInput(e){let i=e.target.files;i&&(this.fileToUpload=i.item(0),this.dumpFileForm.patchValue({filePath:this.fileToUpload?.name}),this.fileToUpload&&this.uploadFile())}uploadFile(){if(this.fileToUpload){this.uploadStart=!0,this.uploadFail=!1,this.uploadSuccess=!1;const e=new FormData;e.append("myFile",this.fileToUpload,this.fileToUpload?.name),this.dataService.uploadFile(e).subscribe(i=>{""==i?this.uploadSuccess=!0:this.uploadFail=!0})}}onItemChange(e){this.selectedOption=e,this.errorMsg=""}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-source-details-form"]],decls:7,vars:4,consts:[[1,"radio-button-container"],[1,"radio-button-group",3,"ngModel","ngModelChange"],[3,"value","change",4,"ngFor","ngForOf"],[1,"connect-load-database-container"],[1,"form-container"],[4,"ngIf"],[3,"value","change"],[3,"formGroup","ngSubmit"],[1,"primary-header"],["appearance","outline"],["matInput","","placeholder","File path","name","filePath","type","text","formControlName","filePath","readonly","",3,"click"],["matSuffix","",3,"diameter",4,"ngIf"],["matSuffix","","class","success",4,"ngIf"],["matSuffix","","class","danger",4,"ngIf"],["hidden","","type","file",3,"change"],["file",""],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","primary",3,"disabled"],["class","failure",4,"ngIf"],["matSuffix","",3,"diameter"],["matSuffix","",1,"success"],["matSuffix","",1,"danger"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-radio-group",1),un("ngModelChange",function(a){return kn(o.selectedOption,a)||(o.selectedOption=a),a}),y(2,lhe,2,2,"mat-radio-button",2),l()(),d(3,"div",3)(4,"div",4),y(5,phe,20,6,"div",5)(6,ghe,35,3,"div",5),l()()),2&i&&(m(),dn("ngModel",o.selectedOption),m(),f("ngForOf",o.inputOptions),m(3),f("ngIf","dumpFile"===o.selectedOption),m(),f("ngIf","directConnect"===o.selectedOption))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,nC,qi,_n,Ci,_i,Bi,wi,zi,zn,vn,Nl,cg,lg,sd]})}return t})();function bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",7),D(3,"mat-spinner",8),l(),d(4,"span",9),h(5,"Cleaning up resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}let vhe=(()=>{class t{constructor(e,i,o,r){this.data=e,this.fetch=i,this.snack=o,this.dialogRef=r,this.sourceAndTargetDetails={SpannerDatabaseName:"",SpannerDatabaseUrl:"",SourceDatabaseName:"",SourceDatabaseType:""},this.cleaningUp=!1,this.sourceAndTargetDetails={SourceDatabaseName:e.SourceDatabaseName,SourceDatabaseType:e.SourceDatabaseType,SpannerDatabaseName:e.SpannerDatabaseName,SpannerDatabaseUrl:e.SpannerDatabaseUrl}}ngOnInit(){}cleanUpJobs(){this.cleaningUp=!0,this.fetch.cleanUpStreamingJobs().subscribe({next:()=>{this.cleaningUp=!1,this.snack.openSnackBar("Dataflow and datastream jobs will be cleaned up","Close"),this.dialogRef.close()},error:e=>{this.cleaningUp=!1,this.snack.openSnackBar(e.error,"Close")}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(En),_(nr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-end-migration"]],decls:46,vars:7,consts:[[1,"end-migration-dialog"],["target","_blank",3,"href"],["href","https://github.com/GoogleCloudPlatform/professional-services-data-validator","target","_blank"],[4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close","",3,"disabled"],["mat-raised-button","","color","primary",3,"disabled","click"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"End Migration"),l(),d(3,"div")(4,"b"),h(5,"Source database:"),l(),h(6),D(7,"br"),d(8,"b"),h(9,"Spanner database:"),l(),d(10,"a",1),h(11),l()(),D(12,"br"),d(13,"div")(14,"b"),h(15,"Please follow these steps to complete the migration:"),l(),d(16,"ol")(17,"li"),h(18,"Validate that the schema has been created on Spanner as per the configuration"),l(),d(19,"li"),h(20,"Validate the data has been copied from the Source to Spanner. You can use the "),d(21,"a",2),h(22,"Data Validation Tool"),l(),h(23," to help with this process."),l(),d(24,"li"),h(25,"Stop the writes to the source database. "),d(26,"b"),h(27,"This will initiate a period of downtime."),l()(),d(28,"li"),h(29,"Wait for any incremental writes on source since the validation started on Spanner to catch up with the source. This can be done by periodically checking the Spanner Database for the most recent updates on source."),l(),d(30,"li"),h(31,"Once the Source and Spanner are in sync, start the application with Spanner as the Database."),l(),d(32,"li"),h(33,"Perform smoke tests on your application to ensure it is working properly on Spanner"),l(),d(34,"li"),h(35,"Cutover the traffic to the application with Spanner as the Database. "),d(36,"b"),h(37,"This marks the end of the period of downtime"),l()(),d(38,"li"),h(39,"Cleanup the migration jobs by clicking the button below."),l()()(),y(40,bhe,7,1,"div",3),d(41,"div",4)(42,"button",5),h(43,"Cancel"),l(),d(44,"button",6),A("click",function(){return o.cleanUpJobs()}),h(45,"Clean Up"),l()()()),2&i&&(m(6),_l(" ",o.sourceAndTargetDetails.SourceDatabaseName,"(",o.sourceAndTargetDetails.SourceDatabaseType,") "),m(4),f("href",o.sourceAndTargetDetails.SpannerDatabaseUrl,qo),m(),Pe(o.sourceAndTargetDetails.SpannerDatabaseName),m(29),f("ngIf",o.cleaningUp),m(2),f("disabled",o.cleaningUp),m(2),f("disabled",o.cleaningUp))},dependencies:[It,Yt,zn,ko,sd]})}return t})(),yhe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.disablePresetFlags=!0,this.tunableFlagsForm=new ti({vpcHostProjectId:new U(e.GCPProjectID,ee.required),network:new U(""),subnetwork:new U(""),maxWorkers:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$")]),numWorkers:new U("1",[ee.required,ee.pattern("^[1-9][0-9]*$")]),machineType:new U("n1-standard-2",[ee.required]),serviceAccountEmail:new U(""),additionalUserLabels:new U("",[ee.pattern('^{("([0-9a-zA-Z_-]+)":"([0-9a-zA-Z_-]+)",?)+}$')]),kmsKeyName:new U("",[ee.pattern("^projects\\/[^\\n\\r]+\\/locations\\/[^\\n\\r]+\\/keyRings\\/[^\\n\\r]+\\/cryptoKeys\\/[^\\n\\r]+$")]),customJarPath:new U("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")]),customClassName:new U(""),customParameter:new U("")}),this.presetFlagsForm=new ti({dataflowProjectId:new U(e.GCPProjectID),dataflowLocation:new U(""),gcsTemplatePath:new U("",[ee.pattern("^gs:\\/\\/[^\\n\\r]+$")])}),this.presetFlagsForm.disable()}ngOnInit(){}updateDataflowDetails(){let e=this.tunableFlagsForm.value;localStorage.setItem("network",e.network),localStorage.setItem("subnetwork",e.subnetwork),localStorage.setItem("vpcHostProjectId",e.vpcHostProjectId),localStorage.setItem("maxWorkers",e.maxWorkers),localStorage.setItem("numWorkers",e.numWorkers),localStorage.setItem("serviceAccountEmail",e.serviceAccountEmail),localStorage.setItem("machineType",e.machineType),localStorage.setItem("additionalUserLabels",e.additionalUserLabels),localStorage.setItem("kmsKeyName",e.kmsKeyName),localStorage.setItem("dataflowProjectId",this.presetFlagsForm.value.dataflowProjectId),localStorage.setItem("dataflowLocation",this.presetFlagsForm.value.dataflowLocation),localStorage.setItem("gcsTemplatePath",this.presetFlagsForm.value.gcsTemplatePath),localStorage.setItem("isDataflowConfigSet","true"),localStorage.setItem("customClassName",e.customClassName),localStorage.setItem("customJarPath",e.customJarPath),localStorage.setItem("customParameter",e.customParameter),this.dialofRef.close()}enablePresetFlags(){this.disablePresetFlags=!1,this.presetFlagsForm.enable()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-dataflow-form"]],decls:129,vars:19,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["matTooltip","Edit to run custom transformations",1,"mat-row"],["appearance","outline","matTooltip","Specify the GCS path for custom jar",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Custom JAR GCS Path","type","text","formControlName","customJarPath"],["appearance","outline","matTooltip","Specify the fully classified class name",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Fully Classified Class Name","type","text","formControlName","customClassName"],["appearance","outline","matTooltip","Specify the custom parameter required by the JAR",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Custom Parameters","type","text","formControlName","customParameter"],["matTooltip","Edit to run Dataflow in a VPC",1,"mat-row"],["appearance","outline","matTooltip","Specify the host project Id of the VPC network. For shared VPC, this needs to be edited to the correct host project id.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Host ProjectID","type","text","formControlName","vpcHostProjectId"],["href","https://cloud.google.com/vpc/docs/create-modify-vpc-networks#create-auto-network","target","_blank"],["appearance","outline","matTooltip","Specify the network name for the VPC",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Network Name","type","text","formControlName","network"],["appearance","outline","matTooltip","Specify the subnetwork name for the VPC. Provide only the subnetwork name and NOT the full URL for subnetwork.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","VPC Subnetwork Name","type","text","formControlName","subnetwork"],["matTooltip","Set performance parameters of the Dataflow job(s)",1,"mat-row"],["appearance","outline","matTooltip","Set maximum workers for the dataflow job(s). Default value: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","50","type","text","formControlName","maxWorkers"],["appearance","outline","matTooltip","Set initial number of workers for the dataflow job(s). Default value: 1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","1","type","text","formControlName","numWorkers"],["appearance","outline","matTooltip","The machine type to use for the job. Default machine type: n1-standard-2.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Machine Type","type","text","formControlName","machineType"],["href","https://cloud.google.com/compute/docs/machine-resource","target","_blank"],["appearance","outline","matTooltip","Set the service account to run the dataflow job(s) as",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Service Account Email","type","text","formControlName","serviceAccountEmail"],["appearance","outline","matTooltip",'Additional user labels to be specified for the job. Enter a json of "key": "value" pairs. Example: {"name": "wrench", "mass": "1kg", "count": "3" }.',1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Additional User Labels","type","text","formControlName","additionalUserLabels"],["appearance","outline","matTooltip","Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings //cryptoKeys/. Omit this field to use Google Managed Encryption Keys.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","KMS Key Name","type","text","formControlName","kmsKeyName"],["mat-button","",1,"edit-button",3,"disabled","click"],["appearance","outline","matTooltip","Specify the project to run the dataflow job in.",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Project Id","type","text","formControlName","dataflowProjectId"],["appearance","outline","matTooltip","Specify the region to run the dataflow job in. It is recommended to keep the region same as Spanner region for performance. Example: us-central1",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Dataflow Location","type","text","formControlName","dataflowLocation"],["appearance","outline","matTooltip","Cloud Storage path to the template spec. Use this to run launch dataflow with custom templates. Example: gs://my-bucket/path/to/template",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","GCS Template Path","type","text","formControlName","gcsTemplatePath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Dataflow (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Dataflow."),l(),d(6,"mat-expansion-panel")(7,"mat-expansion-panel-header",2)(8,"span"),h(9,"Custom Transformations"),l()(),d(10,"div")(11,"mat-form-field",3)(12,"mat-label"),h(13,"Custom JAR GCS Path"),l(),D(14,"input",4),l(),D(15,"br"),d(16,"mat-form-field",5)(17,"mat-label"),h(18,"Custom Class Name"),l(),D(19,"input",6),l(),D(20,"br"),d(21,"mat-form-field",7)(22,"mat-label"),h(23,"Custom Parameter"),l(),D(24,"input",8),l()()(),D(25,"br"),d(26,"mat-expansion-panel")(27,"mat-expansion-panel-header",9)(28,"span"),h(29,"Networking"),l()(),d(30,"div")(31,"mat-form-field",10)(32,"mat-label"),h(33,"VPC Host ProjectID"),l(),D(34,"input",11),l(),D(35,"br"),d(36,"h5"),h(37," - Provide "),d(38,"b"),h(39,"ONLY"),l(),h(40," the VPC subnetwork if unsure about what VPC network to use. Dataflow chooses the network for you. "),D(41,"br"),h(42," - If you are using an "),d(43,"a",12),h(44,"auto mode network"),l(),h(45,", provide ONLY the network name and skip the VPC subnetwork. "),l(),d(46,"mat-form-field",13)(47,"mat-label"),h(48,"VPC Network"),l(),D(49,"input",14),l(),D(50,"br"),d(51,"mat-form-field",15)(52,"mat-label"),h(53,"VPC Subnetwork"),l(),D(54,"input",16),l()()(),D(55,"br"),d(56,"mat-expansion-panel")(57,"mat-expansion-panel-header",17)(58,"span"),h(59,"Performance"),l()(),d(60,"div")(61,"mat-form-field",18)(62,"mat-label"),h(63,"Max Workers"),l(),D(64,"input",19),l(),D(65,"br"),d(66,"mat-form-field",20)(67,"mat-label"),h(68,"Initial Number of Workers"),l(),D(69,"input",21),l(),D(70,"br"),d(71,"mat-form-field",22)(72,"mat-label"),h(73,"Machine Type"),l(),D(74,"input",23),l(),d(75,"h5"),h(76,"Find the list of all machine types "),d(77,"a",24),h(78,"here"),l(),h(79,"."),l()()(),D(80,"br"),d(81,"mat-form-field",25)(82,"mat-label"),h(83,"Service Account Email"),l(),D(84,"input",26),l(),D(85,"br"),d(86,"mat-form-field",27)(87,"mat-label"),h(88,"Additional User Labels"),l(),D(89,"input",28),l(),D(90,"br"),d(91,"mat-form-field",29)(92,"mat-label"),h(93,"KMS Key Name"),l(),D(94,"input",30),l()(),D(95,"hr"),d(96,"form",1)(97,"h2"),h(98," Preset Flags "),d(99,"span")(100,"button",31),A("click",function(){return o.enablePresetFlags()}),d(101,"mat-icon"),h(102,"edit"),l(),h(103," EDIT "),l()()(),d(104,"h5"),h(105,"These flags are set by SMT by default and "),d(106,"b"),h(107,"SHOULD NOT BE"),l(),h(108," modified unless running Dataflow in a non-standard configuration. To edit these parameters, click the edit button above."),l(),D(109,"br"),d(110,"mat-form-field",32)(111,"mat-label"),h(112,"Dataflow Project Id"),l(),D(113,"input",33),l(),D(114,"br"),d(115,"mat-form-field",34)(116,"mat-label"),h(117,"Dataflow Location"),l(),D(118,"input",35),l(),D(119,"br"),d(120,"mat-form-field",36)(121,"mat-label"),h(122,"GCS Template Path"),l(),D(123,"input",37),l()(),d(124,"div",38)(125,"button",39),h(126,"Cancel"),l(),d(127,"button",40),A("click",function(){return o.updateDataflowDetails()}),h(128," Save "),l()()()),2&i&&(m(),f("formGroup",o.tunableFlagsForm),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(15),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("formGroup",o.presetFlagsForm),m(4),f("disabled",!o.disablePresetFlags),m(10),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(5),f("matTooltipPosition","right"),m(7),f("disabled",o.tunableFlagsForm.invalid||o.presetFlagsForm.invalid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,DC,bP,zn,So,ko,vn],styles:[".edit-button[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function Che(t,n){1&t&&(d(0,"mat-form-field",8)(1,"mat-label"),h(2,"Max Concurrent CDC Tasks"),l(),D(3,"input",9),l()),2&t&&f("matTooltipPosition","right")}let whe=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.isCdcTuningSupported=!0,this.datastreamForm=new ti({maxConcurrentBackfillTasks:new U("50",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)]),maxConcurrentCdcTasks:new U("5",[ee.required,ee.pattern("^[1-9][0-9]*$"),ee.min(1),ee.max(50)])}),this.isCdcTuningSupported=e.sourceType!=ir.Postgres.toLowerCase()}ngOnInit(){}updateDatastreamDetails(){let e=this.datastreamForm.value;localStorage.setItem("maxConcurrentBackfillTasks",e.maxConcurrentBackfillTasks),localStorage.setItem("maxConcurrentCdcTasks",e.maxConcurrentCdcTasks),localStorage.setItem("isDatastreamConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-datastream-form"]],decls:17,vars:4,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream backfill. Default: 50",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent Backfill Tasks","type","text","formControlName","maxConcurrentBackfillTasks"],["class","full-width","appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the max number of concurrent workers for Datastream CDC. Default: 5",1,"full-width",3,"matTooltipPosition"],["matInput","","placeholder","Max Concurrent CDC Tasks","type","text","formControlName","maxConcurrentCdcTasks"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Datastream (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune runtime environment for Datastream."),l(),d(6,"mat-form-field",2)(7,"mat-label"),h(8,"Max Concurrent Backfill Tasks"),l(),D(9,"input",3),l(),D(10,"br"),y(11,Che,4,1,"mat-form-field",4),l(),d(12,"div",5)(13,"button",6),h(14,"Cancel"),l(),d(15,"button",7),A("click",function(){return o.updateDatastreamDetails()}),h(16," Save "),l()()()),2&i&&(m(),f("formGroup",o.datastreamForm),m(5),f("matTooltipPosition","right"),m(5),f("ngIf",o.isCdcTuningSupported),m(4),f("disabled",!o.datastreamForm.valid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function xhe(t,n){1&t&&(d(0,"mat-form-field",7)(1,"mat-label"),h(2,"TTL in days"),l(),D(3,"input",8),l()),2&t&&f("matTooltipPosition","right")}let Dhe=(()=>{class t{constructor(e){this.dialofRef=e,this.ttlInDaysSet=!1,this.gcsForm=new ti({ttlInDays:new U("",[ee.required,ee.pattern("^([1-9][0-9]*$)"),ee.min(1),ee.max(1e8)])})}ngOnInit(){}updateGcsDetails(){this.ttlInDaysSet?(localStorage.setItem("ttlInDays",this.gcsForm.value.ttlInDays),localStorage.setItem("ttlInDaysSet","true")):(localStorage.setItem("ttlInDays","0"),localStorage.setItem("ttlInDaysSet","false")),localStorage.setItem("isGcsConfigSet","true"),this.dialofRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-tune-gcs-form"]],decls:15,vars:5,consts:[["mat-dialog-content",""],[1,"dataflow-form",3,"formGroup"],["color","primary","matTooltip","Set the TTL (in days) for GCS data written by Datastream. This sets the GCS lifecycle to delete the objects after specified number of days.",3,"matTooltipPosition","checked","change"],["class","ttl-input","appearance","outline","matTooltip","Set the TTL in days",3,"matTooltipPosition",4,"ngIf"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"],["appearance","outline","matTooltip","Set the TTL in days",1,"ttl-input",3,"matTooltipPosition"],["matInput","","type","text","formControlName","ttlInDays"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Tune Google Cloud Storage (Optional)"),l(),d(4,"h5"),h(5,"This form is optional and should only be edited to tune the Cloud Storage bucket used by Datastream to store Change Records, specified by the destination connection profile"),l(),d(6,"mat-checkbox",2),A("change",function(){return o.ttlInDaysSet=!o.ttlInDaysSet}),h(7," Set TTL for data "),l(),D(8,"br"),y(9,xhe,4,1,"mat-form-field",3),l(),d(10,"div",4)(11,"button",5),h(12,"Cancel"),l(),d(13,"button",6),A("click",function(){return o.updateGcsDetails()}),h(14," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsForm),m(5),f("matTooltipPosition","right")("checked",o.ttlInDaysSet),m(3),f("ngIf",o.ttlInDaysSet),m(4),f("disabled",o.ttlInDaysSet&&o.gcsForm.invalid))},dependencies:[It,Yt,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn,og],styles:[".ttl-input[_ngcontent-%COMP%]{padding-left:10%}"]})}return t})(),She=(()=>{class t{constructor(e,i){this.data=e,this.dialofRef=i,this.gcloudCmd=e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-equivalent-gcloud-command"]],decls:12,vars:2,consts:[["mat-dialog-content",""],["matTooltip","This is the gcloud command to launch the dataflow job with the same parameters. Can be used to re-run a dataflow job manually in case of failure.",1,"configure"],[1,"left-text"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","color","primary",3,"cdkCopyToClipboard"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"h2"),h(2,"Equivalent gcloud command line"),d(3,"mat-icon",1),h(4," info"),l()(),d(5,"span",2),h(6),l(),d(7,"div",3)(8,"button",4),h(9,"Close"),l(),d(10,"button",5),h(11,"Copy"),l()()()),2&i&&(m(6),Pe(o.gcloudCmd),m(4),f("cdkCopyToClipboard",o.gcloudCmd))},dependencies:[Yt,Mi,zn,So,ko,vn,KC]})}return t})();function khe(t,n){if(1&t&&(d(0,"mat-option",14),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Mhe(t,n){1&t&&(d(0,"div",15)(1,"mat-form-field",4)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",16,17),l()())}function The(t,n){1&t&&(d(0,"div",18)(1,"mat-form-field",19)(2,"mat-label"),h(3,"Hostname"),l(),D(4,"input",20),l(),d(5,"mat-form-field",19)(6,"mat-label"),h(7,"Port"),l(),D(8,"input",21),d(9,"mat-error"),h(10," Only numbers are allowed. "),l()(),D(11,"br"),d(12,"mat-form-field",19)(13,"mat-label"),h(14,"User name"),l(),D(15,"input",22),l(),d(16,"mat-form-field",19)(17,"mat-label"),h(18,"Password"),l(),D(19,"input",23),l(),D(20,"br"),d(21,"mat-form-field",19)(22,"mat-label"),h(23,"Database Name"),l(),D(24,"input",24),l(),D(25,"br"),d(26,"mat-form-field",19)(27,"mat-label"),h(28,"Shard ID"),l(),D(29,"input",25),l(),D(30,"br"),l())}function Ihe(t,n){if(1&t){const e=_e();d(0,"button",26),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",C().directConnectForm.invalid)}function Ehe(t,n){if(1&t&&(d(0,"div",27)(1,"span",28),h(2),l(),d(3,"mat-icon",29),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let Ohe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.dialogRef=r,this.data=a,this.errorMsg="",this.shardConnDetailsList=[],this.sourceConnDetails={dbConfigs:[],isRestoredSession:""},this.shardSessionDetails={sourceDatabaseEngine:"",isRestoredSession:""},this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.shardSessionDetails={sourceDatabaseEngine:a.sourceDatabaseEngine,isRestoredSession:a.isRestoredSession};let s={dbEngine:"",isSharded:!1,hostName:"",port:"",userName:"",password:"",dbName:""};localStorage.getItem(Wi.Type)==Jn.DirectConnect&&null!=localStorage.getItem(Wi.Config)&&(s=JSON.parse(localStorage.getItem(Wi.Config))),this.directConnectForm=new ti({inputType:new U("form",[ee.required]),textInput:new U(""),hostName:new U(s.hostName,[ee.required]),port:new U(s.port,[ee.required]),userName:new U(s.userName,[ee.required]),dbName:new U(s.dbName,[ee.required]),password:new U(s.password),shardId:new U("",[ee.required])})}ngOnInit(){this.initFromLocalStorage()}initFromLocalStorage(){}setValidators(e){if("text"==e){for(const i in this.directConnectForm.controls)this.directConnectForm.get(i)?.clearValidators(),this.directConnectForm.get(i)?.updateValueAndValidity();this.directConnectForm.get("textInput")?.setValidators([ee.required]),this.directConnectForm.controls.textInput.updateValueAndValidity()}else this.directConnectForm.get("hostName")?.setValidators([ee.required]),this.directConnectForm.controls.hostName.updateValueAndValidity(),this.directConnectForm.get("port")?.setValidators([ee.required]),this.directConnectForm.controls.port.updateValueAndValidity(),this.directConnectForm.get("userName")?.setValidators([ee.required]),this.directConnectForm.controls.userName.updateValueAndValidity(),this.directConnectForm.get("dbName")?.setValidators([ee.required]),this.directConnectForm.controls.dbName.updateValueAndValidity(),this.directConnectForm.get("password")?.setValidators([ee.required]),this.directConnectForm.controls.password.updateValueAndValidity(),this.directConnectForm.get("shardId")?.setValidators([ee.required]),this.directConnectForm.controls.shardId.updateValueAndValidity(),this.directConnectForm.controls.textInput.clearValidators(),this.directConnectForm.controls.textInput.updateValueAndValidity()}determineFormValidity(){return this.shardConnDetailsList.length>0||!!this.directConnectForm.valid}saveDetailsAndReset(){const{hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:e,port:i,userName:o,password:r,dbName:a,shardId:s}),this.directConnectForm=new ti({inputType:new U("form",ee.required),textInput:new U(""),hostName:new U(""),port:new U(""),userName:new U(""),dbName:new U(""),password:new U(""),shardId:new U("")}),this.setValidators("form"),this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}finalizeConnDetails(){if("form"===this.directConnectForm.value.inputType){const{hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}=this.directConnectForm.value;this.shardConnDetailsList.push({dbEngine:this.shardSessionDetails.sourceDatabaseEngine,isSharded:!1,hostName:i,port:o,userName:r,password:a,dbName:s,shardId:c}),this.sourceConnDetails.dbConfigs=this.shardConnDetailsList}else{try{this.sourceConnDetails.dbConfigs=JSON.parse(this.directConnectForm.value.textInput)}catch{throw this.errorMsg="Unable to parse JSON",new Error(this.errorMsg)}this.sourceConnDetails.dbConfigs.forEach(i=>{i.dbEngine=this.shardSessionDetails.sourceDatabaseEngine})}this.sourceConnDetails.isRestoredSession=this.shardSessionDetails.isRestoredSession,this.fetch.setShardsSourceDBDetailsForBulk(this.sourceConnDetails).subscribe({next:()=>{localStorage.setItem(he.NumberOfShards,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.NumberOfInstances,this.sourceConnDetails.dbConfigs.length.toString()),localStorage.setItem(he.IsSourceDetailsSet,"true"),this.dialogRef.close()},error:i=>{this.errorMsg=i.error}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-bulk-source-details-form"]],decls:23,vars:7,consts:[[1,"connect-load-database-container"],[1,"form-container"],[1,"shard-bulk-form",3,"formGroup"],[1,"primary-header"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","textInput",4,"ngIf"],["class","formInput",4,"ngIf"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["class","failure",4,"ngIf"],[3,"value"],[1,"textInput"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],[1,"formInput"],["appearance","outline",1,"full-width"],["matInput","","placeholder","127.0.0.1","name","hostName","type","text","formControlName","hostName"],["matInput","","placeholder","3306","name","port","type","text","formControlName","port"],["matInput","","placeholder","root","name","userName","type","text","formControlName","userName"],["matInput","","name","password","type","password","formControlName","password"],["matInput","","name","dbname","type","text","formControlName","dbName"],["matInput","","name","shardId","type","text","formControlName","shardId"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"],[1,"failure"],[1,"left-text"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"div",1)(2,"form",2)(3,"h4",3),h(4,"Add Data Shard Connection Details"),l(),d(5,"b"),h(6,"Note: Please configure the schema source used for schema conversion if you want Spanner migration tool to migrate data from it as well."),l(),D(7,"br")(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Input Type"),l(),d(12,"mat-select",5,6),A("selectionChange",function(){ie(r);const s=Ft(13);return ne(o.setValidators(s.value))}),y(14,khe,2,2,"mat-option",7),l()(),y(15,Mhe,6,0,"div",8)(16,The,31,0,"div",9),d(17,"button",10),h(18,"CANCEL"),l(),y(19,Ihe,2,1,"button",11),d(20,"button",12),A("click",function(){return o.finalizeConnDetails()}),h(21," FINISH "),l(),y(22,Ehe,5,2,"div",13),l()()()}2&i&&(m(2),f("formGroup",o.directConnectForm),m(12),f("ngForOf",o.inputOptionsList),m(),f("ngIf","text"===o.directConnectForm.value.inputType),m(),f("ngIf","form"===o.directConnectForm.value.inputType),m(3),f("ngIf","form"===o.directConnectForm.value.inputType),m(),f("disabled",!o.determineFormValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Di,xi,iC,qi,VA,Xn,Tn,_n,Ci,_i,Bi,wi,zi,zn,vn]})}return t})();function Ahe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Phe(t,n){if(1&t&&(d(0,"div",19)(1,"mat-card")(2,"mat-card-header")(3,"mat-card-title"),h(4,"Total Configured Shards"),l(),d(5,"mat-card-subtitle"),h(6),l(),d(7,"mat-card-subtitle"),h(8),l()()()()),2&t){const e=C();m(6),xe("",e.physicalShards," physical instances configured."),m(2),xe("",e.logicalShards," logical shards configured.")}}function Rhe(t,n){1&t&&(d(0,"div",20)(1,"mat-form-field",21)(2,"mat-label"),h(3,"Paste JSON Configuration"),l(),D(4,"textarea",22,23),l()())}function Nhe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function Fhe(t,n){if(1&t&&(d(0,"div",20)(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Nhe,6,2,"li",25),l()),2&t){const e=C();m(7),f("ngForOf",e.ipList)}}function Lhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"JSON Verification failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(3),f("matTooltip",e.errorVerMsg)}}function Bhe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Validating Resources"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Vhe(t,n){1&t&&(d(0,"mat-icon",34),h(1," check_circle "),l())}function jhe(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"button",35),A("click",function(){return ie(e),ne(C().verifyTextJson())}),h(2,"VERIFY JSON"),l()()}if(2&t){const e=C();m(),f("disabled",!e.migrationProfileForm.valid||e.verifyingJson)}}function zhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"source"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function Hhe(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function Uhe(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select source connection profile"),l(),d(4,"mat-select",49),y(5,Hhe,2,2,"mat-option",8),l()(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Data Shard Id"),l(),D(9,"input",50),l()()),2&t){const e=C(2);m(5),f("ngForOf",e.sourceProfileList),m(4),f("value",e.inputValue)}}function $he(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Host"),l(),D(4,"input",51),l(),d(5,"mat-form-field",5)(6,"mat-label"),h(7,"User"),l(),D(8,"input",52),l(),d(9,"mat-form-field",5)(10,"mat-label"),h(11,"Port"),l(),D(12,"input",53),l(),d(13,"mat-form-field",5)(14,"mat-label"),h(15,"Password"),l(),D(16,"input",54),l(),d(17,"mat-form-field",55)(18,"mat-label"),h(19,"Connection profile name"),l(),D(20,"input",56),l(),d(21,"mat-form-field",5)(22,"mat-label"),h(23,"Data Shard Id"),l(),D(24,"input",50),l()()),2&t){const e=C(2);m(24),f("value",e.inputValue)}}function Ghe(t,n){if(1&t&&(d(0,"li",26)(1,"span",27),h(2),l(),d(3,"span")(4,"mat-icon",28),h(5,"file_copy"),l()()()),2&t){const e=n.$implicit;m(2),Pe(e),m(2),f("cdkCopyToClipboard",e)}}function qhe(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2,"Test connection failed"),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C(3);m(3),f("matTooltip",e.errorSrcMsg)}}function Whe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Testing Connection"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Khe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating source connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function Zhe(t,n){1&t&&(d(0,"mat-icon",60),h(1," check_circle "),l())}function Yhe(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function Qhe(t,n){if(1&t){const e=_e();d(0,"div")(1,"div")(2,"b"),h(3,"Copy the public IPs below, and use them to configure the network firewall to accept connections from them."),l(),d(4,"a",24),h(5,"Learn More"),l()(),D(6,"br"),y(7,Ghe,6,2,"li",25)(8,qhe,5,1,"div",11),D(9,"br"),y(10,Whe,7,1,"div",12)(11,Khe,7,1,"div",12)(12,Zhe,2,0,"mat-icon",57),d(13,"button",35),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!0))}),h(14,"TEST CONNECTION"),l(),y(15,Yhe,2,0,"mat-icon",58),d(16,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!0,!1))}),h(17,"CREATE PROFILE"),l()()}if(2&t){const e=C(2);m(7),f("ngForOf",e.ipList),m(),f("ngIf",!e.testSuccess&&""!=e.errorSrcMsg),m(2),f("ngIf",e.testingSourceConnection),m(),f("ngIf",e.creatingSourceConnection),m(),f("ngIf",e.testSuccess),m(),f("disabled",!e.determineConnectionProfileInfoValidity()||e.testingSourceConnection),m(2),f("ngIf",e.createSrcConnSuccess),m(),f("disabled",!e.testSuccess||e.creatingSourceConnection)}}function Xhe(t,n){if(1&t){const e=_e();me(0),d(1,"div",62)(2,"mat-form-field",5)(3,"mat-label"),h(4,"Logical Shard ID"),l(),D(5,"input",63),l(),d(6,"mat-form-field",5)(7,"mat-label"),h(8,"Source Database Name"),l(),D(9,"input",64),l(),d(10,"mat-icon",65),A("click",function(){const r=ie(e).index;return ne(C(2).deleteRow(r))}),h(11," delete_forever"),l()(),pe()}if(2&t){const e=n.index;m(),f("formGroupName",e)}}function Jhe(t,n){if(1&t){const e=_e();d(0,"mat-radio-button",48),A("change",function(){const r=ie(e).$implicit;return ne(C(2).onItemChange(r.value,"target"))}),h(1),l()}if(2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.display,"")}}function eme(t,n){if(1&t&&(d(0,"mat-option",18),h(1),l()),2&t){const e=n.$implicit;f("value",e.DisplayName),m(),xe(" ",e.DisplayName," ")}}function tme(t,n){if(1&t&&(d(0,"div")(1,"mat-form-field",5)(2,"mat-label"),h(3,"Select target connection profile"),l(),d(4,"mat-select",66),y(5,eme,2,2,"mat-option",8),l()()()),2&t){const e=C(2);m(5),f("ngForOf",e.targetProfileList)}}function ime(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",31),D(3,"mat-spinner",32),l(),d(4,"span",33),h(5,"Creating target connection profile"),l(),D(6,"br"),l()),2&t&&(m(3),f("diameter",20))}function nme(t,n){1&t&&(d(0,"mat-icon",61),h(1," check_circle "),l())}function ome(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l()()),2&t){const e=C(3);m(2),Pe(e.errorTgtMsg)}}function rme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",55)(2,"mat-label"),h(3,"Connection profile name"),l(),D(4,"input",67),l(),y(5,ime,7,1,"div",12)(6,nme,2,0,"mat-icon",58),d(7,"button",59),A("click",function(){return ie(e),ne(C(2).createOrTestConnection(!1,!1))}),h(8,"CREATE PROFILE"),l(),y(9,ome,3,1,"div",11),l()}if(2&t){const e=C(2);m(5),f("ngIf",e.creatingTargetConnection),m(),f("ngIf",e.createTgtConnSuccess),m(),f("disabled",e.creatingTargetConnection),m(2),f("ngIf",""!=e.errorTgtMsg)}}function ame(t,n){if(1&t){const e=_e();d(0,"div",20)(1,"span",36),h(2,"Configure Source Profile"),l(),d(3,"div",37)(4,"mat-radio-group",38),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedSourceProfileOption,o)||(r.selectedSourceProfileOption=o),ne(o)}),y(5,zhe,2,2,"mat-radio-button",39),l()(),D(6,"br"),y(7,Uhe,10,2,"div",12)(8,$he,25,1,"div",12),D(9,"br"),y(10,Qhe,18,8,"div",12),D(11,"hr"),d(12,"span",36),h(13,"Configure ShardId and Database Names"),l(),d(14,"mat-icon",40),h(15,"info"),l(),D(16,"br")(17,"br"),d(18,"span",41),me(19,42),y(20,Xhe,12,1,"ng-container",43),pe(),l(),d(21,"div",44)(22,"button",45),A("click",function(){return ie(e),ne(C().addRow())}),h(23,"ADD ROW"),l()(),D(24,"br")(25,"hr"),d(26,"span",36),h(27,"Configure Target Profile"),l(),d(28,"div",46)(29,"mat-radio-group",47),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedTargetProfileOption,o)||(r.selectedTargetProfileOption=o),ne(o)}),y(30,Jhe,2,2,"mat-radio-button",39),l()(),D(31,"br"),y(32,tme,6,1,"div",12)(33,rme,10,4,"div",12),D(34,"hr"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedSourceProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedSourceProfileOption),m(),f("ngIf","new"===e.selectedSourceProfileOption),m(2),f("ngIf","new"===e.selectedSourceProfileOption),m(10),f("ngForOf",e.shardMappingTable.controls),m(9),dn("ngModel",e.selectedTargetProfileOption),m(),f("ngForOf",e.profileOptions),m(2),f("ngIf","existing"===e.selectedTargetProfileOption),m(),f("ngIf","new"===e.selectedTargetProfileOption)}}function sme(t,n){if(1&t){const e=_e();d(0,"button",68),A("click",function(){return ie(e),ne(C().saveDetailsAndReset())}),h(1," ADD MORE SHARDS "),l()}2&t&&f("disabled",!C().determineFormValidity())}function cme(t,n){if(1&t&&(d(0,"div",29)(1,"span",27),h(2),l(),d(3,"mat-icon",30),h(4," error "),l()()),2&t){const e=C();m(2),Pe(e.errorMsg),m(),f("matTooltip",e.errorMsg)}}let lme=(()=>{class t{constructor(e,i,o,r,a,s){this.fetch=e,this.snack=i,this.dataService=o,this.formBuilder=r,this.dialogRef=a,this.data=s,this.selectedProfile="",this.profileType="",this.sourceProfileList=[],this.targetProfileList=[],this.definedSrcConnProfileList=[],this.definedTgtConnProfileList=[],this.shardIdToDBMappingTable=[],this.dataShardIdList=[],this.ipList=[],this.selectedSourceProfileOption="existing",this.selectedTargetProfileOption="existing",this.profileOptions=[{value:"existing",display:"Choose an existing connection profile"},{value:"new",display:"Create a new connection profile"}],this.profileName="",this.errorMsg="",this.errorSrcMsg="",this.errorTgtMsg="",this.errorVerMsg="",this.sourceDatabaseType="",this.inputValue="",this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.physicalShards=0,this.logicalShards=0,this.testingSourceConnection=!1,this.creatingSourceConnection=!1,this.creatingTargetConnection=!1,this.verifyingJson=!1,this.prefix="smt-datashard",this.inputOptionsList=[{value:"text",displayName:"Text"},{value:"form",displayName:"Form"}],this.region=s.Region,this.sourceDatabaseType=s.SourceDatabaseType,localStorage.getItem(Wi.Type)==Jn.DirectConnect&&(this.schemaSourceConfig=JSON.parse(localStorage.getItem(Wi.Config)));let u=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[""],sourceProfileOption:["new",ee.required],targetProfileOption:["new",ee.required],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[this.schemaSourceConfig?.hostName],user:[this.schemaSourceConfig?.userName],port:[this.schemaSourceConfig?.port],password:[this.schemaSourceConfig?.password],dataShardId:[this.inputValue,ee.required],shardMappingTable:this.formBuilder.array([u])}),this.migrationProfile={configType:"dataflow",shardConfigurationDataflow:{schemaSource:{host:this.schemaSourceConfig?.hostName,user:this.schemaSourceConfig?.userName,password:this.schemaSourceConfig?.password,port:this.schemaSourceConfig?.port,dbName:this.schemaSourceConfig?.dbName},dataShards:[]}}}ngOnInit(){this.getConnectionProfiles(!0),this.getConnectionProfiles(!1),this.getDatastreamIPs(),this.initFromLocalStorage()}initFromLocalStorage(){}get shardMappingTable(){return this.migrationProfileForm.controls.shardMappingTable}addRow(){let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.shardMappingTable.push(e)}deleteRow(e){this.shardMappingTable.removeAt(e)}getDatastreamIPs(){this.fetch.getStaticIps().subscribe({next:e=>{this.ipList=e},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}getConnectionProfiles(e){this.fetch.getConnectionProfiles(e).subscribe({next:i=>{e?this.sourceProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName)):this.targetProfileList=i.sort((o,r)=>o.DisplayName.localeCompare(r.DisplayName))},error:i=>{this.snack.openSnackBar(i.error,"Close")}})}onItemChange(e,i){this.profileType=i,"source"===this.profileType?(this.selectedSourceProfileOption=e,"new"==this.selectedSourceProfileOption?(this.migrationProfileForm.get("newSourceProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingSourceProfile.clearValidators(),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.get("host")?.setValidators([ee.required]),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.get("user")?.setValidators([ee.required]),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.get("port")?.setValidators([ee.required]),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.get("password")?.setValidators([ee.required]),this.migrationProfileForm.controls.password.updateValueAndValidity()):(this.migrationProfileForm.controls.newSourceProfile.clearValidators(),this.migrationProfileForm.get("existingSourceProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingSourceProfile.updateValueAndValidity(),this.migrationProfileForm.controls.host.clearValidators(),this.migrationProfileForm.controls.host.updateValueAndValidity(),this.migrationProfileForm.controls.user.clearValidators(),this.migrationProfileForm.controls.user.updateValueAndValidity(),this.migrationProfileForm.controls.port.clearValidators(),this.migrationProfileForm.controls.port.updateValueAndValidity(),this.migrationProfileForm.controls.password.clearValidators(),this.migrationProfileForm.controls.password.updateValueAndValidity())):(this.selectedTargetProfileOption=e,"new"==this.selectedTargetProfileOption?(this.migrationProfileForm.get("newTargetProfile")?.setValidators([ee.required]),this.migrationProfileForm.controls.existingTargetProfile.clearValidators(),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()):(this.migrationProfileForm.controls.newTargetProfile.clearValidators(),this.migrationProfileForm.get("existingTargetProfile")?.addValidators([ee.required]),this.migrationProfileForm.controls.newTargetProfile.updateValueAndValidity(),this.migrationProfileForm.controls.existingTargetProfile.updateValueAndValidity()))}setValidators(e){if("text"===e){for(const o in this.migrationProfileForm.controls)this.migrationProfileForm.controls[o].clearValidators(),this.migrationProfileForm.controls[o].updateValueAndValidity();this.migrationProfileForm.get("shardMappingTable").controls.forEach(o=>{const r=o,a=r.get("logicalShardId"),s=r.get("dbName");a?.clearValidators(),a?.updateValueAndValidity(),s?.clearValidators(),s?.updateValueAndValidity()}),this.migrationProfileForm.controls.textInput.setValidators([ee.required]),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}else this.onItemChange("new","source"),this.onItemChange("new","target"),this.migrationProfileForm.controls.textInput.clearValidators(),this.migrationProfileForm.controls.textInput.updateValueAndValidity()}saveDetailsAndReset(){this.handleConnConfigsFromForm();let e=this.formBuilder.group({logicalShardId:["",ee.required],dbName:["",ee.required]});this.inputValue=this.prefix+"-"+this.randomString(4)+"-"+this.randomString(4),this.migrationProfileForm=this.formBuilder.group({inputType:["form",ee.required],textInput:[],sourceProfileOption:[this.selectedSourceProfileOption],targetProfileOption:[this.selectedTargetProfileOption],newSourceProfile:["",[ee.pattern("^[a-z][a-z0-9-]{0,59}$")]],existingSourceProfile:[],newTargetProfile:["",ee.pattern("^[a-z][a-z0-9-]{0,59}$")],existingTargetProfile:[],host:[],user:[],port:[],password:[],dataShardId:[this.inputValue],shardMappingTable:this.formBuilder.array([e])}),this.testSuccess=!1,this.verifyJson=!1,this.createSrcConnSuccess=!1,this.createTgtConnSuccess=!1,this.snack.openSnackBar("Shard configured successfully, please configure the next","Close",5)}randomString(e){for(var o="",r=0;r{localStorage.setItem(he.IsSourceConnectionProfileSet,"true"),localStorage.setItem(he.IsTargetConnectionProfileSet,"true"),localStorage.setItem(he.NumberOfShards,this.determineTotalLogicalShardsConfigured().toString()),localStorage.setItem(he.NumberOfInstances,this.migrationProfile.shardConfigurationDataflow.dataShards.length.toString()),this.dialogRef.close()},error:o=>{this.errorMsg=o.error}})}determineTotalLogicalShardsConfigured(){let e=0;return this.migrationProfile.shardConfigurationDataflow.dataShards.forEach(i=>{e+=i.databases.length}),e}handleConnConfigsFromForm(){let e=this.migrationProfileForm.value;this.dataShardIdList.push(e.dataShardId),this.definedSrcConnProfileList.push("new"===this.selectedSourceProfileOption?{name:e.newSourceProfile,location:this.region}:{name:e.existingSourceProfile,location:this.region}),this.definedTgtConnProfileList.push("new"===this.selectedTargetProfileOption?{name:e.newTargetProfile,location:this.region}:{name:e.existingTargetProfile,location:this.region});let i=[];for(let o of this.shardMappingTable.controls)if(o instanceof ti){const r=o.value;i.push({dbName:r.dbName,databaseId:r.logicalShardId,refDataShardId:e.dataShardId})}this.shardIdToDBMappingTable.push(i),this.physicalShards++,this.logicalShards=this.logicalShards+i.length}determineFormValidity(){return!(!this.migrationProfileForm.valid||"new"===this.selectedSourceProfileOption&&!this.createSrcConnSuccess||"new"===this.selectedTargetProfileOption&&!this.createTgtConnSuccess||"text"===this.migrationProfileForm.value.inputType!==this.verifyJson)}determineFinishValidity(){return this.definedSrcConnProfileList.length>0||this.determineFormValidity()}determineConnectionProfileInfoValidity(){let e=this.migrationProfileForm.value;return null!=e.host&&null!=e.port&&null!=e.user&&null!=e.password&&null!=e.newSourceProfile}verifyTextJson(){this.verifyingJson=!0;let i,e=this.migrationProfileForm.value;try{i=JSON.parse(e.textInput)}catch(o){return o instanceof SyntaxError?(this.errorVerMsg=o.message,this.verifyJson=!1,void(this.verifyingJson=!1)):(this.errorVerMsg=`Unexpected error parsing json ${o}`,this.verifyJson=!1,void(this.verifyingJson=!1))}this.fetch.verifyJsonConfiguration(i).subscribe({next:()=>{this.verifyJson=!0,this.verifyingJson=!1},error:o=>{this.verifyJson=!1,this.verifyingJson=!1,this.errorVerMsg=o.message}})}createOrTestConnection(e,i){i?this.testingSourceConnection=!0:e?this.creatingSourceConnection=!0:this.creatingTargetConnection=!0;let r,o=this.migrationProfileForm.value;r=e?{Id:o.newSourceProfile,IsSource:!0,ValidateOnly:i,Host:o.host,Port:o.port,User:o.user,Password:o.password}:{Id:o.newTargetProfile,IsSource:!1,ValidateOnly:i},this.fetch.createConnectionProfile(r).subscribe({next:()=>{i?(this.testingSourceConnection=!1,this.testSuccess=!0):e?(this.createSrcConnSuccess=!0,this.errorSrcMsg="",this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!0,this.errorTgtMsg="",this.creatingTargetConnection=!1)},error:a=>{i?(this.testingSourceConnection=!1,this.testSuccess=!1,this.errorSrcMsg=a.error):e?(this.createSrcConnSuccess=!1,this.errorSrcMsg=a.error,this.creatingSourceConnection=!1):(this.createTgtConnSuccess=!1,this.errorTgtMsg=a.error,this.creatingTargetConnection=!1)}})}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(Dr),_(bn),_(mo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sharded-dataflow-migration-details-form"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:31,vars:13,consts:[["mat-dialog-content","",1,"connect-load-database-container"],[1,"conn-profile-form",3,"formGroup"],[1,"mat-h2","header-title"],[1,"top"],[1,"top-1"],["appearance","outline"],["formControlName","inputType",3,"selectionChange"],["inputType",""],[3,"value",4,"ngFor","ngForOf"],["class","top-2",4,"ngIf"],["class","textInput",4,"ngIf"],["class","failure",4,"ngIf"],[4,"ngIf"],["class","success","matTooltip","JSON Verification successful","matTooltipPosition","above",4,"ngIf"],[1,"last-btns"],["mat-button","","color","primary","mat-dialog-close",""],["mat-raised-button","","type","submit","color","accent",3,"disabled","click",4,"ngIf"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],[3,"value"],[1,"top-2"],[1,"textInput"],["appearance","outline",1,"json-input"],["name","textInput","formControlName","textInput","matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","5","cdkAutosizeMaxRows","20"],["autosize","cdkTextareaAutosize"],["href","https://cloud.google.com/datastream/docs/network-connectivity-options#ipallowlists","target","_blank"],["class","connection-form-container",4,"ngFor","ngForOf"],[1,"connection-form-container"],[1,"left-text"],["matTooltip","Copy",1,"icon","copy",3,"cdkCopyToClipboard"],[1,"failure"],["matTooltipPosition","above",1,"icon","error",3,"matTooltip"],[1,"spinner"],[3,"diameter"],[1,"spinner-small-text"],["matTooltip","JSON Verification successful","matTooltipPosition","above",1,"success"],["mat-raised-button","","type","button","color","primary",3,"disabled","click"],[1,"mat-h4","header-title"],[1,"source-radio-button-container"],["formControlName","sourceProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],["class","radio-button",3,"value","change",4,"ngFor","ngForOf"],["matTooltip","Logical Shard ID value will be used to populate the migration_shard_id column added as part of sharded database migration",1,"configure"],[1,"border"],["formArrayName","shardMappingTable"],[4,"ngFor","ngForOf"],[1,"table-buttons"],["mat-raised-button","","color","primary","type","button",3,"click"],[1,"target-radio-button-container"],["formControlName","targetProfileOption",1,"radio-button-container",3,"ngModel","ngModelChange"],[1,"radio-button",3,"value","change"],["formControlName","existingSourceProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","type","text","formControlName","dataShardId","required","true","readonly","",3,"value"],["matInput","","placeholder","Host","type","text","formControlName","host","required","true"],["matInput","","placeholder","User","type","text","formControlName","user","required","true"],["matInput","","placeholder","Port","type","text","formControlName","port","required","true"],["matInput","","placeholder","Password","type","password","formControlName","password","required","true"],["appearance","outline","hintLabel","Name can include lower case letters, numbers and hyphens. Must start with a letter."],["matInput","","placeholder","Connection profile name","type","text","formControlName","newSourceProfile","required","true"],["class","success","matTooltip","Test connection successful","matTooltipPosition","above",4,"ngIf"],["class","success","matTooltip","Profile creation successful","matTooltipPosition","above",4,"ngIf"],["mat-raised-button","","type","button","color","warn",3,"disabled","click"],["matTooltip","Test connection successful","matTooltipPosition","above",1,"success"],["matTooltip","Profile creation successful","matTooltipPosition","above",1,"success"],[1,"shard-mapping-form-row",3,"formGroupName"],["matInput","","formControlName","logicalShardId","placeholder","Enter Logical ShardID"],["matInput","","formControlName","dbName","placeholder","Enter Database Name"],[1,"delete-btn",3,"click"],["formControlName","existingTargetProfile","required","true","ng-value","selectedProfile",1,"input-field"],["matInput","","placeholder","Connection profile name","type","text","formControlName","newTargetProfile","required","true"],["mat-raised-button","","type","submit","color","accent",3,"disabled","click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"form",1)(2,"span",2),h(3,"Datastream Details"),l(),D(4,"br"),d(5,"b"),h(6,"Note: Please configure the database used for schema conversion, if you want Spanner migration tool to migrate data from it as well."),l(),d(7,"div",3),h(8,"` "),d(9,"div",4)(10,"mat-form-field",5)(11,"mat-label"),h(12,"Input Type"),l(),d(13,"mat-select",6,7),A("selectionChange",function(){ie(r);const s=Ft(14);return ne(o.setValidators(s.value))}),y(15,Ahe,2,2,"mat-option",8),l()()(),y(16,Phe,9,2,"div",9),l(),y(17,Rhe,6,0,"div",10)(18,Fhe,8,1,"div",10)(19,Lhe,5,1,"div",11)(20,Bhe,7,1,"div",12)(21,Vhe,2,0,"mat-icon",13)(22,jhe,3,1,"div",10)(23,ame,35,10,"div",10),d(24,"div",14)(25,"button",15),h(26,"CANCEL"),l(),y(27,sme,2,1,"button",16),d(28,"button",17),A("click",function(){return o.finalizeConnDetails()}),h(29," FINISH "),l(),y(30,cme,5,2,"div",11),l()()()}2&i&&(m(),f("formGroup",o.migrationProfileForm),m(14),f("ngForOf",o.inputOptionsList),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf",!o.verifyJson&&""!=o.errorVerMsg),m(),f("ngIf",o.verifyingJson),m(),f("ngIf",o.verifyJson),m(),f("ngIf","text"===o.migrationProfileForm.value.inputType),m(),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(4),f("ngIf","form"===o.migrationProfileForm.value.inputType),m(),f("disabled",!o.determineFinishValidity()),m(2),f("ngIf",""!=o.errorMsg))},dependencies:[rn,It,Yt,Mi,Gu,_O,O0,E0,Di,xi,qi,VA,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ju,eh,zn,So,vn,cg,lg,KC,sd],styles:[".icon[_ngcontent-%COMP%]{font-size:15px}.connection-form-container[_ngcontent-%COMP%]{display:block}.left-text[_ngcontent-%COMP%]{width:40%;display:inline-block}.shard-mapping-form-row[_ngcontent-%COMP%]{width:80%;margin-left:auto;margin-right:auto}.table-header[_ngcontent-%COMP%]{width:80%;margin:auto auto 10px;text-align:right;display:flex;align-items:center;justify-content:space-between}form[_ngcontent-%COMP%], .table-body[_ngcontent-%COMP%]{flex:auto;overflow-y:auto}.table-buttons[_ngcontent-%COMP%]{margin-left:70%}.radio-button-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin:15px 0;align-items:flex-start}.radio-button[_ngcontent-%COMP%]{margin:5px}.json-input[_ngcontent-%COMP%]{width:100%}.top[_ngcontent-%COMP%]{border:3px solid #fff;padding:20px}.top-1[_ngcontent-%COMP%]{width:60%;float:left}.top-2[_ngcontent-%COMP%]{width:40%;float:right;flex:auto}.last-btns[_ngcontent-%COMP%]{padding:20px;width:100%;float:left}"]})}return t})(),dme=(()=>{class t{constructor(e,i){this.formBuilder=e,this.dialogRef=i,this.gcsMetadataDetailsForm=this.formBuilder.group({gcsName:["",[ee.required,ee.pattern("^(?!.$)(?!..$)(?!.*[\r\n])[^\r\n]{1,1024}$")]],gcsRootPath:[""]}),this.gcsMetadataDetailsForm.setValue({gcsName:localStorage.getItem(yt.GcsMetadataName)||"",gcsRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""})}ngOnInit(){}updateGcsPathMetadataDetails(){let e=this.gcsMetadataDetailsForm.value;localStorage.setItem(yt.GcsMetadataName,e.gcsName||""),localStorage.setItem(yt.GcsMetadataRootPath,e.gcsRootPath||""),localStorage.setItem(he.IsGcsMetadataPathSet,"true"),this.dialogRef.close()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-gcs-metadata-details-form"]],decls:21,vars:2,consts:[["mat-dialog-content",""],[1,"gcs-metadata-detail-form",3,"formGroup"],["matTooltip","Specify existing or new GCS path to store metadata for migration",1,"configure"],["appearance","outline",1,"full-width"],["matInput","","placeholder","GCS Bucket Name","type","text","formControlName","gcsName","ng-value","TargetDetails.GcsMetadataName"],["matInput","","placeholder","Path Prefix","type","text","formControlName","gcsRootPath","ng-value","TargetDetails.GcsMetadataRootPath"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"GCS Metadata Storage"),d(4,"mat-icon",2),h(5," info"),l()(),d(6,"mat-form-field",3)(7,"mat-label"),h(8,"GCS Bucket Name"),l(),D(9,"input",4),l(),D(10,"br"),d(11,"mat-form-field",3)(12,"mat-label"),h(13,"Path Prefix"),l(),D(14,"input",5),l(),D(15,"br"),l(),d(16,"div",6)(17,"button",7),h(18,"Cancel"),l(),d(19,"button",8),A("click",function(){return o.updateGcsPathMetadataDetails()}),h(20," Save "),l()()()),2&i&&(m(),f("formGroup",o.gcsMetadataDetailsForm),m(18),f("disabled",!o.gcsMetadataDetailsForm.valid))},dependencies:[Yt,Mi,Di,xi,qi,_n,Ci,_i,Bi,wi,zi,zn,So,ko,vn]})}return t})();function ume(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions"),l())}function hme(t,n){1&t&&(d(0,"h2"),h(1,"Source and Target Database definitions (per shard)"),l())}function mme(t,n){1&t&&(d(0,"th",38),h(1,"Title"),l())}function pme(t,n){if(1&t&&(d(0,"td",39)(1,"b"),h(2),l()()),2&t){const e=n.$implicit;m(2),Pe(e.title)}}function fme(t,n){1&t&&(d(0,"th",38),h(1,"Source"),l())}function gme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.source)}}function _me(t,n){1&t&&(d(0,"th",38),h(1,"Destination"),l())}function bme(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.target)}}function vme(t,n){1&t&&D(0,"tr",40)}function yme(t,n){1&t&&D(0,"tr",41)}function Cme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),xe(" ",e," ")}}function wme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.name," ")}}function xme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Migration Type:"),l(),d(4,"mat-select",21),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.selectedMigrationType,o)||(r.selectedMigrationType=o),ne(o)}),A("selectionChange",function(){return ie(e),ne(C().refreshPrerequisites())}),y(5,wme,2,2,"mat-option",22),l()(),d(6,"mat-icon",23),h(7,"info"),l(),D(8,"br"),l()}if(2&t){const e=C();m(4),dn("ngModel",e.selectedMigrationType),m(),f("ngForOf",e.migrationTypes),m(),f("matTooltip",e.migrationTypesHelpText.get(e.selectedMigrationType))}}function Dme(t,n){if(1&t&&(d(0,"mat-option",42),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),xe(" ",e.displayName," ")}}function Sme(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-form-field",20)(2,"mat-label"),h(3,"Skip Foreign Key Creation:"),l(),d(4,"mat-select",43),un("ngModelChange",function(o){ie(e);const r=C();return kn(r.isForeignKeySkipped,o)||(r.isForeignKeySkipped=o),ne(o)}),y(5,Dme,2,2,"mat-option",22),l()()()}if(2&t){const e=C();m(4),dn("ngModel",e.isForeignKeySkipped),m(),f("ngForOf",e.skipForeignKeyResponseList)}}function kme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the application default credentials deployed on this machine have permissions to write to Spanner."),l()()())}function Mme(t,n){1&t&&(d(0,"div",44)(1,"p",26)(2,"span",27),h(3,"1"),l(),d(4,"span"),h(5,"Please ensure that the source is "),d(6,"a",45),h(7,"configured"),l(),h(8," for Datastream change data capture."),l()(),d(9,"p",26)(10,"span",27),h(11,"2"),l(),d(12,"span"),h(13,"Please ensure that Dataflow "),d(14,"a",46),h(15,"permissions"),l(),h(16," and "),d(17,"a",47),h(18,"networking"),l(),h(19," are correctly setup."),l()()())}function Tme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ime(t,n){if(1&t){const e=_e();d(0,"div")(1,"h3"),h(2,"Source database details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source database details"),l(),d(8,"span")(9,"button",29),A("click",function(){return ie(e),ne(C().openSourceDetailsForm())}),h(10," Configure "),d(11,"mat-icon",30),h(12,"edit"),l(),y(13,Tme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(9),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Eme(t,n){1&t&&(d(0,"mat-icon",49),h(1," check_circle "),l())}function Ome(t,n){if(1&t){const e=_e();d(0,"div")(1,"mat-card-title"),h(2,"Source databases details:"),l(),d(3,"p",26)(4,"span",27),h(5,"1"),l(),d(6,"span"),h(7,"Setup Source Connection details "),d(8,"mat-icon",50),h(9," info"),l()(),d(10,"span")(11,"button",29),A("click",function(){return ie(e),ne(C().openShardedBulkSourceDetailsForm())}),h(12," Configure "),d(13,"mat-icon",30),h(14,"edit"),l(),y(15,Eme,2,0,"mat-icon",48),l()()()()}if(2&t){const e=C();m(11),f("disabled",e.isMigrationInProgress),m(4),f("ngIf",e.isSourceDetailsSet)}}function Ame(t,n){1&t&&(d(0,"mat-icon",51),h(1," check_circle "),l())}function Pme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Rme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Configure Datastream "),d(5,"mat-icon",52),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openMigrationProfileForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Pme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Nme(t,n){1&t&&(d(0,"mat-icon",54),h(1," check_circle "),l())}function Fme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"2"),l(),d(3,"span"),h(4,"Setup source connection profile "),d(5,"mat-icon",55),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!0))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Nme,2,0,"mat-icon",53),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isSourceConnectionProfileSet)}}function Lme(t,n){1&t&&(d(0,"mat-icon",58),h(1," check_circle "),l())}function Bme(t,n){if(1&t){const e=_e();d(0,"p",26)(1,"span",27),h(2,"3"),l(),d(3,"span"),h(4,"Setup target connection profile "),d(5,"mat-icon",56),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openConnectionProfileForm(!1))}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Lme,2,0,"mat-icon",57),l()()()}if(2&t){const e=C();m(8),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isTargetConnectionProfileSet)}}function Vme(t,n){1&t&&(d(0,"span",27),h(1,"3"),l())}function jme(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function zme(t,n){1&t&&(d(0,"mat-icon",62),h(1," check_circle "),l())}function Hme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Vme,2,0,"span",59)(2,jme,2,0,"span",59),d(3,"span"),h(4,"Tune Datastream (Optional) "),d(5,"mat-icon",60),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneDatastreamForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,zme,2,0,"mat-icon",61),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDatastreamConfigurationSet)}}function Ume(t,n){1&t&&(d(0,"span",27),h(1,"4"),l())}function $me(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Gme(t,n){1&t&&(d(0,"mat-icon",65),h(1," check_circle "),l())}function qme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Ume,2,0,"span",59)(2,$me,2,0,"span",59),d(3,"span"),h(4,"Tune Cloud Storage (Optional) "),d(5,"mat-icon",63),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openTuneGcsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Gme,2,0,"mat-icon",64),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsConfigurationSet)}}function Wme(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function Kme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Zme(t,n){1&t&&(d(0,"mat-icon",68),h(1," check_circle "),l())}function Yme(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Wme,2,0,"span",59)(2,Kme,2,0,"span",59),d(3,"span"),h(4,"Tune Dataflow (Optional) "),d(5,"mat-icon",66),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openDataflowForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Zme,2,0,"mat-icon",67),l()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(),f("ngIf",!e.isSharded),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isDataflowConfigurationSet)}}function Qme(t,n){1&t&&(d(0,"span",27),h(1,"2"),l())}function Xme(t,n){1&t&&(d(0,"span",27),h(1,"6"),l())}function Jme(t,n){1&t&&(d(0,"mat-icon",71),h(1," check_circle "),l())}function epe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,Qme,2,0,"span",59)(2,Xme,2,0,"span",59),d(3,"span"),h(4,"GCS Metadata Path (Optional) "),d(5,"mat-icon",69),h(6," info"),l()(),d(7,"span")(8,"button",29),A("click",function(){return ie(e),ne(C().openGcsMetadataDetailsForm())}),h(9," Configure "),d(10,"mat-icon",30),h(11,"edit"),l(),y(12,Jme,2,0,"mat-icon",70),l()()()}if(2&t){const e=C();m(),f("ngIf","Schema"===e.selectedMigrationMode),m(),f("ngIf","Schema"!==e.selectedMigrationMode),m(6),f("disabled",e.isMigrationInProgress||!e.isTargetDetailSet),m(4),f("ngIf",e.isGcsMetadataDetailSet)}}function tpe(t,n){1&t&&(d(0,"span",27),h(1,"5"),l())}function ipe(t,n){if(1&t){const e=_e();d(0,"p",26),y(1,tpe,2,0,"span",59),d(2,"span"),h(3,"Download configuration as JSON "),d(4,"mat-icon",72),h(5,"info "),l()(),d(6,"span")(7,"button",29),A("click",function(){return ie(e),ne(C().downloadConfiguration())}),h(8," Download "),d(9,"mat-icon",73),h(10," download"),l()()()()}if(2&t){const e=C();m(),f("ngIf",e.isSharded),m(6),f("disabled",!e.isTargetDetailSet||!e.isTargetConnectionProfileSet)}}function npe(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Source Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Source Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Number of physical instances configured: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Number of logical shards configured: "),l(),h(24),l()()()()),2&t){const e=C();m(10),Pe(e.sourceDatabaseType),m(7),xe(" ",e.numberOfInstances,""),m(7),xe(" ",e.numberOfShards,"")}}function ope(t,n){if(1&t&&(d(0,"div",24)(1,"mat-card")(2,"mat-card-title"),h(3,"Configured Target Details"),l(),d(4,"p",26)(5,"span",27),h(6,"1"),l(),d(7,"span")(8,"b"),h(9,"Spanner Database: "),l(),h(10),l()(),d(11,"p",26)(12,"span",27),h(13,"2"),l(),d(14,"span")(15,"b"),h(16,"Spanner Dialect: "),l(),h(17),l()(),d(18,"p",26)(19,"span",27),h(20,"3"),l(),d(21,"span")(22,"b"),h(23,"Region: "),l(),h(24),l()(),d(25,"p",26)(26,"span",27),h(27,"4"),l(),d(28,"span")(29,"b"),h(30,"Spanner Instance: "),l(),h(31),l()()()()),2&t){const e=C();m(10),Pe(e.targetDetails.TargetDB),m(7),Pe(e.dialect),m(7),Pe(e.region),m(7),Cv("",e.instance," (Nodes: ",e.nodeCount,", Processing Units: ",e.processingUnits,")")}}function rpe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.schemaMigrationProgress),m(2),xe(" ",e.schemaProgressMessage,"")}}function ape(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.dataMigrationProgress),m(2),xe(" ",e.dataProgressMessage,"")}}function spe(t,n){if(1&t&&(d(0,"div",74),D(1,"br")(2,"mat-progress-bar",75),d(3,"span"),h(4),l()()),2&t){const e=C();m(2),f("value",e.foreignKeyUpdateProgress),m(2),xe(" ",e.foreignKeyProgressMessage,"")}}function cpe(t,n){1&t&&(d(0,"div"),D(1,"br"),d(2,"span",76),D(3,"mat-spinner",77),l(),d(4,"span",78),h(5,"Generating Resources"),l(),D(6,"br"),h(7," Note: Spanner migration tool is creating datastream and dataflow resources. Please look at the terminal logs to check the progress of resource creation. All created resources will be displayed here once they are generated. "),l()),2&t&&(m(3),f("diameter",20))}function lpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Aggregated Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.AggMonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.AggMonitoringDashboardName)}}function dpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"3"),l(),d(4,"span")(5,"b"),h(6,"Monitoring Dashboard: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.MonitoringDashboardUrl,qo),m(),Pe(e.resourcesGenerated.MonitoringDashboardName)}}function upe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"4"),l(),d(4,"span")(5,"b"),h(6,"Datastream job: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataStreamJobUrl,qo),m(),Pe(e.resourcesGenerated.DataStreamJobName)}}function hpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"p",26)(2,"span",27),h(3,"5"),l(),d(4,"span")(5,"b"),h(6,"Dataflow job: "),l(),d(7,"a",79),h(8),l()(),d(9,"span")(10,"button",80),A("click",function(){ie(e);const o=C(2);return ne(o.openGcloudPopup(o.resourcesGenerated.DataflowGcloudCmd))}),d(11,"mat-icon",81),h(12," code"),l()()()()()}if(2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.DataflowJobUrl,qo),m(),Pe(e.resourcesGenerated.DataflowJobName)}}function mpe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"6"),l(),d(4,"span")(5,"b"),h(6,"Pubsub topic: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubTopicUrl,qo),m(),Pe(e.resourcesGenerated.PubsubTopicName)}}function ppe(t,n){if(1&t&&(d(0,"span")(1,"p",26)(2,"span",27),h(3,"7"),l(),d(4,"span")(5,"b"),h(6,"Pubsub subscription: "),l(),d(7,"a",79),h(8),l()()()()),2&t){const e=C(2);m(7),f("href",e.resourcesGenerated.PubsubSubscriptionUrl,qo),m(),Pe(e.resourcesGenerated.PubsubSubscriptionName)}}function fpe(t,n){1&t&&(d(0,"th",38),h(1," Shard ID "),l())}function gpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.DataShardId," ")}}function _pe(t,n){1&t&&(d(0,"th",38),h(1," Resource Type "),l())}function bpe(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit,i=C(3);m(),xe(" ",i.resourceTypeToDisplayTest.get(e.ResourceType)," ")}}function vpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Name "),l())}function ype(t,n){if(1&t&&(d(0,"td",39),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.ResourceName," ")}}function Cpe(t,n){1&t&&(d(0,"th",38),h(1," Resource Link "),l())}function wpe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",80),A("click",function(){ie(e);const o=C().$implicit;return ne(C(3).openGcloudPopup(o.GcloudCmd))}),d(2,"mat-icon",81),h(3," code"),l()()()}}function xpe(t,n){if(1&t&&(d(0,"td",39)(1,"a",79),h(2),l(),y(3,wpe,4,0,"span",10),l()),2&t){const e=n.$implicit;m(),f("href",e.ResourceUrl,qo),m(),Pe(e.ResourceName),m(),f("ngIf","dataflow"==e.ResourceType)}}function Dpe(t,n){1&t&&D(0,"tr",40)}function Spe(t,n){1&t&&D(0,"tr",41)}function kpe(t,n){if(1&t&&(d(0,"span")(1,"h2"),h(2,"Shard Level Resources: "),l(),d(3,"div",82)(4,"table",83),me(5,84),y(6,fpe,2,0,"th",14)(7,gpe,2,1,"td",15),pe(),me(8,85),y(9,_pe,2,0,"th",14)(10,bpe,2,1,"td",15),pe(),me(11,86),y(12,vpe,2,0,"th",14)(13,ype,2,1,"td",15),pe(),me(14,87),y(15,Cpe,2,0,"th",14)(16,xpe,4,3,"td",15),pe(),y(17,Dpe,1,0,"tr",18)(18,Spe,1,0,"tr",19),l()()()),2&t){const e=C(2);m(4),f("dataSource",e.displayedResourcesDataSource),m(13),f("matHeaderRowDef",e.generatedResourcesColumns),m(),f("matRowDefColumns",e.generatedResourcesColumns)}}function Mpe(t,n){if(1&t&&(d(0,"div")(1,"h2"),h(2),l(),h(3,' Note: This resources displayed below can be looked upto at a later point in time in the "spannermigrationtool_metadata" database in your spanner instance using the migration jobId listed above. '),d(4,"div",24)(5,"mat-card")(6,"mat-card-title"),h(7,"Job Level Resources:"),l(),d(8,"p",26)(9,"span",27),h(10,"1"),l(),d(11,"span")(12,"b"),h(13,"Spanner Database: "),l(),d(14,"a",79),h(15),l()()(),d(16,"p",26)(17,"span",27),h(18,"2"),l(),d(19,"span")(20,"b"),h(21,"GCS bucket: "),l(),d(22,"a",79),h(23),l()()(),y(24,lpe,9,2,"span",10)(25,dpe,9,2,"span",10)(26,upe,9,2,"span",10)(27,hpe,13,2,"span",10)(28,mpe,9,2,"span",10)(29,ppe,9,2,"span",10),l()(),y(30,kpe,19,3,"span",10),l()),2&t){const e=C();m(2),xe("Migration resources generated for migration jobId: ",e.resourcesGenerated.MigrationJobId,""),m(12),f("href",e.resourcesGenerated.DatabaseUrl,qo),m(),Pe(e.resourcesGenerated.DatabaseName),m(7),f("href",e.resourcesGenerated.BucketUrl,qo),m(),Pe(e.resourcesGenerated.BucketName),m(),f("ngIf",""!==e.resourcesGenerated.AggMonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.MonitoringDashboardName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataStreamJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.DataflowJobName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubTopicName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf",""!==e.resourcesGenerated.PubsubSubscriptionName&&"lowdt"===e.selectedMigrationType&&!e.isSharded),m(),f("ngIf","lowdt"===e.selectedMigrationType&&e.isSharded)}}function Tpe(t,n){1&t&&(d(0,"div")(1,"b"),h(2,"Note: "),l(),h(3,"Spanner migration tool has orchestrated the migration successfully. For minimal downtime migrations, it is safe to close Spanner migration tool now without affecting the progress of the migration. The resources listed on this page can be viewed in the \"SMT_JOB\" table in the 'spannermigrationtool_metadata' database created in your Spanner instance after you close the Spanner migration tool. "),l())}function Ipe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",88),A("click",function(){return ie(e),ne(C().migrate())}),h(2,"Migrate"),l()()}if(2&t){const e=C();m(),f("disabled",!(e.isTargetDetailSet&&"lowdt"===e.selectedMigrationType&&e.isSourceConnectionProfileSet&&e.isTargetConnectionProfileSet||e.isTargetDetailSet&&"bulk"===e.selectedMigrationType)||e.isMigrationInProgress)}}function Epe(t,n){if(1&t){const e=_e();d(0,"span")(1,"button",89),A("click",function(){return ie(e),ne(C().endMigration())}),h(2,"End Migration"),l()()}}const Ope=()=>[5,10,20],Ape=[{path:"",component:Xoe},{path:"source",component:kre,children:[{path:"",redirectTo:"/direct-connection",pathMatch:"full"},{path:"direct-connection",component:coe},{path:"load-dump",component:ure},{path:"load-session",component:gre}]},{path:"workspace",component:Yue},{path:"instruction",component:AN},{path:"prepare-migration",component:(()=>{class t{constructor(e,i,o,r,a){this.dialog=e,this.fetch=i,this.snack=o,this.data=r,this.sidenav=a,this.displayedColumns=["Title","Source","Destination"],this.dataSource=[],this.migrationModes=[],this.migrationTypes=[],this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isSourceDetailsSet=!1,this.isTargetDetailSet=!1,this.isForeignKeySkipped=!1,this.isMigrationDetailSet=!1,this.isStreamingSupported=!1,this.isGcsMetadataDetailSet=!1,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.hasForeignKeyUpdateStarted=!1,this.selectedMigrationMode=Kr.schemaAndData,this.connectionType=Jn.DirectConnect,this.selectedMigrationType=Hn.lowDowntimeMigration,this.isMigrationInProgress=!1,this.isLowDtMigrationRunning=!1,this.isResourceGenerated=!1,this.generatingResources=!1,this.errorMessage="",this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.foreignKeyProgressMessage="Foreign key update in progress...",this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.foreignKeyUpdateProgress=0,this.sourceDatabaseName="",this.sourceDatabaseType="",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.generatedResourcesColumns=["shardId","resourceType","resourceName","resourceUrl"],this.displayedResources=[],this.displayedResourcesDataSource=new uP(this.displayedResources),this.region="",this.instance="",this.dialect="",this.isSharded=!1,this.numberOfShards="0",this.numberOfInstances="0",this.nodeCount=0,this.processingUnits=0,this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)||""}},this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath"),customJarPath:localStorage.getItem("customJarPath"),customClassName:localStorage.getItem("customClassName"),customParameter:localStorage.getItem("customParameter")},this.spannerConfig={GCPProjectID:"",SpannerInstanceID:"",IsMetadataDbCreated:!1,IsConfigValid:!1},this.skipForeignKeyResponseList=[{value:!1,displayName:"No"},{value:!0,displayName:"Yes"}],this.migrationModesHelpText=new Map([["Schema","Migrates only the schema of the source database to the configured Spanner instance."],["Data","Migrates the data from the source database to the configured Spanner database. The configured database should already contain the schema."],["Schema And Data","Migrates both the schema and the data from the source database to Spanner."]]),this.migrationTypesHelpText=new Map([["bulk","Use the POC migration option when you want to migrate a sample of your data (<100GB) to do a Proof of Concept. It uses this machine's resources to copy data from the source database to Spanner"],["lowdt","Uses change data capture via Datastream to setup a continuous data replication pipeline from source to Spanner, using Dataflow jobs to perform the actual data migration."]]),this.resourceTypeToDisplayTest=new Map([["gcs","Cloud Storage Bucket"],["pubsub_sub","Pub/Sub subscription"],["pubsub_topic","Pub/Sub topic"],["datastream","Datastream Stream"],["dataflow","Dataflow Job"],["monitoring","Monitoring Dashboard"]])}refreshMigrationMode(){this.selectedMigrationMode!==Kr.schemaOnly&&this.isStreamingSupported&&this.connectionType!==Jn.DumpFile?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}])}refreshPrerequisites(){this.isSourceConnectionProfileSet=!1,this.isTargetConnectionProfileSet=!1,this.isTargetDetailSet=!1,this.isDatastreamConfigurationSet=!1,this.isGcsConfigurationSet=!1,this.isDataflowConfigurationSet=!1,this.isGcsMetadataDetailSet=!1,this.refreshMigrationMode()}ngOnInit(){this.initializeFromLocalStorage(),this.data.config.subscribe(e=>{this.spannerConfig=e}),this.convObj=this.data.conv.subscribe(e=>{this.conv=e}),localStorage.setItem("vpcHostProjectId",this.spannerConfig.GCPProjectID),this.fetch.getSourceDestinationSummary().subscribe({next:e=>{this.connectionType=e.ConnectionType,this.dataSource=[{title:"Database Type",source:e.DatabaseType,target:"Spanner"},{title:"Number of tables",source:e.SourceTableCount,target:e.SpannerTableCount},{title:"Number of indexes",source:e.SourceIndexCount,target:e.SpannerIndexCount}],this.sourceDatabaseType=e.DatabaseType,this.region=e.Region,this.instance=e.Instance,this.dialect=e.Dialect,this.isSharded=e.IsSharded,this.processingUnits=e.ProcessingUnits,this.nodeCount=e.NodeCount,(e.DatabaseType==ir.MySQL.toLowerCase()||e.DatabaseType==ir.Oracle.toLowerCase()||e.DatabaseType==ir.Postgres.toLowerCase())&&(this.isStreamingSupported=!0),this.isStreamingSupported?this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration},{name:"Minimal downtime Migration",value:Hn.lowDowntimeMigration}]:(this.selectedMigrationType=Hn.bulkMigration,this.migrationTypes=[{name:"POC Migration",value:Hn.bulkMigration}]),this.sourceDatabaseName=e.SourceDatabaseName,this.migrationModes=[Kr.schemaOnly,Kr.dataOnly,Kr.schemaAndData]},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}initializeFromLocalStorage(){null!=localStorage.getItem(he.MigrationMode)&&(this.selectedMigrationMode=localStorage.getItem(he.MigrationMode)),null!=localStorage.getItem(he.MigrationType)&&(this.selectedMigrationType=localStorage.getItem(he.MigrationType)),null!=localStorage.getItem(he.isForeignKeySkipped)&&(this.isForeignKeySkipped="true"===localStorage.getItem(he.isForeignKeySkipped)),null!=localStorage.getItem(he.IsMigrationInProgress)&&(this.isMigrationInProgress="true"===localStorage.getItem(he.IsMigrationInProgress),this.subscribeMigrationProgress()),null!=localStorage.getItem(he.IsTargetDetailSet)&&(this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet)),null!=localStorage.getItem(he.IsSourceConnectionProfileSet)&&(this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet)),null!=localStorage.getItem("isDatastreamConfigSet")&&(this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet")),null!=localStorage.getItem("isGcsConfigSet")&&(this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet")),null!=localStorage.getItem("isDataflowConfigSet")&&(this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet")),null!=localStorage.getItem(he.IsGcsMetadataPathSet)&&(this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet)),null!=localStorage.getItem(he.IsTargetConnectionProfileSet)&&(this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet)),null!=localStorage.getItem(he.IsSourceDetailsSet)&&(this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)),null!=localStorage.getItem(he.IsMigrationDetailSet)&&(this.isMigrationDetailSet="true"===localStorage.getItem(he.IsMigrationDetailSet)),null!=localStorage.getItem(he.HasSchemaMigrationStarted)&&(this.hasSchemaMigrationStarted="true"===localStorage.getItem(he.HasSchemaMigrationStarted)),null!=localStorage.getItem(he.HasDataMigrationStarted)&&(this.hasDataMigrationStarted="true"===localStorage.getItem(he.HasDataMigrationStarted)),null!=localStorage.getItem(he.DataMigrationProgress)&&(this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))),null!=localStorage.getItem(he.SchemaMigrationProgress)&&(this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress))),null!=localStorage.getItem(he.DataProgressMessage)&&(this.dataProgressMessage=localStorage.getItem(he.DataProgressMessage)),null!=localStorage.getItem(he.SchemaProgressMessage)&&(this.schemaProgressMessage=localStorage.getItem(he.SchemaProgressMessage)),null!=localStorage.getItem(he.ForeignKeyProgressMessage)&&(this.foreignKeyProgressMessage=localStorage.getItem(he.ForeignKeyProgressMessage)),null!=localStorage.getItem(he.ForeignKeyUpdateProgress)&&(this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))),null!=localStorage.getItem(he.HasForeignKeyUpdateStarted)&&(this.hasForeignKeyUpdateStarted="true"===localStorage.getItem(he.HasForeignKeyUpdateStarted)),null!=localStorage.getItem(he.GeneratingResources)&&(this.generatingResources="true"===localStorage.getItem(he.GeneratingResources)),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))}clearLocalStorage(){localStorage.removeItem(he.MigrationMode),localStorage.removeItem(he.MigrationType),localStorage.removeItem(he.IsTargetDetailSet),localStorage.removeItem(he.IsGcsMetadataPathSet),localStorage.removeItem(he.isForeignKeySkipped),localStorage.removeItem(he.IsSourceConnectionProfileSet),localStorage.removeItem(he.IsTargetConnectionProfileSet),localStorage.removeItem(he.IsSourceDetailsSet),localStorage.removeItem("isDatastreamConfigSet"),localStorage.removeItem("maxConcurrentBackfillTasks"),localStorage.removeItem("maxConcurrentCdcTasks"),localStorage.removeItem("isGcsConfigSet"),localStorage.removeItem("ttlInDays"),localStorage.removeItem("ttlInDaysSet"),localStorage.removeItem("isDataflowConfigSet"),localStorage.removeItem("network"),localStorage.removeItem("subnetwork"),localStorage.removeItem("maxWorkers"),localStorage.removeItem("numWorkers"),localStorage.removeItem("serviceAccountEmail"),localStorage.removeItem("vpcHostProjectId"),localStorage.removeItem("machineType"),localStorage.removeItem("additionalUserLabels"),localStorage.removeItem("kmsKeyName"),localStorage.removeItem("dataflowProjectId"),localStorage.removeItem("dataflowLocation"),localStorage.removeItem("gcsTemplatePath"),localStorage.removeItem(he.IsMigrationInProgress),localStorage.removeItem(he.HasSchemaMigrationStarted),localStorage.removeItem(he.HasDataMigrationStarted),localStorage.removeItem(he.DataMigrationProgress),localStorage.removeItem(he.SchemaMigrationProgress),localStorage.removeItem(he.DataProgressMessage),localStorage.removeItem(he.SchemaProgressMessage),localStorage.removeItem(he.ForeignKeyProgressMessage),localStorage.removeItem(he.ForeignKeyUpdateProgress),localStorage.removeItem(he.HasForeignKeyUpdateStarted),localStorage.removeItem(he.GeneratingResources),localStorage.removeItem(he.NumberOfShards),localStorage.removeItem(he.NumberOfInstances)}openConnectionProfileForm(e){this.dialog.open(che,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{IsSource:e,SourceDatabaseType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openMigrationProfileForm(){this.dialog.open(lme,{width:"30vw",minWidth:"1200px",maxWidth:"1600px",data:{IsSource:!1,SourceDatabaseType:this.sourceDatabaseType,Region:this.region}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances)),this.isSourceConnectionProfileSet="true"===localStorage.getItem(he.IsSourceConnectionProfileSet),this.isTargetConnectionProfileSet="true"===localStorage.getItem(he.IsTargetConnectionProfileSet),this.isTargetDetailSet&&this.isSourceConnectionProfileSet&&this.isTargetConnectionProfileSet&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcloudPopup(e){this.dialog.open(She,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:e})}openTuneDatastreamForm(){this.dialog.open(whe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:{sourceType:this.sourceDatabaseType}}).afterClosed().subscribe(()=>{this.datastreamConfig={maxConcurrentBackfillTasks:localStorage.getItem("maxConcurrentBackfillTasks"),maxConcurrentCdcTasks:localStorage.getItem("maxConcurrentCdcTasks")},this.isDatastreamConfigurationSet="true"===localStorage.getItem("isDatastreamConfigSet"),this.isSharded&&this.fetch.setDatastreamDetailsForShardedMigrations(this.datastreamConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openTuneGcsForm(){this.dialog.open(Dhe,{width:"4000px",minWidth:"400px",maxWidth:"500px"}).afterClosed().subscribe(()=>{this.gcsConfig={ttlInDays:localStorage.getItem("ttlInDays"),ttlInDaysSet:"true"===localStorage.getItem("ttlInDaysSet")},this.isGcsConfigurationSet="true"===localStorage.getItem("isGcsConfigSet"),this.isSharded&&this.fetch.setGcsDetailsForShardedMigrations(this.gcsConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}openDataflowForm(){this.dialog.open(yhe,{width:"4000px",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(()=>{this.dataflowConfig={network:localStorage.getItem("network"),subnetwork:localStorage.getItem("subnetwork"),hostProjectId:localStorage.getItem("vpcHostProjectId"),maxWorkers:localStorage.getItem("maxWorkers"),numWorkers:localStorage.getItem("numWorkers"),serviceAccountEmail:localStorage.getItem("serviceAccountEmail"),machineType:localStorage.getItem("machineType"),additionalUserLabels:localStorage.getItem("additionalUserLabels"),kmsKeyName:localStorage.getItem("kmsKeyName"),projectId:localStorage.getItem("dataflowProjectId"),location:localStorage.getItem("dataflowLocation"),gcsTemplatePath:localStorage.getItem("gcsTemplatePath"),customJarPath:localStorage.getItem("customJarPath"),customClassName:localStorage.getItem("customClassName"),customParameter:localStorage.getItem("customParameter")},this.isDataflowConfigurationSet="true"===localStorage.getItem("isDataflowConfigSet"),this.isSharded&&this.fetch.setDataflowDetailsForShardedMigrations(this.dataflowConfig).subscribe({next:()=>{},error:i=>{this.snack.openSnackBar(i.error,"Close")}})})}endMigration(){this.dialog.open(vhe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{SpannerDatabaseName:this.resourcesGenerated.DatabaseName,SpannerDatabaseUrl:this.resourcesGenerated.DatabaseUrl,SourceDatabaseType:this.sourceDatabaseType,SourceDatabaseName:this.sourceDatabaseName}}).afterClosed().subscribe()}openSourceDetailsForm(){this.dialog.open(_he,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.sourceDatabaseType}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet)})}openShardedBulkSourceDetailsForm(){this.dialog.open(Ohe,{width:"30vw",minWidth:"400px",maxWidth:"550px",data:{sourceDatabaseEngine:this.sourceDatabaseType,isRestoredSession:this.connectionType}}).afterClosed().subscribe(()=>{this.isSourceDetailsSet="true"===localStorage.getItem(he.IsSourceDetailsSet),null!=localStorage.getItem(he.NumberOfShards)&&(this.numberOfShards=localStorage.getItem(he.NumberOfShards)),null!=localStorage.getItem(he.NumberOfInstances)&&(this.numberOfInstances=localStorage.getItem(he.NumberOfInstances))})}openTargetDetailsForm(){this.dialog.open(Que,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:{Region:this.region,Instance:this.instance,Dialect:this.dialect}}).afterClosed().subscribe(()=>{this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}},this.isTargetDetailSet="true"===localStorage.getItem(he.IsTargetDetailSet),(this.isSourceDetailsSet&&this.isTargetDetailSet&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode!==Kr.schemaOnly||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType!==Jn.SessionFile||this.isTargetDetailSet&&this.selectedMigrationType==Hn.bulkMigration&&this.connectionType===Jn.SessionFile&&this.selectedMigrationMode===Kr.schemaOnly)&&(localStorage.setItem(he.IsMigrationDetailSet,"true"),this.isMigrationDetailSet=!0)})}openGcsMetadataDetailsForm(){this.dialog.open(dme,eoe).afterClosed().subscribe(()=>{this.isGcsMetadataDetailSet="true"===localStorage.getItem(he.IsGcsMetadataPathSet),this.targetDetails={TargetDB:localStorage.getItem(yt.TargetDB),SourceConnProfile:localStorage.getItem(yt.SourceConnProfile),TargetConnProfile:localStorage.getItem(yt.TargetConnProfile),ReplicationSlot:localStorage.getItem(yt.ReplicationSlot),Publication:localStorage.getItem(yt.Publication),GcsMetadataPath:{GcsBucketName:localStorage.getItem(yt.GcsMetadataName),GcsBucketRootPath:localStorage.getItem(yt.GcsMetadataRootPath)}}})}migrate(){this.resetValues(),this.fetch.migrate({TargetDetails:this.targetDetails,DatastreamConfig:this.datastreamConfig,GcsConfig:this.gcsConfig,DataflowConfig:this.dataflowConfig,IsSharded:this.isSharded,MigrationType:this.selectedMigrationType,MigrationMode:this.selectedMigrationMode,skipForeignKeys:this.isForeignKeySkipped}).subscribe({next:()=>{this.selectedMigrationMode==Kr.dataOnly?this.selectedMigrationType==Hn.bulkMigration?(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())):(this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close")):(this.hasSchemaMigrationStarted=!0,localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString())),this.snack.openSnackBar("Migration started successfully","Close",5),this.subscribeMigrationProgress()},error:i=>{this.snack.openSnackBar(i.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.hasDataMigrationStarted=!1,this.hasSchemaMigrationStarted=!1,this.clearLocalStorage()}})}subscribeMigrationProgress(){var e=!1;this.subscription=ON(5e3).subscribe(i=>{this.fetch.getProgress().subscribe({next:o=>{""==o.ErrorMessage?o.ProgressStatus==rd.SchemaMigrationComplete?(localStorage.setItem(he.SchemaMigrationProgress,"100"),this.schemaMigrationProgress=parseInt(localStorage.getItem(he.SchemaMigrationProgress)),this.selectedMigrationMode==Kr.schemaOnly?this.markMigrationComplete():this.selectedMigrationType==Hn.lowDowntimeMigration?(this.markSchemaMigrationComplete(),this.generatingResources=!0,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),e||(this.snack.openSnackBar("Setting up dataflow and datastream jobs","Close"),e=!0)):(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()))):o.ProgressStatus==rd.DataMigrationComplete?(this.selectedMigrationType!=Hn.lowDowntimeMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.markMigrationComplete()):o.ProgressStatus==rd.DataWriteInProgress?(this.markSchemaMigrationComplete(),this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.DataMigrationProgress,o.Progress.toString()),this.dataMigrationProgress=parseInt(localStorage.getItem(he.DataMigrationProgress))):o.ProgressStatus==rd.ForeignKeyUpdateComplete?this.markMigrationComplete():o.ProgressStatus==rd.ForeignKeyUpdateInProgress&&(this.markSchemaMigrationComplete(),this.selectedMigrationType==Hn.bulkMigration&&(this.hasDataMigrationStarted=!0,localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString())),this.markForeignKeyUpdateInitiation(),this.dataMigrationProgress=100,localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,o.Progress.toString()),this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress)),this.generatingResources=!1,localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),this.fetchGeneratedResources()):(this.errorMessage=o.ErrorMessage,this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.snack.openSnackBarWithoutTimeout(this.errorMessage,"Close"),this.schemaProgressMessage="Schema migration cancelled!",this.dataProgressMessage="Data migration cancelled!",this.foreignKeyProgressMessage="Foreign key update cancelled!",this.generatingResources=!1,this.isLowDtMigrationRunning=!1,this.clearLocalStorage())},error:o=>{this.snack.openSnackBar(o.error,"Close"),this.isMigrationInProgress=!this.isMigrationInProgress,this.clearLocalStorage()}})})}markForeignKeyUpdateInitiation(){this.dataMigrationProgress=100,this.dataProgressMessage="Data migration completed successfully!",localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),this.hasForeignKeyUpdateStarted=!0,this.foreignKeyUpdateProgress=parseInt(localStorage.getItem(he.ForeignKeyUpdateProgress))}markSchemaMigrationComplete(){this.schemaMigrationProgress=100,this.schemaProgressMessage="Schema migration completed successfully!",localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage)}downloadConfiguration(){this.fetch.getSourceProfile().subscribe({next:e=>{this.configuredMigrationProfile=e;var i=document.createElement("a");let o=JSON.stringify(this.configuredMigrationProfile,null,"\t").replace(/9223372036854776000/g,"9223372036854775807");i.href="data:text/json;charset=utf-8,"+encodeURIComponent(o),i.download=localStorage.getItem(yt.TargetDB)+"-"+this.configuredMigrationProfile.configType+"-shardConfig.cfg",i.click()},error:e=>{this.snack.openSnackBar(e.error,"Close")}})}fetchGeneratedResources(){this.fetch.getGeneratedResources().subscribe({next:e=>{this.isResourceGenerated=!0,this.resourcesGenerated=e,this.resourcesGenerated.ShardToShardResourcesMap=new Map(Object.entries(this.resourcesGenerated.ShardToShardResourcesMap)),this.prepareGeneratedResourcesTableData(this.resourcesGenerated)},error:e=>{this.snack.openSnackBar(e.error,"Close")}}),this.selectedMigrationType===Hn.lowDowntimeMigration&&(this.isLowDtMigrationRunning=!0)}markMigrationComplete(){this.subscription.unsubscribe(),this.isMigrationInProgress=!this.isMigrationInProgress,this.dataProgressMessage="Data migration completed successfully!",this.schemaProgressMessage="Schema migration completed successfully!",this.schemaMigrationProgress=100,this.dataMigrationProgress=100,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key updated successfully!",this.fetchGeneratedResources(),this.clearLocalStorage(),this.refreshPrerequisites()}resetValues(){this.isMigrationInProgress=!this.isMigrationInProgress,this.hasSchemaMigrationStarted=!1,this.hasDataMigrationStarted=!1,this.generatingResources=!1,this.dataMigrationProgress=0,this.schemaMigrationProgress=0,this.schemaProgressMessage="Schema migration in progress...",this.dataProgressMessage="Data migration in progress...",this.isResourceGenerated=!1,this.hasForeignKeyUpdateStarted=!1,this.foreignKeyUpdateProgress=100,this.foreignKeyProgressMessage="Foreign key update in progress...",this.resourcesGenerated={MigrationJobId:"",DatabaseName:"",DatabaseUrl:"",BucketName:"",BucketUrl:"",DataStreamJobName:"",DataStreamJobUrl:"",DataflowJobName:"",DataflowJobUrl:"",PubsubTopicName:"",PubsubTopicUrl:"",PubsubSubscriptionName:"",PubsubSubscriptionUrl:"",MonitoringDashboardName:"",MonitoringDashboardUrl:"",AggMonitoringDashboardName:"",AggMonitoringDashboardUrl:"",DataflowGcloudCmd:"",ShardToShardResourcesMap:new Map},this.initializeLocalStorage()}initializeLocalStorage(){localStorage.setItem(he.MigrationMode,this.selectedMigrationMode),localStorage.setItem(he.MigrationType,this.selectedMigrationType),localStorage.setItem(he.isForeignKeySkipped,this.isForeignKeySkipped.toString()),localStorage.setItem(he.IsMigrationInProgress,this.isMigrationInProgress.toString()),localStorage.setItem(he.HasSchemaMigrationStarted,this.hasSchemaMigrationStarted.toString()),localStorage.setItem(he.HasDataMigrationStarted,this.hasDataMigrationStarted.toString()),localStorage.setItem(he.HasForeignKeyUpdateStarted,this.hasForeignKeyUpdateStarted.toString()),localStorage.setItem(he.DataMigrationProgress,this.dataMigrationProgress.toString()),localStorage.setItem(he.SchemaMigrationProgress,this.schemaMigrationProgress.toString()),localStorage.setItem(he.ForeignKeyUpdateProgress,this.foreignKeyUpdateProgress.toString()),localStorage.setItem(he.SchemaProgressMessage,this.schemaProgressMessage),localStorage.setItem(he.DataProgressMessage,this.dataProgressMessage),localStorage.setItem(he.ForeignKeyProgressMessage,this.foreignKeyProgressMessage),localStorage.setItem(he.IsTargetDetailSet,this.isTargetDetailSet.toString()),localStorage.setItem(he.GeneratingResources,this.generatingResources.toString()),localStorage.setItem(he.IsGcsMetadataPathSet,this.isGcsMetadataDetailSet.toString())}openSaveSessionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("saveSession"),this.sidenav.setSidenavDatabaseName(this.conv.DatabaseName)}downloadSession(){TN(this.conv)}prepareGeneratedResourcesTableData(e){for(let[i,o]of e.ShardToShardResourcesMap){for(let r of o)r.DataShardId=i;this.displayedResources.push(...o)}this.displayedResourcesDataSource=new uP(this.displayedResources),this.displayedResourcesDataSource.paginator=this.paginator}ngOnDestroy(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hr),_(En),_(nr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-prepare-migration"]],viewQuery:function(i,o){if(1&i&&vt(WC,5),2&i){let r;Oe(r=Ae())&&(o.paginator=r.first)}},decls:100,vars:41,consts:[[1,"header"],[1,"breadcrumb"],["mat-button","",1,"breadcrumb_source",3,"routerLink"],["mat-button","",1,"breadcrumb_workspace",3,"routerLink"],["mat-button","",1,"breadcrumb_prepare_migration",3,"routerLink"],[1,"header_action"],["mat-button","",3,"click"],["mat-button","","color","primary",3,"click"],[1,"body"],[1,"definition-container"],[4,"ngIf"],[1,"summary"],["id","summary-table","mat-table","",3,"dataSource"],["matColumnDef","Title"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Source"],["matColumnDef","Destination"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["appearance","outline"],[3,"ngModel","ngModelChange","selectionChange"],[3,"value",4,"ngFor","ngForOf"],[1,"configure",3,"matTooltip"],[1,"mat-card-class"],["class","static-prereqs",4,"ngIf"],[1,"point"],[1,"bullet"],["matTooltip","Configure the database in Spanner you want this migration to write to (up till now only GCP Project ID and Spanner Instance name have been configured.)",1,"configure"],["mat-button","","color","primary",3,"disabled","click"],["iconPositionEnd",""],["iconPositionEnd","","class","success","matTooltip","Target details configured","matTooltipPosition","above",4,"ngIf"],["class","point",4,"ngIf"],["class","mat-card-class",4,"ngIf"],["class","progress_bar",4,"ngIf"],[1,"mat-elevation-z8",3,"hidden"],["showFirstLastButtons","","aria-label","Select page",3,"pageSizeOptions"],[1,"migrate"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""],[3,"value"],[3,"ngModel","ngModelChange"],[1,"static-prereqs"],["href","https://cloud.google.com/datastream/docs/sources","target","_blank"],["href","https://cloud.google.com/dataflow/docs/concepts/security-and-permissions","target","_blank"],["href","https://cloud.google.com/dataflow/docs/guides/routes-firewall","target","_blank"],["iconPositionEnd","","class","success","matTooltip","Source details configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source details configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the connection info of all source shards to connect to and migrate data from.",1,"configure"],["iconPositionEnd","","matTooltip","Target details configured","matTooltipPosition","above",1,"success"],["matTooltip","Datastream will be used to capture change events from the source database. Please ensure you have met the pre-requistes required for setting up Datastream in your GCP environment. ",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Source connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Source connection profile configured","matTooltipPosition","above",1,"success"],["matTooltip","Configure the source connection profile to allow Datastream to read from your source database",1,"configure"],["matTooltip","Create a connection profile for datastream to write to a GCS bucket. Spanner migration tool will automatically create the bucket for you.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Target connection profile configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Target connection profile configured","matTooltipPosition","above",1,"success"],["class","bullet",4,"ngIf"],["matTooltip","Datastream will be used to stream CDC from source to GCS. This helps you configure the runtime environment for the Datastream job(s) e.g Parallel Backfill workers.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Datastream Tuned","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Datastream Tuned","matTooltipPosition","above",1,"success"],["matTooltip","Use this to tune the GCS bucket options where Datastream outputs to and Dataflow reads from.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Cloud Storage bucket Configured","matTooltipPosition","above",1,"success"],["matTooltip","Dataflow will be used to perform the actual migration of data from source to Spanner. This helps you configure the execution environment for Dataflow jobs e.g VPC.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","Dataflow Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","Dataflow Configured","matTooltipPosition","above",1,"success"],["matTooltip","Specify existing or new GCS path to store metadata for migration.",1,"configure"],["iconPositionEnd","","class","success","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",4,"ngIf"],["iconPositionEnd","","matTooltip","GCS Metadata Path Configured","matTooltipPosition","above",1,"success"],["matTooltip","Download the configuration done above as JSON.",1,"configure"],["iconPositionEnd","","matTooltip","Download configured shards as JSON","matTooltipPosition","above"],[1,"progress_bar"],["mode","determinate",3,"value"],[1,"spinner"],[3,"diameter"],[1,"spinner-text"],["target","_blank",3,"href"],["mat-button","",1,"configure",3,"click"],["matTooltip","Equivalent gCloud command","matTooltipPosition","above"],[1,"mat-elevation-z8"],["id","resources-table","mat-table","",3,"dataSource"],["matColumnDef","shardId"],["matColumnDef","resourceType"],["matColumnDef","resourceName"],["matColumnDef","resourceUrl"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"a",2),h(3,"Select Source"),l(),d(4,"span"),h(5,">"),l(),d(6,"a",3),h(7),l(),d(8,"span"),h(9,">"),l(),d(10,"a",4)(11,"b"),h(12,"Prepare Migration"),l()()(),d(13,"div",5)(14,"button",6),A("click",function(){return o.openSaveSessionSidenav()}),h(15," SAVE SESSION "),l(),d(16,"button",7),A("click",function(){return o.downloadSession()}),h(17,"DOWNLOAD SESSION FILE"),l()()(),D(18,"br"),d(19,"div",8)(20,"div",9),y(21,ume,2,0,"h2",10)(22,hme,2,0,"h2",10),d(23,"div",11)(24,"table",12),me(25,13),y(26,mme,2,0,"th",14)(27,pme,3,1,"td",15),pe(),me(28,16),y(29,fme,2,0,"th",14)(30,gme,2,1,"td",15),pe(),me(31,17),y(32,_me,2,0,"th",14)(33,bme,2,1,"td",15),pe(),y(34,vme,1,0,"tr",18)(35,yme,1,0,"tr",19),l()()(),D(36,"br"),d(37,"mat-form-field",20)(38,"mat-label"),h(39,"Migration Mode:"),l(),d(40,"mat-select",21),un("ngModelChange",function(a){return kn(o.selectedMigrationMode,a)||(o.selectedMigrationMode=a),a}),A("selectionChange",function(){return o.refreshPrerequisites()}),y(41,Cme,2,2,"mat-option",22),l()(),d(42,"mat-icon",23),h(43,"info"),l(),D(44,"br"),y(45,xme,9,3,"div",10)(46,Sme,6,2,"div",10),d(47,"div",24)(48,"mat-card")(49,"mat-card-title"),h(50,"Prerequisites"),l(),d(51,"mat-card-subtitle"),h(52,"Before we begin, please ensure you have done the following:"),l(),y(53,kme,6,0,"div",25)(54,Mme,20,0,"div",25),l()(),d(55,"div",24)(56,"mat-card"),y(57,Ime,14,2,"div",10)(58,Ome,16,2,"div",10),d(59,"div")(60,"mat-card-title"),h(61,"Target details:"),l(),d(62,"p",26)(63,"span",27),h(64,"1"),l(),d(65,"span"),h(66,"Configure Spanner Database "),d(67,"mat-icon",28),h(68," info"),l()(),d(69,"span")(70,"button",29),A("click",function(){return o.openTargetDetailsForm()}),h(71," Configure "),d(72,"mat-icon",30),h(73,"edit"),l(),y(74,Ame,2,0,"mat-icon",31),l()()(),y(75,Rme,13,2,"p",32)(76,Fme,13,2,"p",32)(77,Bme,13,2,"p",32)(78,Hme,13,4,"p",32)(79,qme,13,4,"p",32)(80,Yme,13,4,"p",32)(81,epe,13,4,"p",32)(82,ipe,11,2,"p",32),l()()(),y(83,npe,25,3,"div",33)(84,ope,32,6,"div",33)(85,rpe,5,2,"div",34)(86,ape,5,2,"div",34)(87,spe,5,2,"div",34)(88,cpe,8,1,"div",10),D(89,"br")(90,"br"),y(91,Mpe,31,12,"div",10),d(92,"div",35),D(93,"mat-paginator",36),l(),D(94,"br")(95,"br"),y(96,Tpe,4,0,"div",10),d(97,"div",37),y(98,Ipe,3,1,"span",10)(99,Epe,3,0,"span",10),l()()),2&i&&(m(2),f("routerLink","/"),m(4),f("routerLink","/workspace"),m(),xe("Configure Schema (",o.dialect," Dialect)"),m(3),f("routerLink","/prepare-migration"),m(11),f("ngIf",!o.isSharded),m(),f("ngIf",o.isSharded),m(2),f("dataSource",o.dataSource),m(10),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns),m(5),dn("ngModel",o.selectedMigrationMode),m(),f("ngForOf",o.migrationModes),m(),f("matTooltip",o.migrationModesHelpText.get(o.selectedMigrationMode)),m(3),f("ngIf","Schema"!=o.selectedMigrationMode),m(),f("ngIf",!("Schema"===o.selectedMigrationMode||"lowdt"===o.selectedMigrationType)),m(7),f("ngIf","bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(3),f("ngIf","sessionFile"===o.connectionType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf",o.isSharded&&"bulk"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(12),f("disabled",o.isMigrationInProgress||o.isLowDtMigrationRunning),m(4),f("ngIf",o.isTargetDetailSet),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&!o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode),m(),f("ngIf",o.isSharded),m(),f("ngIf","lowdt"===o.selectedMigrationType&&"Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf","Schema"!==o.selectedMigrationMode&&o.isSharded),m(),f("ngIf",o.isTargetDetailSet),m(),f("ngIf",o.hasSchemaMigrationStarted),m(),f("ngIf",o.hasDataMigrationStarted),m(),f("ngIf",o.hasForeignKeyUpdateStarted),m(),f("ngIf",o.generatingResources),m(3),f("ngIf",o.isResourceGenerated),m(),f("hidden",!(o.isResourceGenerated&&"lowdt"===o.selectedMigrationType&&o.isSharded)),m(),f("pageSizeOptions",No(40,Ope)),m(3),f("ngIf",o.isResourceGenerated&&"lowdt"===o.selectedMigrationType),m(2),f("ngIf",!o.isLowDtMigrationRunning),m(),f("ngIf",o.isLowDtMigrationRunning))},dependencies:[rn,It,qr,zE,Yt,Mi,Gu,O0,E0,vO,Di,xi,Xn,Tn,_i,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,WC,vn,Nl,sd],styles:[".header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_workspace[_ngcontent-%COMP%]{color:#0000008f}.header[_ngcontent-%COMP%] .breadcrumb[_ngcontent-%COMP%] .breadcrumb_prepare_migration[_ngcontent-%COMP%]{font-weight:400;font-size:14px}.definition-container[_ngcontent-%COMP%]{max-height:500px;overflow:auto}.definition-container[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-size:13px}.body[_ngcontent-%COMP%]{margin-left:20px;margin-right:20px}#summary-table[_ngcontent-%COMP%]{min-width:30%;max-width:50%}#summary-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:10%}.configure[_ngcontent-%COMP%]{color:#1967d2}.migrate[_ngcontent-%COMP%]{margin-top:10px}#resources-table[_ngcontent-%COMP%]{width:100%}"]})}return t})()},{path:"**",redirectTo:"/",pathMatch:"full"}];let Ppe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t});static#i=this.\u0275inj=st({imports:[wN.forRoot(Ape),wN]})}return t})(),Rpe=(()=>{class t{constructor(e,i,o,r,a){this.fetch=e,this.snack=i,this.dataService=o,this.data=r,this.dialogRef=a,this.errMessage="",this.updateConfigForm=new ti({GCPProjectID:new U(r.GCPProjectID,[ee.required]),SpannerInstanceID:new U(r.SpannerInstanceID,[ee.required])}),a.disableClose=!0}updateSpannerConfig(){let e=this.updateConfigForm.value;this.fetch.setSpannerConfig({GCPProjectID:e.GCPProjectID,SpannerInstanceID:e.SpannerInstanceID}).subscribe({next:o=>{o.IsMetadataDbCreated&&this.snack.openSnackBar("Metadata database not found. A new database has been created to store session metadata.","Close",5),this.snack.openSnackBar(o.IsConfigValid?"Spanner Config updated successfully":"Invalid Spanner Configuration","Close",5),this.dialogRef.close({...o}),this.dataService.updateIsOffline(),this.dataService.updateConfig(o),this.dataService.getAllSessions()},error:o=>{this.snack.openSnackBar(o.message,"Close")}})}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(nr),_(Hi),_(mo),_(bn))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-update-spanner-config-form"]],decls:20,vars:3,consts:[["mat-dialog-content",""],[1,"save-session-form",3,"formGroup"],["appearance","outline",1,"full-width"],["matInput","","placeholder","project id","type","text","formControlName","GCPProjectID","id","project-id"],["hintLabel","Min. 2 characters and Max. 64 characters","appearance","outline",1,"full-width"],["matInput","","placeholder","instance id","type","text","required","","minlength","2","maxlength","64","pattern","^[a-z]([-a-z0-9]*[a-z0-9])?","formControlName","SpannerInstanceID","id","instance-id"],["align","end"],["mat-dialog-actions","",1,"buttons-container"],["mat-button","","color","primary","mat-dialog-close",""],["id","save-button","mat-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"form",1)(2,"h2"),h(3,"Connect to Spanner"),l(),d(4,"mat-form-field",2)(5,"mat-label"),h(6,"Project ID"),l(),D(7,"input",3),l(),D(8,"br"),d(9,"mat-form-field",4)(10,"mat-label"),h(11,"Instance ID"),l(),D(12,"input",5),d(13,"mat-hint",6),h(14),l()()()(),d(15,"div",7)(16,"button",8),h(17,"CANCEL"),l(),d(18,"button",9),A("click",function(){return o.updateSpannerConfig()}),h(19," SAVE "),l()()),2&i&&(m(),f("formGroup",o.updateConfigForm),m(13),xe("",(null==o.updateConfigForm.value.SpannerInstanceID?null:o.updateConfigForm.value.SpannerInstanceID.length)||0,"/64"),m(4),f("disabled",!o.updateConfigForm.valid))},dependencies:[Yt,Di,xi,sc,qi,_n,Ci,_i,Bi,Do,X0,J0,eC,wi,zi,zn,So,ko],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%}.buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"]})}return t})();function Npe(t,n){1&t&&(d(0,"mat-icon",11),h(1," warning "),l())}function Fpe(t,n){1&t&&(d(0,"mat-icon",12),h(1," check_circle "),l())}function Lpe(t,n){1&t&&(d(0,"mat-icon",13),h(1," warning "),l())}function Bpe(t,n){1&t&&(d(0,"div")(1,"span",null,14),h(3,"Spanner database is not configured, click on edit button to configure "),l()())}function Vpe(t,n){if(1&t&&(d(0,"div")(1,"span",15)(2,"b"),h(3,"Project Id: "),l(),h(4),l(),d(5,"span",16)(6,"b"),h(7,"Spanner Instance Id: "),l(),h(8),l()()),2&t){const e=C();m(4),Pe(e.spannerConfig.GCPProjectID),m(4),Pe(e.spannerConfig.SpannerInstanceID)}}let jpe=(()=>{class t{constructor(e,i,o,r,a){this.data=e,this.dialog=i,this.sidenav=o,this.clickEvent=r,this.loaderService=a,this.isOfflineStatus=!1,this.spannerConfig={GCPProjectID:"",SpannerInstanceID:""}}ngOnInit(){this.data.config.subscribe(e=>{this.spannerConfig=e}),this.data.isOffline.subscribe({next:e=>{this.isOfflineStatus=e}}),this.clickEvent.spannerConfig.subscribe(e=>{e&&this.openEditForm()})}openEditForm(){this.dialog.open(Rpe,{width:"30vw",minWidth:"400px",maxWidth:"500px",data:this.spannerConfig}).afterClosed().subscribe(i=>{i&&(this.spannerConfig=i)})}showWarning(){return!this.spannerConfig.GCPProjectID&&!this.spannerConfig.SpannerInstanceID}openInstructionSidenav(){this.sidenav.openSidenav(),this.sidenav.setSidenavComponent("instruction")}openUserGuide(){window.open("https://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/SpannerMigrationToolUIUserGuide.pdf","_blank")}stopLoading(){this.loaderService.stopLoader(),this.clickEvent.cancelDbLoading(),this.clickEvent.closeDatabaseLoader()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Hi),_(Hr),_(eo),_(or),_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-header"]],decls:16,vars:6,consts:[["color","secondry",1,"header-container"],[1,"pointer",3,"routerLink","click"],[1,"menu-spacer"],[1,"right_container"],[1,"spanner_config"],["class","icon warning","matTooltip","Invalid spanner configuration. Working in offline mode",4,"ngIf"],["id","check-icon","class","icon success","matTooltip","Valid spanner configuration.",4,"ngIf"],["class","icon warning","matTooltip","Spanner configuration has not been set.",4,"ngIf"],[4,"ngIf"],["id","edit-icon","matTooltip","Edit Settings",1,"cursor-pointer",3,"click"],["mat-icon-button","","matTooltip","Instruction",1,"example-icon","favorite-icon",3,"click"],["matTooltip","Invalid spanner configuration. Working in offline mode",1,"icon","warning"],["id","check-icon","matTooltip","Valid spanner configuration.",1,"icon","success"],["matTooltip","Spanner configuration has not been set.",1,"icon","warning"],["name",""],[1,"pid"],[1,"iid"]],template:function(i,o){1&i&&(d(0,"mat-toolbar",0)(1,"span",1),A("click",function(){return o.stopLoading()}),h(2," Spanner migration tool"),l(),D(3,"span",2),d(4,"div",3)(5,"div",4),y(6,Npe,2,0,"mat-icon",5)(7,Fpe,2,0,"mat-icon",6)(8,Lpe,2,0,"mat-icon",7)(9,Bpe,4,0,"div",8)(10,Vpe,9,2,"div",8),d(11,"mat-icon",9),A("click",function(){return o.openEditForm()}),h(12,"edit"),l()(),d(13,"button",10),A("click",function(){return o.openUserGuide()}),d(14,"mat-icon"),h(15,"help"),l()()()()),2&i&&(m(),f("routerLink","/"),m(5),f("ngIf",o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",!o.isOfflineStatus&&!o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",o.showWarning()),m(),f("ngIf",!o.showWarning()))},dependencies:[It,qr,Aq,ba,Mi,vn],styles:[".header-container[_ngcontent-%COMP%]{padding:0 20px}.menu-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.right_container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%]{margin:0 15px 0 0;display:flex;align-items:center;border-radius:5px;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:2px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px;font-weight:300;padding:0 10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pid[_ngcontent-%COMP%]{margin-right:10px}.right_container[_ngcontent-%COMP%] .spanner_config[_ngcontent-%COMP%] .pointer[_ngcontent-%COMP%]{cursor:pointer}.cursor-pointer[_ngcontent-%COMP%]{color:#3367d6}"]})}return t})();function zpe(t,n){1&t&&(d(0,"div",1),D(1,"mat-progress-bar",2),l())}let Hpe=(()=>{class t{constructor(e){this.loaderService=e,this.showProgress=!0}ngOnInit(){this.loaderService.isLoading.subscribe(e=>{this.showProgress=e})}static#e=this.\u0275fac=function(i){return new(i||t)(_(Mg))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-loader"]],decls:1,vars:1,consts:[["class","progress-bar-wrapper",4,"ngIf"],[1,"progress-bar-wrapper"],["mode","indeterminate","value","40"]],template:function(i,o){1&i&&y(0,zpe,2,0,"div",0),2&i&&f("ngIf",o.showProgress)},dependencies:[It,vO],styles:[".progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%]{height:2px}"]})}return t})();function Upe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function $pe(t,n){if(1&t&&(d(0,"mat-option",12),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function Gpe(t,n){if(1&t){const e=_e();d(0,"button",20),A("click",function(){ie(e);const o=C().index;return ne(C().removeColumnForm(o))}),d(1,"mat-icon"),h(2,"remove"),l(),d(3,"span"),h(4,"REMOVE COLUMN"),l()()}}function qpe(t,n){if(1&t){const e=_e();me(0),d(1,"mat-card",13)(2,"div",14)(3,"mat-form-field",1)(4,"mat-label"),h(5,"Column Name"),l(),d(6,"mat-select",15),A("selectionChange",function(){return ie(e),ne(C().selectedColumnChange())}),y(7,$pe,2,2,"mat-option",3),l()(),d(8,"mat-form-field",1)(9,"mat-label"),h(10,"Sort"),l(),d(11,"mat-select",16)(12,"mat-option",17),h(13,"Ascending"),l(),d(14,"mat-option",18),h(15,"Descending"),l()()()(),y(16,Gpe,5,0,"button",19),l(),pe()}if(2&t){const e=n.index,i=C();m(2),f("formGroupName",e),m(5),f("ngForOf",i.addColumnsList[e]),m(9),f("ngIf",!i.viewRuleFlag)}}function Wpe(t,n){if(1&t){const e=_e();d(0,"button",21),A("click",function(){return ie(e),ne(C().addNewColumnForm())}),d(1,"mat-icon"),h(2,"add"),l(),d(3,"span"),h(4,"ADD COLUMN"),l()()}}function Kpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",22),A("click",function(){return ie(e),ne(C().addIndex())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addIndexForm.valid&&e.ruleNameValid&&e.ColsArray.controls.length>0))}}function Zpe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",23),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2," DELETE RULE "),l()()}}let Ype=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.tableNames=[],this.totalColumns=[],this.addColumnsList=[],this.commonColumns=[],this.viewRuleData={},this.viewRuleFlag=!1,this.conv={},this.ruleId="",this.addIndexForm=this.fb.group({tableName:["",ee.required],indexName:["",[ee.required,ee.pattern("^[A-Za-z][A-Za-z0-9_]{0,127}$")]],ColsArray:this.fb.array([])})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name)}}),this.sidenav.sidenavAddIndexTable.subscribe({next:e=>{this.addIndexForm.controls.tableName.setValue(e),""!==e&&this.selectedTableChange(e)}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.viewRuleFlag&&this.getRuleData(this.viewRuleData)})})}getRuleData(e){this.ruleId=e?.Id;let i=this.conv.SpSchema[e?.Data?.TableId]?.Name;this.addIndexForm.controls.tableName.setValue(i),this.addIndexForm.controls.indexName.setValue(e?.Data?.Name),this.selectedTableChange(i),this.setColArraysForViewRules(e?.Data?.TableId,e?.Data?.Keys),this.addIndexForm.disable()}setColArraysForViewRules(e,i){if(this.ColsArray.clear(),i)for(let o=0;oo.ColDefs[r].Name)}this.ColsArray.clear(),this.commonColumns=[],this.addColumnsList=[],this.updateCommonColumns()}addNewColumnForm(){let e=this.fb.group({columnName:["",ee.required],sort:["",ee.required]});this.ColsArray.push(e),this.updateCommonColumns(),this.addColumnsList.push([...this.commonColumns])}selectedColumnChange(){this.updateCommonColumns(),this.addColumnsList=this.addColumnsList.map((e,i)=>{const o=[...this.commonColumns];return""!==this.ColsArray.value[i].columnName&&o.push(this.ColsArray.value[i].columnName),o})}updateCommonColumns(){this.commonColumns=this.totalColumns.filter(e=>{let i=!0;return this.ColsArray.value.forEach(o=>{o.columnName===e&&(i=!1)}),i})}removeColumnForm(e){this.ColsArray.removeAt(e),this.addColumnsList=this.addColumnsList.filter((i,o)=>o!==e),this.selectedColumnChange()}addIndex(){let e=this.addIndexForm.value,i=[],o=this.conversion.getTableIdFromSpName(e.tableName,this.conv);i.push({Name:e.indexName,TableId:o,Unique:!1,Keys:e.ColsArray.map((r,a)=>({ColId:this.conversion.getColIdFromSpannerColName(r.columnName,o,this.conv),Desc:"true"===r.sort,Order:a+1})),Id:""}),this.applyRule(i[0]),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}applyRule(e){let o=this.conversion.getTableIdFromSpName(this.addIndexForm.value.tableName,this.conv);this.data.applyRule({Name:this.ruleName,Type:"add_index",ObjectType:"Table",AssociatedObjects:o,Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.setSidenavAddIndexTable(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-index-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:7,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field",3,"selectionChange"],[3,"value",4,"ngFor","ngForOf"],["matInput","","formControlName","indexName",1,"input-field"],[1,"container",2,"display","inline"],["href","https://cloud.google.com/spanner/docs/reference/standard-sql/data-definition-language#naming_conventions"],["align","end"],["formArrayName","ColsArray",1,"addcol-form"],[4,"ngFor","ngForOf"],["mat-button","","color","primary","class","add-column-btn","type","button",3,"click",4,"ngIf"],[4,"ngIf"],[3,"value"],[1,"column-form-card"],[3,"formGroupName"],["matSelect","","formControlName","columnName","required","true",1,"input-field",3,"selectionChange"],["formControlName","sort","required","true",1,"input-field"],["value","false"],["value","true"],["mat-button","","color","primary",3,"click",4,"ngIf"],["mat-button","","color","primary",3,"click"],["mat-button","","color","primary","type","button",1,"add-column-btn",3,"click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"disabled","click"],["mat-raised-button","","type","submit","color","primary",1,"add-column-btn",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For Table"),l(),d(4,"mat-select",2),A("selectionChange",function(a){return o.selectedTableChange(a.value)}),y(5,Upe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"Index Name"),l(),D(9,"input",4),d(10,"mat-hint")(11,"div",5),h(12," Max. 128 characters, and starts with a letter. "),d(13,"a",6),h(14,"More Details"),l()()(),d(15,"mat-hint",7),h(16),l()(),me(17,8),y(18,qpe,17,3,"ng-container",9)(19,Wpe,5,0,"button",10),D(20,"br"),y(21,Kpe,3,1,"div",11)(22,Zpe,3,0,"div",11),pe(),l()),2&i&&(f("formGroup",o.addIndexForm),m(5),f("ngForOf",o.tableNames),m(11),xe("",(null==o.addIndexForm.value.indexName?null:o.addIndexForm.value.indexName.length)||0,"/128"),m(2),f("ngForOf",o.ColsArray.controls),m(),f("ngIf",o.addColumnsList.length{class t{constructor(e,i,o,r,a){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.fetch=a,this.ruleNameValid=!1,this.ruleType="",this.ruleName="",this.resetRuleType=new Ne,this.conversionType={},this.sourceType=[],this.destinationType=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.pgSQLToStandardTypeTypemap=new Map,this.standardTypeToPGSQLTypemap=new Map,this.conv={},this.isPostgreSQLDialect=!1,this.addGlobalDataTypeForm=this.fb.group({objectType:["column",ee.required],table:["allTable",ee.required],column:["allColumn",ee.required],sourceType:["",ee.required],destinationType:["",ee.required]})}ngOnInit(){this.data.typeMap.subscribe({next:e=>{this.conversionType=e,this.sourceType=Object.keys(this.conversionType)}}),this.data.conv.subscribe({next:e=>{this.conv=e,this.isPostgreSQLDialect="postgresql"===this.conv.SpDialect}}),this.conversion.pgSQLToStandardTypeTypeMap.subscribe(e=>{this.pgSQLToStandardTypeTypemap=e}),this.conversion.standardTypeToPGSQLTypeMap.subscribe(e=>{this.standardTypeToPGSQLTypemap=e}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)})})}setViewRuleData(e){if(this.ruleId=e?.Id,this.addGlobalDataTypeForm.controls.sourceType.setValue(Object.keys(e?.Data)[0]),this.updateDestinationType(Object.keys(e?.Data)[0]),this.isPostgreSQLDialect){let i=this.standardTypeToPGSQLTypemap.get(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.controls.destinationType.setValue(void 0===i?Object.values(this.viewRuleData?.Data)[0]:i)}else this.addGlobalDataTypeForm.controls.destinationType.setValue(Object.values(this.viewRuleData?.Data)[0]);this.addGlobalDataTypeForm.disable()}formSubmit(){const e=this.addGlobalDataTypeForm.value,i=e.sourceType,o={};if(this.isPostgreSQLDialect){let r=this.pgSQLToStandardTypeTypemap.get(e.destinationType);o[i]=void 0===r?e.destinationType:r}else o[i]=e.destinationType;this.applyRule(o),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}updateDestinationType(e){const i=this.conversionType[e],o=[];i?.forEach(r=>{o.push(r.DisplayT)}),this.destinationType=o}applyRule(e){this.data.applyRule({Name:this.ruleName,Type:"global_datatype_change",ObjectType:"Column",AssociatedObjects:"All Columns",Enabled:!0,Data:e,Id:""})}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-global-datatype-form"]],inputs:{ruleNameValid:"ruleNameValid",ruleType:"ruleType",ruleName:"ruleName"},outputs:{resetRuleType:"resetRuleType"},decls:34,vars:5,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","objectType","required","true",1,"input-field"],["value","column"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","sourceType","required","true",1,"input-field",3,"selectionChange"],["sourceField",""],[3,"value",4,"ngFor","ngForOf"],["appearance","outline",4,"ngIf"],[4,"ngIf"],[3,"value"],["matSelect","","formControlName","destinationType","required","true",1,"input-field"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){if(1&i){const r=_e();d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"For object type"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"Column"),l()()(),d(7,"h3"),h(8,"When"),l(),d(9,"mat-form-field",1)(10,"mat-label"),h(11,"Table is"),l(),d(12,"mat-select",4)(13,"mat-option",5),h(14,"All tables"),l()()(),d(15,"mat-form-field",1)(16,"mat-label"),h(17,"and column is"),l(),d(18,"mat-select",6)(19,"mat-option",7),h(20,"All column"),l()()(),d(21,"h3"),h(22,"Convert from"),l(),d(23,"mat-form-field",1)(24,"mat-label"),h(25,"Source data type"),l(),d(26,"mat-select",8,9),A("selectionChange",function(){ie(r);const s=Ft(27);return ne(o.updateDestinationType(s.value))}),y(28,Qpe,2,2,"mat-option",10),l()(),d(29,"h3"),h(30,"Convert to"),l(),y(31,Jpe,5,1,"mat-form-field",11)(32,efe,3,1,"div",12)(33,tfe,3,0,"div",12),l()}if(2&i){const r=Ft(27);f("formGroup",o.addGlobalDataTypeForm),m(28),f("ngForOf",o.sourceType),m(3),f("ngIf",r.selected),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag)}},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{width:100%;padding:0}"]})}return t})();function nfe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e),m(),Pe(e)}}function ofe(t,n){if(1&t&&(d(0,"mat-option",10),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.name)}}function rfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",11),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.editColMaxLengthForm.valid&&e.ruleNameValid))}}function afe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",12),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let sfe=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.data=i,this.sidenav=o,this.conversion=r,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.ruleId="",this.tableNames=[],this.viewRuleData=[],this.viewRuleFlag=!1,this.conv={},this.spTypes=[],this.hintlabel="",this.editColMaxLengthForm=this.fb.group({tableName:["",ee.required],column:["allColumn",ee.required],spDataType:["",ee.required],maxColLength:["",[ee.required,ee.pattern("([1-9][0-9]*|MAX)")]]})}ngOnInit(){this.data.conv.subscribe({next:e=>{this.conv=e,this.tableNames=Object.keys(e.SpSchema).map(i=>e.SpSchema[i].Name),this.tableNames.push("All tables"),"postgresql"===this.conv.SpDialect?(this.spTypes=[{name:"VARCHAR",value:"STRING"}],this.hintlabel="Max "+In.StringMaxLength+" for VARCHAR"):(this.spTypes=[{name:"STRING",value:"STRING"},{name:"BYTES",value:"BYTES"}],this.hintlabel="Max "+In.StringMaxLength+" for STRING and "+In.ByteMaxLength+" for BYTES")}}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&this.sidenav.ruleData.subscribe(i=>{if(this.viewRuleData=i,this.viewRuleData){this.ruleId=this.viewRuleData?.Id;let o=this.viewRuleData?.AssociatedObjects;this.editColMaxLengthForm.controls.tableName.setValue(o),this.editColMaxLengthForm.controls.spDataType.setValue(this.viewRuleData?.Data?.spDataType),this.editColMaxLengthForm.controls.maxColLength.setValue(this.viewRuleData?.Data?.spColMaxLength),this.editColMaxLengthForm.disable()}})})}formSubmit(){const e=this.editColMaxLengthForm.value;(("STRING"===e.spDataType||"VARCHAR"===e.spDataType)&&e.spColMaxLength>In.StringMaxLength||"BYTES"===e.spDataType&&e.spColMaxLength>In.ByteMaxLength)&&(e.spColMaxLength=In.StorageMaxLength);const i={spDataType:e.spDataType,spColMaxLength:e.maxColLength};let r=this.conversion.getTableIdFromSpName(e.tableName,this.conv);""===r&&(r="All tables"),this.data.applyRule({Name:this.ruleName,Type:"edit_column_max_length",ObjectType:"Table",AssociatedObjects:r,Enabled:!0,Data:i,Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo),_(pc))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-edit-column-max-length"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:23,vars:6,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","tableName","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],["matSelect","","formControlName","column","required","true",1,"input-field"],["value","allColumn"],["matSelect","","formControlName","spDataType","required","true",1,"input-field"],["appearance","outline",3,"hintLabel"],["matInput","","formControlName","maxColLength",1,"input-field"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2),y(5,nfe,2,2,"mat-option",3),l()(),d(6,"mat-form-field",1)(7,"mat-label"),h(8,"and column is"),l(),d(9,"mat-select",4)(10,"mat-option",5),h(11,"All column"),l()()(),d(12,"mat-form-field",1)(13,"mat-label"),h(14,"and Spanner Type is"),l(),d(15,"mat-select",6),y(16,ofe,2,2,"mat-option",3),l()(),d(17,"mat-form-field",7)(18,"mat-label"),h(19,"Max column length"),l(),D(20,"input",8),l(),y(21,rfe,3,1,"div",9)(22,afe,3,0,"div",9),l()),2&i&&(f("formGroup",o.editColMaxLengthForm),m(5),f("ngForOf",o.tableNames),m(11),f("ngForOf",o.spTypes),m(),f("hintLabel",o.hintlabel),m(4),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,qi,Xn,Tn,Ci,_i,Bi,Do,wi,zi]})}return t})();function cfe(t,n){if(1&t&&(d(0,"mat-option",7),h(1),l()),2&t){const e=n.$implicit;f("value",e.value),m(),Pe(e.display)}}function lfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",8),A("click",function(){return ie(e),ne(C().formSubmit())}),h(2," ADD RULE "),l()()}if(2&t){const e=C();m(),f("disabled",!(e.addShardIdPrimaryKeyForm.valid&&e.ruleNameValid))}}function dfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"button",9),A("click",function(){return ie(e),ne(C().deleteRule())}),h(2,"DELETE RULE"),l()()}}let ufe=(()=>{class t{constructor(e,i,o){this.fb=e,this.data=i,this.sidenav=o,this.ruleNameValid=!1,this.ruleName="",this.ruleType="",this.resetRuleType=new Ne,this.viewRuleFlag=!1,this.viewRuleData={},this.primaryKeyOrder=[{value:!0,display:"At the beginning"},{value:!1,display:"At the end"}],this.addShardIdPrimaryKeyForm=this.fb.group({table:["allTable",ee.required],primaryKeyOrder:["",ee.required]})}ngOnInit(){this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag&&(this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.viewRuleData&&this.setViewRuleData(this.viewRuleData)}),this.addShardIdPrimaryKeyForm.disable())})}formSubmit(){this.data.applyRule({Name:this.ruleName,Type:"add_shard_id_primary_key",AssociatedObjects:"All Tables",Enabled:!0,Data:{AddedAtTheStart:this.addShardIdPrimaryKeyForm.value.primaryKeyOrder},Id:""}),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}setViewRuleData(e){this.ruleId=e?.Id,this.addShardIdPrimaryKeyForm.controls.primaryKeyOrder.setValue(e?.Data?.AddedAtTheStart)}deleteRule(){this.data.dropRule(this.ruleId),this.resetRuleType.emit(""),this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(Dr),_(Hi),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-add-shard-id-primary-key"]],inputs:{ruleNameValid:"ruleNameValid",ruleName:"ruleName",ruleType:"ruleType"},outputs:{resetRuleType:"resetRuleType"},decls:14,vars:4,consts:[[3,"formGroup"],["appearance","outline"],["matSelect","","formControlName","table","required","true",1,"input-field"],["value","allTable"],["matSelect","","formControlName","primaryKeyOrder","required","true",1,"input-field"],[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],[3,"value"],["mat-raised-button","","color","primary",3,"disabled","click"],["mat-raised-button","","color","primary",3,"click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),h(3,"Table is"),l(),d(4,"mat-select",2)(5,"mat-option",3),h(6,"All tables"),l()()(),d(7,"mat-form-field",1)(8,"mat-label"),h(9,"Order in Primary Key"),l(),d(10,"mat-select",4),y(11,cfe,2,2,"mat-option",5),l()(),y(12,lfe,3,1,"div",6)(13,dfe,3,0,"div",6),l()),2&i&&(f("formGroup",o.addShardIdPrimaryKeyForm),m(11),f("ngForOf",o.primaryKeyOrder),m(),f("ngIf",!o.viewRuleFlag),m(),f("ngIf",o.viewRuleFlag))},dependencies:[rn,It,Yt,Di,xi,Xn,Tn,_i,Bi,Do,wi,zi]})}return t})();function hfe(t,n){1&t&&(d(0,"mat-option",18),h(1,"Add shard id column as primary key"),l())}function mfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-global-datatype-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function pfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-index-form",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function ffe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-edit-column-max-length",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}function gfe(t,n){if(1&t){const e=_e();d(0,"div")(1,"app-add-shard-id-primary-key",19),A("resetRuleType",function(){return ie(e),ne(C().resetRuleType())}),l()()}if(2&t){const e=C();m(),f("ruleNameValid",e.ruleForm.valid)("ruleName",e.rulename)("ruleType",e.ruletype)}}let _fe=(()=>{class t{constructor(e,i){this.sidenav=e,this.data=i,this.currentRules=[],this.ruleForm=new ti({ruleName:new U("",[ee.required,ee.pattern("^[a-zA-Z].{0,59}$")]),ruleType:new U("",[ee.required])}),this.rulename="",this.ruletype="",this.viewRuleData=[],this.viewRuleFlag=!1,this.shardedMigration=!1}ngOnInit(){this.data.conv.subscribe({next:e=>{Object.keys(e.SpSchema),this.shardedMigration=!!e.IsSharded}}),this.ruleForm.valueChanges.subscribe(()=>{this.rulename=this.ruleForm.controls.ruleName?.value,this.ruletype=this.ruleForm.controls.ruleType?.value}),this.sidenav.displayRuleFlag.subscribe(e=>{this.viewRuleFlag=e,this.viewRuleFlag?this.sidenav.ruleData.subscribe(i=>{this.viewRuleData=i,this.setViewRuleData(this.viewRuleData)}):(this.ruleForm.enable(),this.ruleForm.controls.ruleType.setValue(""),this.sidenav.sidenavRuleType.subscribe(i=>{"addIndex"===i&&this.ruleForm.controls.ruleType.setValue("addIndex")}))})}setViewRuleData(e){this.ruleForm.disable(),this.ruleForm.controls.ruleName.setValue(e?.Name),this.ruleForm.controls.ruleType.setValue(this.getViewRuleType(this.viewRuleData?.Type))}closeSidenav(){this.sidenav.closeSidenav()}get ruleType(){return this.ruleForm.get("ruleType")?.value}resetRuleType(){this.ruleForm.controls.ruleType.setValue(""),this.ruleForm.controls.ruleName.setValue(""),this.ruleForm.markAsUntouched()}getViewRuleType(e){switch(e){case"add_index":return"addIndex";case"global_datatype_change":return"globalDataType";case"edit_column_max_length":return"changeMaxLength";case"add_shard_id_primary_key":return"addShardIdPrimaryKey"}return""}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Hi))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-rule"]],inputs:{currentRules:"currentRules"},decls:36,vars:8,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[3,"formGroup"],["hintLabel","Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","formControlName","ruleName",1,"input-field"],["align","end"],["appearance","outline"],["matSelect","","formControlName","ruleType","required","true",1,"input-field"],["ruleType",""],["value","globalDataType"],["value","addIndex"],["value","changeMaxLength"],["value","addShardIdPrimaryKey",4,"ngIf"],[4,"ngIf"],["value","addShardIdPrimaryKey"],[3,"ruleNameValid","ruleName","ruleType","resetRuleType"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"form",6)(9,"h3"),h(10,"Rule info"),l(),d(11,"mat-form-field",7)(12,"mat-label"),h(13,"Rule name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),d(17,"h3"),h(18,"Rule definition"),l(),d(19,"mat-form-field",10)(20,"mat-label"),h(21,"Rule type"),l(),d(22,"mat-select",11,12)(24,"mat-option",13),h(25,"Change global data type"),l(),d(26,"mat-option",14),h(27,"Add Index"),l(),d(28,"mat-option",15),h(29,"Change default max column length"),l(),y(30,hfe,2,0,"mat-option",16),l()(),D(31,"br"),l(),y(32,mfe,2,3,"div",17)(33,pfe,2,3,"div",17)(34,ffe,2,3,"div",17)(35,gfe,2,3,"div",17),l()()),2&i){const r=Ft(23);m(3),Pe(o.viewRuleFlag?"View Rule":"Add Rule"),m(5),f("formGroup",o.ruleForm),m(8),xe("",(null==o.ruleForm.value.ruleName?null:o.ruleForm.value.ruleName.length)||0,"/60"),m(14),f("ngIf",o.shardedMigration),m(2),f("ngIf","globalDataType"===r.value),m(),f("ngIf","addIndex"===r.value),m(),f("ngIf","changeMaxLength"===r.value),m(),f("ngIf","addShardIdPrimaryKey"===r.value)}},dependencies:[It,ba,Mi,Di,xi,sc,qi,Xn,Tn,_n,Ci,_i,Bi,Do,wi,zi,Ype,ife,sfe,ufe],styles:["mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:0} .mat-mdc-form-field-wrapper{padding-bottom:14px}"]})}return t})();function bfe(t,n){1&t&&(d(0,"th",39),h(1,"Total tables"),l())}function vfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.total)}}function yfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",41),h(2," error "),l(),h(3,"Converted with many issues "),l())}function Cfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.bad)}}function wfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",42),h(2," warning"),l(),h(3,"Conversion some warnings & suggestions "),l())}function xfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ok)}}function Dfe(t,n){1&t&&(d(0,"th",39)(1,"mat-icon",43),h(2," check_circle "),l(),h(3,"100% conversion "),l())}function Sfe(t,n){if(1&t&&(d(0,"td",40),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.good)}}function kfe(t,n){1&t&&D(0,"tr",44)}function Mfe(t,n){1&t&&D(0,"tr",45)}function Tfe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Ife(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Efe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Ofe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Afe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Pfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Rfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Nfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ffe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Lfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Nfe,2,0,"mat-icon",37)(3,Ffe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Bfe(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Vfe(t,n){1&t&&D(0,"tr",44)}function jfe(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function zfe(t,n){1&t&&D(0,"tr",75)}const Eg=()=>["expandedDetail"];function Hfe(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",46),h(4," error "),l(),h(5," ERRORS "),l()(),d(6,"table",47),me(7,48),y(8,Tfe,2,0,"th",49)(9,Ife,2,1,"td",50),pe(),me(10,51),y(11,Efe,2,0,"th",52)(12,Ofe,2,1,"td",53),pe(),me(13,54),y(14,Afe,2,0,"th",55)(15,Pfe,2,1,"td",56),pe(),me(16,57),y(17,Rfe,2,0,"th",58)(18,Lfe,4,2,"td",59),pe(),me(19,60),y(20,Bfe,4,3,"td",59),pe(),y(21,Vfe,1,0,"tr",34)(22,jfe,1,2,"tr",61)(23,zfe,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Errors),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Ufe(t,n){1&t&&D(0,"br")}function $fe(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function Gfe(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function qfe(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Wfe(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function Kfe(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Zfe(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Yfe(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Qfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Xfe(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Jfe(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Qfe,2,0,"mat-icon",37)(3,Xfe,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function ege(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function tge(t,n){1&t&&D(0,"tr",44)}function ige(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function nge(t,n){1&t&&D(0,"tr",75)}function oge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",76),h(4," warning "),l(),h(5," WARNINGS "),l()(),d(6,"table",47),me(7,48),y(8,$fe,2,0,"th",49)(9,Gfe,2,1,"td",50),pe(),me(10,51),y(11,qfe,2,0,"th",52)(12,Wfe,2,1,"td",53),pe(),me(13,54),y(14,Kfe,2,0,"th",55)(15,Zfe,2,1,"td",56),pe(),me(16,57),y(17,Yfe,2,0,"th",58)(18,Jfe,4,2,"td",59),pe(),me(19,60),y(20,ege,4,3,"td",59),pe(),y(21,tge,1,0,"tr",34)(22,ige,1,2,"tr",61)(23,nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Warnings),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function rge(t,n){1&t&&D(0,"br")}function age(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function sge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function cge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function lge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function dge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function uge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function hge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function mge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function pge(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function fge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,mge,2,0,"mat-icon",37)(3,pge,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function gge(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function _ge(t,n){1&t&&D(0,"tr",44)}function bge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function vge(t,n){1&t&&D(0,"tr",75)}function yge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",77),h(4," wb_incandescent "),l(),h(5," SUGGESTIONS "),l()(),d(6,"table",47),me(7,48),y(8,age,2,0,"th",49)(9,sge,2,1,"td",50),pe(),me(10,51),y(11,cge,2,0,"th",52)(12,lge,2,1,"td",53),pe(),me(13,54),y(14,dge,2,0,"th",55)(15,uge,2,1,"td",56),pe(),me(16,57),y(17,hge,2,0,"th",58)(18,fge,4,2,"td",59),pe(),me(19,60),y(20,gge,4,3,"td",59),pe(),y(21,_ge,1,0,"tr",34)(22,bge,1,2,"tr",61)(23,vge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Suggestions),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Cge(t,n){1&t&&D(0,"br")}function wge(t,n){1&t&&(d(0,"th",63),h(1," No. "),l())}function xge(t,n){if(1&t&&(d(0,"td",64),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.position," ")}}function Dge(t,n){1&t&&(d(0,"th",65),h(1," Description "),l())}function Sge(t,n){if(1&t&&(d(0,"td",66),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.description," ")}}function kge(t,n){1&t&&(d(0,"th",67),h(1," Table Count "),l())}function Mge(t,n){if(1&t&&(d(0,"td",68),h(1),l()),2&t){const e=n.$implicit;m(),xe(" ",e.tableCount," ")}}function Tge(t,n){1&t&&(d(0,"th",69),h(1,"\xa0"),l())}function Ige(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_down"),l())}function Ege(t,n){1&t&&(d(0,"mat-icon"),h(1,"keyboard_arrow_up"),l())}function Oge(t,n){if(1&t){const e=_e();d(0,"td",70)(1,"button",71),A("click",function(o){const a=ie(e).$implicit;return C(2).toggleRow(a),ne(o.stopPropagation())}),y(2,Ige,2,0,"mat-icon",37)(3,Ege,2,0,"mat-icon",37),l()()}if(2&t){const e=n.$implicit,i=C(2);m(2),f("ngIf",!i.isRowExpanded(e)),m(),f("ngIf",i.isRowExpanded(e))}}function Age(t,n){if(1&t&&(d(0,"td",70)(1,"div",72)(2,"div",73),h(3),l()()()),2&t){const e=n.$implicit,i=C(2);Xe("colspan",i.columnsToDisplayWithExpand.length),m(),f("ngClass",i.isRowExpanded(e)?"expanded":"collapsed"),m(2),xe(" TABLES: ",e.tableNamesJoinedByComma,"")}}function Pge(t,n){1&t&&D(0,"tr",44)}function Rge(t,n){if(1&t){const e=_e();d(0,"tr",74),A("click",function(){const r=ie(e).$implicit;return ne(C(2).toggleRow(r))}),l()}if(2&t){const e=n.$implicit;et("example-expanded-row",C(2).isRowExpanded(e))}}function Nge(t,n){1&t&&D(0,"tr",75)}function Fge(t,n){if(1&t&&(d(0,"mat-expansion-panel")(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",78),h(4," check_circle "),l(),h(5," NOTES "),l()(),d(6,"table",47),me(7,48),y(8,wge,2,0,"th",49)(9,xge,2,1,"td",50),pe(),me(10,51),y(11,Dge,2,0,"th",52)(12,Sge,2,1,"td",53),pe(),me(13,54),y(14,kge,2,0,"th",55)(15,Mge,2,1,"td",56),pe(),me(16,57),y(17,Tge,2,0,"th",58)(18,Oge,4,2,"td",59),pe(),me(19,60),y(20,Age,4,3,"td",59),pe(),y(21,Pge,1,0,"tr",34)(22,Rge,1,2,"tr",61)(23,Nge,1,0,"tr",62),l()()),2&t){const e=C();m(6),f("dataSource",e.issueTableData_Notes),m(15),f("matHeaderRowDef",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",e.columnsToDisplayWithExpand),m(),f("matRowDefColumns",No(4,Eg))}}function Lge(t,n){1&t&&D(0,"br")}function Bge(t,n){1&t&&(d(0,"div",79)(1,"div",80),ei(),d(2,"svg",81),D(3,"path",82),l()(),pr(),d(4,"div",83),h(5," Woohoo! No issues or suggestions"),D(6,"br"),h(7,"found. "),l(),D(8,"br"),l())}const Sw=t=>({"width.%":t});let Vge=(()=>{class t{toggleRow(e){this.isRowExpanded(e)?this.expandedElements.delete(e):this.expandedElements.add(e)}isRowExpanded(e){return this.expandedElements.has(e)}constructor(e,i,o){this.sidenav=e,this.clickEvent=i,this.fetch=o,this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],this.issueTableData_Notes=[],this.columnsToDisplay=["position","description","tableCount"],this.columnsToDisplayWithExpand=[...this.columnsToDisplay,"expand"],this.expandedElements=new Set,this.srcDbType="",this.connectionDetail="",this.summaryText="",this.issueDescription={},this.conversionRateCount={good:0,ok:0,bad:0},this.conversionRatePercentage={good:0,ok:0,bad:0},this.rateCountDataSource=[],this.rateCountDisplayedColumns=["total","bad","ok","good"],this.ratePcDataSource=[],this.ratePcDisplayedColumns=["bad","ok","good"]}ngOnInit(){this.clickEvent.viewAssesment.subscribe(e=>{this.srcDbType=e.srcDbType,this.connectionDetail=e.connectionDetail,this.conversionRateCount=e.conversionRates;let i=this.conversionRateCount.good+this.conversionRateCount.ok+this.conversionRateCount.bad;if(i>0)for(let o in this.conversionRatePercentage)this.conversionRatePercentage[o]=Number((this.conversionRateCount[o]/i*100).toFixed(2));i>0&&this.setRateCountDataSource(i),this.fetch.getDStructuredReport().subscribe({next:o=>{this.summaryText=o.summary.text}}),this.issueTableData={position:0,description:"",tableCount:0,tableNamesJoinedByComma:""},this.fetch.getIssueDescription().subscribe({next:o=>{this.issueDescription=o,this.generateIssueReport()}})})}closeSidenav(){this.sidenav.closeSidenav()}setRateCountDataSource(e){this.rateCountDataSource=[],this.rateCountDataSource.push({total:e,bad:this.conversionRateCount.bad,ok:this.conversionRateCount.ok,good:this.conversionRateCount.good})}downloadStructuredReport(){var e=document.createElement("a");this.fetch.getDStructuredReport().subscribe({next:i=>{let o=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.href="data:text;charset=utf-8,"+encodeURIComponent(o),e.download=`${i.summary.dbName}_migration_structuredReport.json`,e.click()}})}downloadTextReport(){var e=document.createElement("a");this.fetch.getDTextReport().subscribe({next:i=>{let o=this.connectionDetail;e.href="data:text;charset=utf-8,"+encodeURIComponent(i),e.download=`${o}_migration_textReport.txt`,e.click()}})}downloadReports(){let e=new RN;this.fetch.getDStructuredReport().subscribe({next:i=>{let o=i.summary.dbName,r=JSON.stringify(i).replace(/9223372036854776000/g,"9223372036854775807");e.file(o+"_migration_structuredReport.json",r),this.fetch.getDTextReport().subscribe({next:s=>{e.file(o+"_migration_textReport.txt",s),e.generateAsync({type:"blob"}).then(c=>{var u=document.createElement("a");u.href=URL.createObjectURL(c),u.download=`${o}_reports`,u.click()})}})}})}generateIssueReport(){this.fetch.getDStructuredReport().subscribe({next:e=>{let i=e.tableReports;var o={errors:new Map,warnings:new Map,suggestions:new Map,notes:new Map};for(var r of i){let c=r.issues;if(null==c)return this.issueTableData_Errors=[],this.issueTableData_Warnings=[],this.issueTableData_Suggestions=[],void(this.issueTableData_Notes=[]);for(var a of c){let u={tableCount:0,tableNames:new Set};switch(a.issueType){case"Error":case"Errors":this.appendIssueWithTableInformation(a.issueList,o.errors,u,r);break;case"Warnings":case"Warning":this.appendIssueWithTableInformation(a.issueList,o.warnings,u,r);break;case"Suggestion":case"Suggestions":this.appendIssueWithTableInformation(a.issueList,o.suggestions,u,r);break;case"Note":case"Notes":this.appendIssueWithTableInformation(a.issueList,o.notes,u,r)}}}let s=o.warnings;this.issueTableData_Warnings=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Warnings),s=o.errors,this.issueTableData_Errors=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Errors),s=o.suggestions,this.issueTableData_Suggestions=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Suggestions),s=o.notes,this.issueTableData_Notes=[],0!=s.size&&this.populateTableData(s,this.issueTableData_Notes)}})}populateTableData(e,i){let o=1;for(let[r,a]of e.entries()){let s=[...a.tableNames.keys()];i.push({position:o,description:this.issueDescription[r],tableCount:a.tableCount,tableNamesJoinedByComma:s.join(", ")}),o+=1}}appendIssueWithTableInformation(e,i,o,r){for(var a of e)if(i.has(a.category)){let c=i.get(a.category),u={tableNames:new Set(c.tableNames),tableCount:c.tableNames.size};u.tableNames.add(r.srcTableName),u.tableCount=u.tableNames.size,i.set(a.category,u)}else{let c=o;c.tableNames.add(r.srcTableName),c.tableCount=c.tableNames.size,i.set(a.category,c)}}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(or),_(En))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-view-assessment"]],decls:87,vars:25,consts:[[1,"sidenav-view-assessment-container"],[1,"sidenav-view-assessment-header"],[1,"mat-h2","header-title"],[1,"btn-source-select"],[1,"reportsButtons"],["mat-raised-button","","color","primary",1,"split-button-left",3,"click"],["mat-raised-button","","color","primary",1,"split-button-right",3,"matMenuTriggerFor"],["aria-hidden","false","aria-label","More options"],["xPosition","before"],["menu","matMenu"],["mat-menu-item","",3,"click"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"content"],[1,"summaryHeader"],[1,"databaseName"],[1,"migrationDetails"],[1,"summaryText"],[1,"sidenav-percentage-bar"],[1,"danger-background",3,"ngStyle"],[1,"warning-background",3,"ngStyle"],[1,"success-background",3,"ngStyle"],[1,"sidenav-percentage-indent"],[1,"icon","danger"],[1,"icon","warning"],[1,"icon","success"],[1,"sidenav-title"],["mat-table","",1,"sidenav-conversionByTable",3,"dataSource"],["matColumnDef","total"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","","class","cells",4,"matCellDef"],["matColumnDef","bad",1,"bad"],["matColumnDef","ok"],["matColumnDef","good"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],[1,"issue-report"],[4,"ngIf"],["class","no-issue-container",4,"ngIf"],["mat-header-cell",""],["mat-cell","",1,"cells"],[1,"icon","danger","icon-size","icons"],[1,"icon","warning","icon-size","icons"],[1,"icon","success","icon-size","icons"],["mat-header-row",""],["mat-row",""],["matTooltip","Error: Please resolve them to proceed with the migration","matTooltipPosition","above",1,"danger"],["mat-table","","multiTemplateDataRows","",1,"sidenav-databaseDefinitions",3,"dataSource"],["matColumnDef","position"],["mat-header-cell","","class","mat-position",4,"matHeaderCellDef"],["mat-cell","","class","mat-position",4,"matCellDef"],["matColumnDef","description"],["mat-header-cell","","class","mat-description",4,"matHeaderCellDef"],["mat-cell","","class","mat-description",4,"matCellDef"],["matColumnDef","tableCount"],["mat-header-cell","","class","mat-tableCount",4,"matHeaderCellDef"],["mat-cell","","class","mat-tableCount",4,"matCellDef"],["matColumnDef","expand"],["mat-header-cell","","aria-label","row actions",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","expandedDetail"],["mat-row","","class","example-element-row",3,"example-expanded-row","click",4,"matRowDef","matRowDefColumns"],["mat-row","","class","example-detail-row",4,"matRowDef","matRowDefColumns"],["mat-header-cell","",1,"mat-position"],["mat-cell","",1,"mat-position"],["mat-header-cell","",1,"mat-description"],["mat-cell","",1,"mat-description"],["mat-header-cell","",1,"mat-tableCount"],["mat-cell","",1,"mat-tableCount"],["mat-header-cell","","aria-label","row actions"],["mat-cell",""],["mat-icon-button","","aria-label","expand row",3,"click"],[1,"example-element-detail",3,"ngClass"],[1,"example-element-description"],["mat-row","",1,"example-element-row",3,"click"],["mat-row","",1,"example-detail-row"],["matTooltip","Warning : Changes made because of differences in source and spanner capabilities.","matTooltipPosition","above",1,"warning"],["matTooltip","Suggestion : We highly recommend you make these changes or else it will impact your DB performance.","matTooltipPosition","above",1,"suggestion"],["matTooltip","Note : This is informational and you don't need to do anything.","matTooltipPosition","above",1,"success"],[1,"no-issue-container"],[1,"no-issue-icon-container"],["width","36","height","36","viewBox","0 0 24 20","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M16.8332 0.69873C16.0051 7.45842 16.2492 9.44782 10.4672 10.2012C16.1511 11.1242 16.2329 13.2059 16.8332 19.7037C17.6237 13.1681 17.4697 11.2106 23.1986 10.2012C17.4247 9.45963 17.6194 7.4505 16.8332 0.69873ZM4.23739 0.872955C3.79064 4.52078 3.92238 5.59467 0.802246 6.00069C3.86944 6.49885 3.91349 7.62218 4.23739 11.1284C4.66397 7.60153 4.581 6.54497 7.67271 6.00069C4.55696 5.60052 4.66178 4.51623 4.23739 0.872955ZM7.36426 11.1105C7.05096 13.6683 7.14331 14.4212 4.95554 14.7061C7.10612 15.0553 7.13705 15.8431 7.36426 18.3017C7.66333 15.8288 7.60521 15.088 9.77298 14.7061C7.58818 14.4255 7.66177 13.6653 7.36426 11.1105Z","fill","#3367D6"],[1,"no-issue-message"]],template:function(i,o){if(1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Assessment report"),l(),d(4,"div",3)(5,"span",4)(6,"button",5),A("click",function(){return o.downloadReports()}),h(7," DOWNLOAD REPORTS "),l(),d(8,"button",6)(9,"mat-icon",7),h(10,"expand_more"),l()(),d(11,"mat-menu",8,9)(13,"button",10),A("click",function(){return o.downloadTextReport()}),h(14," Download Text Report "),l(),d(15,"button",10),A("click",function(){return o.downloadStructuredReport()}),h(16," Download Structured Report "),l()()(),d(17,"button",11),A("click",function(){return o.closeSidenav()}),d(18,"mat-icon",12),h(19,"close"),l()()()(),d(20,"div",13)(21,"div",14)(22,"p",15),h(23),l(),d(24,"p",16),h(25),d(26,"mat-icon"),h(27,"arrow_right_alt"),l(),h(28," Spanner)"),l()(),d(29,"p",17),h(30),l(),d(31,"mat-card")(32,"div",18),D(33,"div",19)(34,"div",20)(35,"div",21),l(),D(36,"hr")(37,"br"),d(38,"div",22)(39,"span")(40,"mat-icon",23),h(41," circle "),l(),d(42,"span"),h(43," Not a great conversion"),l()(),d(44,"span")(45,"mat-icon",24),h(46," circle "),l(),d(47,"span"),h(48," Converted with warnings"),l()(),d(49,"span")(50,"mat-icon",25),h(51," circle "),l(),d(52,"span"),h(53," Converted automatically"),l()()()(),D(54,"br"),d(55,"h3",26),h(56,"Conversion status by table"),l(),d(57,"table",27),me(58,28),y(59,bfe,2,0,"th",29)(60,vfe,2,1,"td",30),pe(),me(61,31),y(62,yfe,4,0,"th",29)(63,Cfe,2,1,"td",30),pe(),me(64,32),y(65,wfe,4,0,"th",29)(66,xfe,2,1,"td",30),pe(),me(67,33),y(68,Dfe,4,0,"th",29)(69,Sfe,2,1,"td",30),pe(),y(70,kfe,1,0,"tr",34)(71,Mfe,1,0,"tr",35),l(),D(72,"br"),d(73,"h3"),h(74,"Summarized Table Report"),l(),d(75,"div",36),y(76,Hfe,24,5,"mat-expansion-panel",37)(77,Ufe,1,0,"br",37)(78,oge,24,5,"mat-expansion-panel",37)(79,rge,1,0,"br",37)(80,yge,24,5,"mat-expansion-panel",37)(81,Cge,1,0,"br",37)(82,Fge,24,5,"mat-expansion-panel",37)(83,Lge,1,0,"br",37)(84,Bge,9,0,"div",38),D(85,"br"),l(),D(86,"br"),l()()),2&i){const r=Ft(12);m(8),f("matMenuTriggerFor",r),m(15),Pe(o.connectionDetail),m(2),xe(" \xa0 (",o.srcDbType," "),m(5),Pe(o.summaryText),m(3),f("ngStyle",hi(19,Sw,o.conversionRatePercentage.bad)),m(),f("ngStyle",hi(21,Sw,o.conversionRatePercentage.ok)),m(),f("ngStyle",hi(23,Sw,o.conversionRatePercentage.good)),m(22),f("dataSource",o.rateCountDataSource),m(13),f("matHeaderRowDef",o.rateCountDisplayedColumns),m(),f("matRowDefColumns",o.rateCountDisplayedColumns),m(5),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Errors.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Warnings.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Suggestions.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",o.issueTableData_Notes.length),m(),f("ngIf",!(o.issueTableData_Notes.length||o.issueTableData_Suggestions.length||o.issueTableData_Warnings.length||o.issueTableData_Errors.length))}},dependencies:[yr,It,w2,Yt,ba,Mi,Gu,jl,wa,zl,ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs,DC,bP,JQ,vn],styles:["table.mat-mdc-table[_ngcontent-%COMP%]{width:100%}.icon-size[_ngcontent-%COMP%]{font-size:1.2em;text-align:center;margin-top:8px;margin-left:10px;vertical-align:inherit}.mat-mdc-header-cell[_ngcontent-%COMP%]{border-style:none}.icons[_ngcontent-%COMP%]{border-left:1px solid rgb(208,204,204);padding-left:10px}.cells[_ngcontent-%COMP%]{text-align:center}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%]{padding:7px 16px;display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #d0cccc;justify-content:space-between}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%]{margin:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%]{vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .reportsButtons[_ngcontent-%COMP%]{white-space:nowrap;vertical-align:middle}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-left[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .split-button-right[_ngcontent-%COMP%]{width:30px!important;min-width:unset!important;padding:0 8px 0 2px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #fafafa}.sidenav-view-assessment-container[_ngcontent-%COMP%] .sidenav-view-assessment-header[_ngcontent-%COMP%] .btn-source-select[_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:1.25px;padding:0;height:10px;vertical-align:text-top}"]})}return t})(),jge=(()=>{class t{constructor(e,i,o,r){this.fetch=e,this.data=i,this.snack=o,this.sidenav=r,this.errMessage="",this.saveSessionForm=new ti({SessionName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),EditorName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_ -]{0,59}$")]),DatabaseName:new U("",[ee.required,ee.pattern("^[a-zA-Z][a-zA-Z0-9_-]{0,59}$")]),Notes:new U("")})}saveSession(){let e=this.saveSessionForm.value,i={SessionName:e.SessionName.trim(),EditorName:e.EditorName.trim(),DatabaseName:e.DatabaseName.trim(),Notes:""===e.Notes?.trim()||null===e.Notes?[""]:e.Notes?.split("\n")};this.fetch.saveSession(i).subscribe({next:o=>{this.data.getAllSessions(),this.snack.openSnackBar("Session saved successfully","Close",5)},error:o=>{this.snack.openSnackBar(o.error,"Close")}}),this.saveSessionForm.reset(),this.saveSessionForm.markAsUntouched(),this.closeSidenav()}ngOnInit(){this.sidenav.sidenavDatabaseName.subscribe({next:e=>{this.saveSessionForm.controls.DatabaseName.setValue(e)}})}closeSidenav(){this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(En),_(Hi),_(nr),_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-save-session"]],decls:40,vars:5,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[1,"save-session-form",3,"formGroup"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline"],["matInput","","placeholder","mysession","type","text","formControlName","SessionName","matTooltip","User can view saved sessions under session history section","matTooltipPosition","above"],["align","end"],["hintLabel","Letters, numbers, hyphen, space and underscore allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","placeholder","editor name","type","text","formControlName","EditorName"],["hintLabel","Letters, numbers, hyphen and underscores allowed. Max. 60 characters, and starts with a letter.","appearance","outline",1,"full-width"],["matInput","","type","text","formControlName","DatabaseName"],["appearance","outline",1,"full-width"],["rows","7","matInput","","placeholder","added new index","type","text","formControlName","Notes"],[1,"sidenav-footer"],["mat-raised-button","","type","submit","color","primary",3,"disabled","click"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Save Session"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),d(7,"div",5)(8,"h3"),h(9,"Session Details"),l(),d(10,"form",6)(11,"mat-form-field",7)(12,"mat-label"),h(13,"Session Name"),l(),D(14,"input",8),d(15,"mat-hint",9),h(16),l()(),D(17,"br"),d(18,"mat-form-field",10)(19,"mat-label"),h(20,"Editor Name"),l(),D(21,"input",11),d(22,"mat-hint",9),h(23),l()(),D(24,"br"),d(25,"mat-form-field",12)(26,"mat-label"),h(27,"Database Name"),l(),D(28,"input",13),d(29,"mat-hint",9),h(30),l()(),D(31,"br"),d(32,"mat-form-field",14)(33,"mat-label"),h(34,"Notes"),l(),D(35,"textarea",15),l(),D(36,"br"),l()(),d(37,"div",16)(38,"button",17),A("click",function(){return o.saveSession()}),h(39," Save Session "),l()()()),2&i&&(m(10),f("formGroup",o.saveSessionForm),m(6),xe("",(null==o.saveSessionForm.value.SessionName?null:o.saveSessionForm.value.SessionName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.EditorName?null:o.saveSessionForm.value.EditorName.length)||0,"/60"),m(7),xe("",(null==o.saveSessionForm.value.DatabaseName?null:o.saveSessionForm.value.DatabaseName.length)||0,"/60"),m(8),f("disabled",!o.saveSessionForm.valid))},dependencies:[Yt,ba,Mi,Di,xi,sc,qi,_n,Ci,_i,Bi,wi,zi,vn],styles:[".mat-mdc-form-field[_ngcontent-%COMP%]{padding-bottom:10px}"]})}return t})();function zge(t,n){1&t&&(d(0,"th",9),h(1,"Column"),l())}function Hge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.ColumnName)}}function Uge(t,n){1&t&&(d(0,"th",9),h(1,"Type"),l())}function $ge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.Type)}}function Gge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Column"),l())}function qge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateColumnName)}}function Wge(t,n){1&t&&(d(0,"th",9),h(1,"Updated Type"),l())}function Kge(t,n){if(1&t&&(d(0,"td",10),h(1),l()),2&t){const e=n.$implicit;m(),Pe(e.UpdateType)}}function Zge(t,n){1&t&&D(0,"tr",11)}function Yge(t,n){1&t&&D(0,"tr",12)}let Qge=(()=>{class t{constructor(){this.tableChange={InterleaveColumnChanges:[],Table:""},this.dataSource=[],this.displayedColumns=["ColumnName","Type","UpdateColumnName","UpdateType"]}ngOnInit(){}ngOnChanges(e){this.tableChange=e.tableChange?.currentValue||this.tableChange,this.dataSource=this.tableChange.InterleaveColumnChanges}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-table-column-changes-preview"]],inputs:{tableChange:"tableChange"},features:[fi],decls:15,vars:3,consts:[["mat-table","",1,"object-full-width","margin-bot-1",3,"dataSource"],["matColumnDef","ColumnName"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","Type"],["matColumnDef","UpdateColumnName"],["matColumnDef","UpdateType"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","",4,"matRowDef","matRowDefColumns"],["mat-header-cell",""],["mat-cell",""],["mat-header-row",""],["mat-row",""]],template:function(i,o){1&i&&(d(0,"table",0),me(1,1),y(2,zge,2,0,"th",2)(3,Hge,2,1,"td",3),pe(),me(4,4),y(5,Uge,2,0,"th",2)(6,$ge,2,1,"td",3),pe(),me(7,5),y(8,Gge,2,0,"th",2)(9,qge,2,1,"td",3),pe(),me(10,6),y(11,Wge,2,0,"th",2)(12,Kge,2,1,"td",3),pe(),y(13,Zge,1,0,"tr",7)(14,Yge,1,0,"tr",8),l()),2&i&&(f("dataSource",o.dataSource),m(13),f("matHeaderRowDef",o.displayedColumns),m(),f("matRowDefColumns",o.displayedColumns))},dependencies:[ps,ka,fs,Ma,Sa,gs,Ta,Ia,_s,bs],styles:[".margin-bot-1[_ngcontent-%COMP%]{margin-bottom:1rem}.mat-mdc-header-row[_ngcontent-%COMP%]{background-color:#f5f5f5}.mat-mdc-column-ColumnName[_ngcontent-%COMP%], .mat-mdc-column-UpdateColumnName[_ngcontent-%COMP%]{width:30%;max-width:30%}.mat-mdc-column-Type[_ngcontent-%COMP%], .mat-mdc-column-UpdateType[_ngcontent-%COMP%]{width:20%;max-width:20%}.mat-mdc-cell[_ngcontent-%COMP%]{padding-right:1rem;word-break:break-all}"]})}return t})();function Xge(t,n){1&t&&(d(0,"p"),h(1,"Review the DDL changes below."),l())}function Jge(t,n){if(1&t&&(d(0,"p"),h(1," Changing an interleaved table will have an impact on the following tables : "),d(2,"b"),h(3),l()()),2&t){const e=C();m(3),Pe(e.tableList)}}function e_e(t,n){if(1&t&&(d(0,"div",11)(1,"pre")(2,"code"),h(3),l()()()),2&t){const e=C();m(3),Pe(e.ddl)}}function t_e(t,n){if(1&t&&(me(0),d(1,"h4"),h(2),l(),D(3,"app-table-column-changes-preview",14),pe()),2&t){const e=n.$implicit,i=n.index,o=C(2);m(2),Pe(o.tableNames[i]),m(),f("tableChange",e)}}function i_e(t,n){if(1&t&&(d(0,"div",12),y(1,t_e,4,2,"ng-container",13),l()),2&t){const e=C();m(),f("ngForOf",e.tableChanges)}}let n_e=(()=>{class t{constructor(e,i,o,r){this.sidenav=e,this.tableUpdatePubSub=i,this.data=o,this.snackbar=r,this.ddl="",this.showDdl=!0,this.tableUpdateData={tableName:"",tableId:"",updateDetail:{UpdateCols:{}}},this.tableChanges=[],this.tableNames=[],this.tableList=""}ngOnInit(){this.tableUpdatePubSub.reviewTableChanges.subscribe(e=>{if(e.Changes&&e.Changes.length>0){this.showDdl=!1,this.tableChanges=e.Changes;const i=[];this.tableList="",this.tableChanges.forEach((o,r)=>{i.push(o.Table),this.tableList+=0==r?o.Table:", "+o.Table}),this.tableList+=".",this.tableNames=i}else this.showDdl=!0,this.ddl=e.DDL}),this.tableUpdatePubSub.tableUpdateDetail.subscribe(e=>{this.tableUpdateData=e})}updateTable(){this.data.updateTable(this.tableUpdateData.tableId,this.tableUpdateData.updateDetail).subscribe({next:e=>{""==e?(this.snackbar.openSnackBar(`Schema changes to table ${this.tableUpdateData.tableName} saved successfully`,"Close",5),0==this.showDdl&&1!=this.tableNames.length&&this.snackbar.openSnackBar(`Schema changes to tables ${this.tableNames[0]} and ${this.tableNames[1]} saved successfully`,"Close",5),this.closeSidenav()):this.snackbar.openSnackBar(e,"Close",5)}})}closeSidenav(){this.ddl="",this.sidenav.closeSidenav()}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo),_(Cw),_(Hi),_(nr))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-sidenav-review-changes"]],decls:17,vars:4,consts:[[1,"sidenav"],[1,"sidenav-header"],[1,"header-title"],["mat-icon-button","","color","primary",1,"close-button",3,"click"],[1,"close-icon"],[1,"sidenav-content"],[4,"ngIf"],["class","ddl-display",4,"ngIf"],["class","table-changes-display",4,"ngIf"],[1,"sidenav-footer"],["mat-raised-button","","color","primary",3,"click"],[1,"ddl-display"],[1,"table-changes-display"],[4,"ngFor","ngForOf"],[3,"tableChange"]],template:function(i,o){1&i&&(d(0,"div",0)(1,"div",1)(2,"span",2),h(3,"Review changes to your schema"),l(),d(4,"button",3),A("click",function(){return o.closeSidenav()}),d(5,"mat-icon",4),h(6,"close"),l()()(),D(7,"mat-divider"),d(8,"div",5),y(9,Xge,2,0,"p",6)(10,Jge,4,1,"p",6)(11,e_e,4,1,"div",7)(12,i_e,2,1,"div",8),l(),D(13,"mat-divider"),d(14,"div",9)(15,"button",10),A("click",function(){return o.updateTable()}),h(16,"Confirm Conversion"),l()()()),2&i&&(m(9),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl),m(),f("ngIf",o.showDdl),m(),f("ngIf",!o.showDdl))},dependencies:[rn,It,Yt,ba,Mi,wO,Qge],styles:[".sidenav-content[_ngcontent-%COMP%]{height:82%}.sidenav-content[_ngcontent-%COMP%] .ddl-display[_ngcontent-%COMP%]{height:90%;background-color:#dadada;padding:10px;overflow:auto}.sidenav-content[_ngcontent-%COMP%] .table-changes-display[_ngcontent-%COMP%]{height:90%;overflow:auto}"]})}return t})();function o_e(t,n){1&t&&D(0,"app-sidenav-rule")}function r_e(t,n){1&t&&D(0,"app-sidenav-save-session")}function a_e(t,n){1&t&&D(0,"app-sidenav-review-changes")}function s_e(t,n){1&t&&D(0,"app-sidenav-view-assessment")}function c_e(t,n){1&t&&D(0,"app-instruction")}const l_e=(t,n,e)=>({"width-40pc":t,"width-50pc":n,"width-60pc":e});let d_e=(()=>{class t{constructor(e){this.sidenavService=e,this.title="ui",this.showSidenav=!1,this.sidenavComponent=""}ngOnInit(){this.sidenavService.isSidenav.subscribe(e=>{this.showSidenav=e}),this.sidenavService.sidenavComponent.subscribe(e=>{this.sidenavComponent=e})}closeSidenav(){this.showSidenav=!1}static#e=this.\u0275fac=function(i){return new(i||t)(_(eo))};static#t=this.\u0275cmp=Ie({type:t,selectors:[["app-root"]],decls:14,vars:11,consts:[[1,"sidenav-container",3,"backdropClick"],["position","end","mode","over",3,"opened","ngClass"],["sidenav",""],[4,"ngIf"],[1,"sidenav-content"],[1,"appLoader"],[1,"padding-20"]],template:function(i,o){1&i&&(d(0,"mat-sidenav-container",0),A("backdropClick",function(){return o.closeSidenav()}),d(1,"mat-sidenav",1,2),y(3,o_e,1,0,"app-sidenav-rule",3)(4,r_e,1,0,"app-sidenav-save-session",3)(5,a_e,1,0,"app-sidenav-review-changes",3)(6,s_e,1,0,"app-sidenav-view-assessment",3)(7,c_e,1,0,"app-instruction",3),l(),d(8,"mat-sidenav-content",4),D(9,"app-header"),d(10,"div",5),D(11,"app-loader"),l(),d(12,"div",6),D(13,"router-outlet"),l()()()),2&i&&(m(),f("opened",o.showSidenav)("ngClass",HM(7,l_e,"rule"===o.sidenavComponent||"saveSession"===o.sidenavComponent,"reviewChanges"===o.sidenavComponent,"assessment"===o.sidenavComponent||"instruction"===o.sidenavComponent)),m(2),f("ngIf","rule"===o.sidenavComponent),m(),f("ngIf","saveSession"==o.sidenavComponent),m(),f("ngIf","reviewChanges"==o.sidenavComponent),m(),f("ngIf","assessment"===o.sidenavComponent),m(),f("ngIf","instruction"===o.sidenavComponent))},dependencies:[yr,It,Cg,hR,mR,qC,AN,jpe,Hpe,_fe,Vge,jge,n_e],styles:[".padding-20[_ngcontent-%COMP%]{padding:5px 0}.progress-bar-wrapper[_ngcontent-%COMP%]{background-color:#cbd0e9;height:2px}.progress-bar-wrapper[_ngcontent-%COMP%] .mat-mdc-progress-bar[_ngcontent-%COMP%], .appLoader[_ngcontent-%COMP%]{height:2px}mat-mdc-sidenav[_ngcontent-%COMP%]{width:30%;min-width:350px}.sidenav-container[_ngcontent-%COMP%]{height:100vh}.sidenav-container[_ngcontent-%COMP%] mat-mdc-sidenav[_ngcontent-%COMP%]{min-width:350px;border-radius:3px}.width-40pc[_ngcontent-%COMP%]{width:40%}.width-50pc[_ngcontent-%COMP%]{width:50%}.width-60pc[_ngcontent-%COMP%]{width:60%}"]})}return t})(),u_e=(()=>{class t{constructor(e){this.loader=e,this.count=0}intercept(e,i){let o=!e.url.includes("/connect");return o&&(this.loader.startLoader(),this.count++),i.handle(e).pipe(ec(()=>{o&&this.count--,0==this.count&&this.loader.stopLoader()}))}static#e=this.\u0275fac=function(i){return new(i||t)(X(Mg))};static#t=this.\u0275prov=ke({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),h_e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=ct({type:t,bootstrap:[d_e]});static#i=this.\u0275inj=st({providers:[{provide:ZE,useClass:u_e,multi:!0}],imports:[Y2,Ppe,b$,mte,mW,RK,xte,Mte,rre,OC]})}return t})();bH().bootstrapModule(h_e).catch(t=>console.error(t))},304:ld=>{ld.exports=function q(Re,Y,F){function R($,W){if(!Y[$]){if(!Re[$]){if(S)return S($,!0);var G=new Error("Cannot find module '"+$+"'");throw G.code="MODULE_NOT_FOUND",G}var I=Y[$]={exports:{}};Re[$][0].call(I.exports,function(B){return R(Re[$][1][B]||B)},I,I.exports,q,Re,Y,F)}return Y[$].exports}for(var S=void 0,P=0;P>4,B=1>6:64,M=2>2)+S.charAt(I)+S.charAt(B)+S.charAt(M));return N.join("")},Y.decode=function(P){var $,W,V,G,I,B,M=0,N=0,E="data:";if(P.substr(0,5)===E)throw new Error("Invalid base64 input, it looks like a data url.");var j,K=3*(P=P.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(P.charAt(P.length-1)===S.charAt(64)&&K--,P.charAt(P.length-2)===S.charAt(64)&&K--,K%1!=0)throw new Error("Invalid base64 input, bad content length.");for(j=R.uint8array?new Uint8Array(0|K):new Array(0|K);M>4,W=(15&G)<<4|(I=S.indexOf(P.charAt(M++)))>>2,V=(3&I)<<6|(B=S.indexOf(P.charAt(M++))),j[N++]=$,64!==I&&(j[N++]=W),64!==B&&(j[N++]=V);return j}},{"./support":30,"./utils":32}],2:[function(q,Re,Y){"use strict";var F=q("./external"),R=q("./stream/DataWorker"),S=q("./stream/Crc32Probe"),P=q("./stream/DataLengthProbe");function $(W,V,G,I,B){this.compressedSize=W,this.uncompressedSize=V,this.crc32=G,this.compression=I,this.compressedContent=B}$.prototype={getContentWorker:function(){var W=new R(F.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new P("data_length")),V=this;return W.on("end",function(){if(this.streamInfo.data_length!==V.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),W},getCompressedWorker:function(){return new R(F.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},$.createWorkerFrom=function(W,V,G){return W.pipe(new S).pipe(new P("uncompressedSize")).pipe(V.compressWorker(G)).pipe(new P("compressedSize")).withStreamInfo("compression",V)},Re.exports=$},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(q,Re,Y){"use strict";var F=q("./stream/GenericWorker");Y.STORE={magic:"\0\0",compressWorker:function(){return new F("STORE compression")},uncompressWorker:function(){return new F("STORE decompression")}},Y.DEFLATE=q("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(q,Re,Y){"use strict";var F=q("./utils"),R=function(){for(var S,P=[],$=0;$<256;$++){S=$;for(var W=0;W<8;W++)S=1&S?3988292384^S>>>1:S>>>1;P[$]=S}return P}();Re.exports=function(S,P){return void 0!==S&&S.length?"string"!==F.getTypeOf(S)?function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W[M])];return-1^$}(0|P,S,S.length):function($,W,V,G){var I=R,B=0+V;$^=-1;for(var M=0;M>>8^I[255&($^W.charCodeAt(M))];return-1^$}(0|P,S,S.length):0}},{"./utils":32}],5:[function(q,Re,Y){"use strict";Y.base64=!1,Y.binary=!1,Y.dir=!1,Y.createFolders=!0,Y.date=null,Y.compression=null,Y.compressionOptions=null,Y.comment=null,Y.unixPermissions=null,Y.dosPermissions=null},{}],6:[function(q,Re,Y){"use strict";var F;F=typeof Promise<"u"?Promise:q("lie"),Re.exports={Promise:F}},{lie:37}],7:[function(q,Re,Y){"use strict";var F=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",R=q("pako"),S=q("./utils"),P=q("./stream/GenericWorker"),$=F?"uint8array":"array";function W(V,G){P.call(this,"FlateWorker/"+V),this._pako=null,this._pakoAction=V,this._pakoOptions=G,this.meta={}}Y.magic="\b\0",S.inherits(W,P),W.prototype.processChunk=function(V){this.meta=V.meta,null===this._pako&&this._createPako(),this._pako.push(S.transformTo($,V.data),!1)},W.prototype.flush=function(){P.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},W.prototype.cleanUp=function(){P.prototype.cleanUp.call(this),this._pako=null},W.prototype._createPako=function(){this._pako=new R[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var V=this;this._pako.onData=function(G){V.push({data:G,meta:V.meta})}},Y.compressWorker=function(V){return new W("Deflate",V)},Y.uncompressWorker=function(){return new W("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(q,Re,Y){"use strict";function F(I,B){var M,N="";for(M=0;M>>=8;return N}function R(I,B,M,N,E,j){var K,oe,te=I.file,Te=I.compression,we=j!==$.utf8encode,Fe=S.transformTo("string",j(te.name)),ye=S.transformTo("string",$.utf8encode(te.name)),Ge=te.comment,mt=S.transformTo("string",j(Ge)),H=S.transformTo("string",$.utf8encode(Ge)),Ce=ye.length!==te.name.length,x=H.length!==Ge.length,Me="",Rt="",Le="",Vt=te.dir,Ve=te.date,Tt={crc32:0,compressedSize:0,uncompressedSize:0};B&&!M||(Tt.crc32=I.crc32,Tt.compressedSize=I.compressedSize,Tt.uncompressedSize=I.uncompressedSize);var fe=0;B&&(fe|=8),we||!Ce&&!x||(fe|=2048);var Qe,Fn,le=0,bt=0;Vt&&(le|=16),"UNIX"===E?(bt=798,le|=(Fn=Qe=te.unixPermissions,Qe||(Fn=Vt?16893:33204),(65535&Fn)<<16)):(bt=20,le|=function(Qe){return 63&(Qe||0)}(te.dosPermissions)),K=Ve.getUTCHours(),K<<=6,K|=Ve.getUTCMinutes(),K<<=5,K|=Ve.getUTCSeconds()/2,oe=Ve.getUTCFullYear()-1980,oe<<=4,oe|=Ve.getUTCMonth()+1,oe<<=5,oe|=Ve.getUTCDate(),Ce&&(Rt=F(1,1)+F(W(Fe),4)+ye,Me+="up"+F(Rt.length,2)+Rt),x&&(Le=F(1,1)+F(W(mt),4)+H,Me+="uc"+F(Le.length,2)+Le);var it="";return it+="\n\0",it+=F(fe,2),it+=Te.magic,it+=F(K,2),it+=F(oe,2),it+=F(Tt.crc32,4),it+=F(Tt.compressedSize,4),it+=F(Tt.uncompressedSize,4),it+=F(Fe.length,2),it+=F(Me.length,2),{fileRecord:V.LOCAL_FILE_HEADER+it+Fe+Me,dirRecord:V.CENTRAL_FILE_HEADER+F(bt,2)+it+F(mt.length,2)+"\0\0\0\0"+F(le,4)+F(N,4)+Fe+Me+mt}}var S=q("../utils"),P=q("../stream/GenericWorker"),$=q("../utf8"),W=q("../crc32"),V=q("../signature");function G(I,B,M,N){P.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=B,this.zipPlatform=M,this.encodeFileName=N,this.streamFiles=I,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}S.inherits(G,P),G.prototype.push=function(I){var B=I.meta.percent||0,M=this.entriesCount,N=this._sources.length;this.accumulate?this.contentBuffer.push(I):(this.bytesWritten+=I.data.length,P.prototype.push.call(this,{data:I.data,meta:{currentFile:this.currentFile,percent:M?(B+100*(M-N-1))/M:100}}))},G.prototype.openedSource=function(I){this.currentSourceOffset=this.bytesWritten,this.currentFile=I.file.name;var B=this.streamFiles&&!I.file.dir;if(B){var M=R(I,B,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:M.fileRecord,meta:{percent:0}})}else this.accumulate=!0},G.prototype.closedSource=function(I){this.accumulate=!1;var N,B=this.streamFiles&&!I.file.dir,M=R(I,B,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(M.dirRecord),B)this.push({data:(N=I,V.DATA_DESCRIPTOR+F(N.crc32,4)+F(N.compressedSize,4)+F(N.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:M.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},G.prototype.flush=function(){for(var I=this.bytesWritten,B=0;B=this.index;P--)$=($<<8)+this.byteAt(P);return this.index+=S,$},readString:function(S){return F.transformTo("string",this.readData(S))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var S=this.readInt(4);return new Date(Date.UTC(1980+(S>>25&127),(S>>21&15)-1,S>>16&31,S>>11&31,S>>5&63,(31&S)<<1))}},Re.exports=R},{"../utils":32}],19:[function(q,Re,Y){"use strict";var F=q("./Uint8ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(q,Re,Y){"use strict";var F=q("./DataReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.byteAt=function(S){return this.data.charCodeAt(this.zero+S)},R.prototype.lastIndexOfSignature=function(S){return this.data.lastIndexOf(S)-this.zero},R.prototype.readAndCheckSignature=function(S){return S===this.readData(4)},R.prototype.readData=function(S){this.checkOffset(S);var P=this.data.slice(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./DataReader":18}],21:[function(q,Re,Y){"use strict";var F=q("./ArrayReader");function R(S){F.call(this,S)}q("../utils").inherits(R,F),R.prototype.readData=function(S){if(this.checkOffset(S),0===S)return new Uint8Array(0);var P=this.data.subarray(this.zero+this.index,this.zero+this.index+S);return this.index+=S,P},Re.exports=R},{"../utils":32,"./ArrayReader":17}],22:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("../support"),S=q("./ArrayReader"),P=q("./StringReader"),$=q("./NodeBufferReader"),W=q("./Uint8ArrayReader");Re.exports=function(V){var G=F.getTypeOf(V);return F.checkSupport(G),"string"!==G||R.uint8array?"nodebuffer"===G?new $(V):R.uint8array?new W(F.transformTo("uint8array",V)):new S(F.transformTo("array",V)):new P(V)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(q,Re,Y){"use strict";Y.LOCAL_FILE_HEADER="PK\x03\x04",Y.CENTRAL_FILE_HEADER="PK\x01\x02",Y.CENTRAL_DIRECTORY_END="PK\x05\x06",Y.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Y.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Y.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../utils");function S(P){F.call(this,"ConvertWorker to "+P),this.destType=P}R.inherits(S,F),S.prototype.processChunk=function(P){this.push({data:R.transformTo(this.destType,P.data),meta:P.meta})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],25:[function(q,Re,Y){"use strict";var F=q("./GenericWorker"),R=q("../crc32");function S(){F.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}q("../utils").inherits(S,F),S.prototype.processChunk=function(P){this.streamInfo.crc32=R(P.data,this.streamInfo.crc32||0),this.push(P)},Re.exports=S},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataLengthProbe for "+P),this.propName=P,this.withStreamInfo(P,0)}F.inherits(S,R),S.prototype.processChunk=function(P){P&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+P.data.length),R.prototype.processChunk.call(this,P)},Re.exports=S},{"../utils":32,"./GenericWorker":28}],27:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./GenericWorker");function S(P){R.call(this,"DataWorker");var $=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,P.then(function(W){$.dataIsReady=!0,$.data=W,$.max=W&&W.length||0,$.type=F.getTypeOf(W),$.isPaused||$._tickAndRepeat()},function(W){$.error(W)})}F.inherits(S,R),S.prototype.cleanUp=function(){R.prototype.cleanUp.call(this),this.data=null},S.prototype.resume=function(){return!!R.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,F.delay(this._tickAndRepeat,[],this)),!0)},S.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(F.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},S.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var P=null,$=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":P=this.data.substring(this.index,$);break;case"uint8array":P=this.data.subarray(this.index,$);break;case"array":case"nodebuffer":P=this.data.slice(this.index,$)}return this.index=$,this.push({data:P,meta:{percent:this.max?this.index/this.max*100:0}})},Re.exports=S},{"../utils":32,"./GenericWorker":28}],28:[function(q,Re,Y){"use strict";function F(R){this.name=R||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}F.prototype={push:function(R){this.emit("data",R)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(R){this.emit("error",R)}return!0},error:function(R){return!this.isFinished&&(this.isPaused?this.generatedError=R:(this.isFinished=!0,this.emit("error",R),this.previous&&this.previous.error(R),this.cleanUp()),!0)},on:function(R,S){return this._listeners[R].push(S),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(R,S){if(this._listeners[R])for(var P=0;P "+R:R}},Re.exports=F},{}],29:[function(q,Re,Y){"use strict";var F=q("../utils"),R=q("./ConvertWorker"),S=q("./GenericWorker"),P=q("../base64"),$=q("../support"),W=q("../external"),V=null;if($.nodestream)try{V=q("../nodejs/NodejsStreamOutputAdapter")}catch{}function I(B,M,N){var E=M;switch(M){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=M,this._mimeType=N,F.checkSupport(E),this._worker=B.pipe(new R(E)),B.lock()}catch(j){this._worker=new S("error"),this._worker.error(j)}}I.prototype={accumulate:function(B){return function G(B,M){return new W.Promise(function(N,E){var j=[],K=B._internalType,oe=B._outputType,te=B._mimeType;B.on("data",function(Te,we){j.push(Te),M&&M(we)}).on("error",function(Te){j=[],E(Te)}).on("end",function(){try{var Te=function(we,Fe,ye){switch(we){case"blob":return F.newBlob(F.transformTo("arraybuffer",Fe),ye);case"base64":return P.encode(Fe);default:return F.transformTo(we,Fe)}}(oe,function(we,Fe){var ye,Ge=0,mt=null,H=0;for(ye=0;ye"u")Y.blob=!1;else{var F=new ArrayBuffer(0);try{Y.blob=0===new Blob([F],{type:"application/zip"}).size}catch{try{var R=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);R.append(F),Y.blob=0===R.getBlob("application/zip").size}catch{Y.blob=!1}}}try{Y.nodestream=!!q("readable-stream").Readable}catch{Y.nodestream=!1}},{"readable-stream":16}],31:[function(q,Re,Y){"use strict";for(var F=q("./utils"),R=q("./support"),S=q("./nodejsUtils"),P=q("./stream/GenericWorker"),$=new Array(256),W=0;W<256;W++)$[W]=252<=W?6:248<=W?5:240<=W?4:224<=W?3:192<=W?2:1;function V(){P.call(this,"utf-8 decode"),this.leftOver=null}function G(){P.call(this,"utf-8 encode")}$[254]=$[254]=1,Y.utf8encode=function(I){return R.nodebuffer?S.newBufferFrom(I,"utf-8"):function(B){var M,N,E,j,K,oe=B.length,te=0;for(j=0;j>>6:(N<65536?M[K++]=224|N>>>12:(M[K++]=240|N>>>18,M[K++]=128|N>>>12&63),M[K++]=128|N>>>6&63),M[K++]=128|63&N);return M}(I)},Y.utf8decode=function(I){return R.nodebuffer?F.transformTo("nodebuffer",I).toString("utf-8"):function(B){var M,N,E,j,K=B.length,oe=new Array(2*K);for(M=N=0;M>10&1023,oe[N++]=56320|1023&E)}return oe.length!==N&&(oe.subarray?oe=oe.subarray(0,N):oe.length=N),F.applyFromCharCode(oe)}(I=F.transformTo(R.uint8array?"uint8array":"array",I))},F.inherits(V,P),V.prototype.processChunk=function(I){var B=F.transformTo(R.uint8array?"uint8array":"array",I.data);if(this.leftOver&&this.leftOver.length){if(R.uint8array){var M=B;(B=new Uint8Array(M.length+this.leftOver.length)).set(this.leftOver,0),B.set(M,this.leftOver.length)}else B=this.leftOver.concat(B);this.leftOver=null}var N=function(j,K){var oe;for((K=K||j.length)>j.length&&(K=j.length),oe=K-1;0<=oe&&128==(192&j[oe]);)oe--;return oe<0||0===oe?K:oe+$[j[oe]]>K?oe:K}(B),E=B;N!==B.length&&(R.uint8array?(E=B.subarray(0,N),this.leftOver=B.subarray(N,B.length)):(E=B.slice(0,N),this.leftOver=B.slice(N,B.length))),this.push({data:Y.utf8decode(E),meta:I.meta})},V.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Y.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Y.Utf8DecodeWorker=V,F.inherits(G,P),G.prototype.processChunk=function(I){this.push({data:Y.utf8encode(I.data),meta:I.meta})},Y.Utf8EncodeWorker=G},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(q,Re,Y){"use strict";var F=q("./support"),R=q("./base64"),S=q("./nodejsUtils"),P=q("./external");function $(M){return M}function W(M,N){for(var E=0;E>8;this.dir=!!(16&this.externalFileAttributes),0==I&&(this.dosPermissions=63&this.externalFileAttributes),3==I&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var I=F(this.extraFields[1].value);this.uncompressedSize===R.MAX_VALUE_32BITS&&(this.uncompressedSize=I.readInt(8)),this.compressedSize===R.MAX_VALUE_32BITS&&(this.compressedSize=I.readInt(8)),this.localHeaderOffset===R.MAX_VALUE_32BITS&&(this.localHeaderOffset=I.readInt(8)),this.diskNumberStart===R.MAX_VALUE_32BITS&&(this.diskNumberStart=I.readInt(4))}},readExtraFields:function(I){var B,M,N,E=I.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});I.index+4>>6:(I<65536?G[N++]=224|I>>>12:(G[N++]=240|I>>>18,G[N++]=128|I>>>12&63),G[N++]=128|I>>>6&63),G[N++]=128|63&I);return G},Y.buf2binstring=function(V){return W(V,V.length)},Y.binstring2buf=function(V){for(var G=new F.Buf8(V.length),I=0,B=G.length;I>10&1023,j[B++]=56320|1023&M)}return W(j,B)},Y.utf8border=function(V,G){var I;for((G=G||V.length)>V.length&&(G=V.length),I=G-1;0<=I&&128==(192&V[I]);)I--;return I<0||0===I?G:I+P[V[I]]>G?I:G}},{"./common":41}],43:[function(q,Re,Y){"use strict";Re.exports=function(F,R,S,P){for(var $=65535&F|0,W=F>>>16&65535|0,V=0;0!==S;){for(S-=V=2e3>>1:R>>>1;S[P]=R}return S}();Re.exports=function(R,S,P,$){var W=F,V=$+P;R^=-1;for(var G=$;G>>8^W[255&(R^S[G])];return-1^R}},{}],46:[function(q,Re,Y){"use strict";var F,R=q("../utils/common"),S=q("./trees"),P=q("./adler32"),$=q("./crc32"),W=q("./messages"),V=0,I=0,B=-2,E=2,j=8,oe=286,te=30,Te=19,we=2*oe+1,Fe=15,ye=3,Ge=258,mt=Ge+ye+1,H=42,Ce=113;function Vt(v,Se){return v.msg=W[Se],Se}function Ve(v){return(v<<1)-(4v.avail_out&&(J=v.avail_out),0!==J&&(R.arraySet(v.output,Se.pending_buf,Se.pending_out,J,v.next_out),v.next_out+=J,Se.pending_out+=J,v.total_out+=J,v.avail_out-=J,Se.pending-=J,0===Se.pending&&(Se.pending_out=0))}function le(v,Se){S._tr_flush_block(v,0<=v.block_start?v.block_start:-1,v.strstart-v.block_start,Se),v.block_start=v.strstart,fe(v.strm)}function bt(v,Se){v.pending_buf[v.pending++]=Se}function it(v,Se){v.pending_buf[v.pending++]=Se>>>8&255,v.pending_buf[v.pending++]=255&Se}function Qe(v,Se){var J,L,O=v.max_chain_length,Z=v.strstart,de=v.prev_length,Ee=v.nice_match,ce=v.strstart>v.w_size-mt?v.strstart-(v.w_size-mt):0,je=v.window,Je=v.w_mask,ze=v.prev,ht=v.strstart+Ge,oi=je[Z+de-1],Kt=je[Z+de];v.prev_length>=v.good_match&&(O>>=2),Ee>v.lookahead&&(Ee=v.lookahead);do{if(je[(J=Se)+de]===Kt&&je[J+de-1]===oi&&je[J]===je[Z]&&je[++J]===je[Z+1]){Z+=2,J++;do{}while(je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&je[++Z]===je[++J]&&Zce&&0!=--O);return de<=v.lookahead?de:v.lookahead}function Zi(v){var Se,J,L,O,Z,de,Ee,ce,je,Je,ze=v.w_size;do{if(O=v.window_size-v.lookahead-v.strstart,v.strstart>=ze+(ze-mt)){for(R.arraySet(v.window,v.window,ze,ze,0),v.match_start-=ze,v.strstart-=ze,v.block_start-=ze,Se=J=v.hash_size;L=v.head[--Se],v.head[Se]=ze<=L?L-ze:0,--J;);for(Se=J=ze;L=v.prev[--Se],v.prev[Se]=ze<=L?L-ze:0,--J;);O+=ze}if(0===v.strm.avail_in)break;if(Ee=v.window,ce=v.strstart+v.lookahead,Je=void 0,(je=O)<(Je=(de=v.strm).avail_in)&&(Je=je),J=0===Je?0:(de.avail_in-=Je,R.arraySet(Ee,de.input,de.next_in,Je,ce),1===de.state.wrap?de.adler=P(de.adler,Ee,Je,ce):2===de.state.wrap&&(de.adler=$(de.adler,Ee,Je,ce)),de.next_in+=Je,de.total_in+=Je,Je),v.lookahead+=J,v.lookahead+v.insert>=ye)for(v.ins_h=v.window[Z=v.strstart-v.insert],v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye)if(L=S._tr_tally(v,v.strstart-v.match_start,v.match_length-ye),v.lookahead-=v.match_length,v.match_length<=v.max_lazy_match&&v.lookahead>=ye){for(v.match_length--;v.strstart++,v.ins_h=(v.ins_h<=ye&&(v.ins_h=(v.ins_h<=ye&&v.match_length<=v.prev_length){for(O=v.strstart+v.lookahead-ye,L=S._tr_tally(v,v.strstart-1-v.prev_match,v.prev_length-ye),v.lookahead-=v.prev_length-1,v.prev_length-=2;++v.strstart<=O&&(v.ins_h=(v.ins_h<v.pending_buf_size-5&&(J=v.pending_buf_size-5);;){if(v.lookahead<=1){if(Zi(v),0===v.lookahead&&Se===V)return 1;if(0===v.lookahead)break}v.strstart+=v.lookahead,v.lookahead=0;var L=v.block_start+J;if((0===v.strstart||v.strstart>=L)&&(v.lookahead=v.strstart-L,v.strstart=L,le(v,!1),0===v.strm.avail_out)||v.strstart-v.block_start>=v.w_size-mt&&(le(v,!1),0===v.strm.avail_out))return 1}return v.insert=0,4===Se?(le(v,!0),0===v.strm.avail_out?3:4):(v.strstart>v.block_start&&le(v,!1),1)}),new ni(4,4,8,4,Fn),new ni(4,5,16,8,Fn),new ni(4,6,32,32,Fn),new ni(4,4,16,16,Wt),new ni(8,16,32,32,Wt),new ni(8,16,128,128,Wt),new ni(8,32,128,256,Wt),new ni(32,128,258,1024,Wt),new ni(32,258,258,4096,Wt)],Y.deflateInit=function(v,Se){return fo(v,Se,j,15,8,0)},Y.deflateInit2=fo,Y.deflateReset=ar,Y.deflateResetKeep=Ui,Y.deflateSetHeader=function(v,Se){return v&&v.state?2!==v.state.wrap?B:(v.state.gzhead=Se,I):B},Y.deflate=function(v,Se){var J,L,O,Z;if(!v||!v.state||5>8&255),bt(L,L.gzhead.time>>16&255),bt(L,L.gzhead.time>>24&255),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,255&L.gzhead.os),L.gzhead.extra&&L.gzhead.extra.length&&(bt(L,255&L.gzhead.extra.length),bt(L,L.gzhead.extra.length>>8&255)),L.gzhead.hcrc&&(v.adler=$(v.adler,L.pending_buf,L.pending,0)),L.gzindex=0,L.status=69):(bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,0),bt(L,9===L.level?2:2<=L.strategy||L.level<2?4:0),bt(L,3),L.status=Ce);else{var de=j+(L.w_bits-8<<4)<<8;de|=(2<=L.strategy||L.level<2?0:L.level<6?1:6===L.level?2:3)<<6,0!==L.strstart&&(de|=32),de+=31-de%31,L.status=Ce,it(L,de),0!==L.strstart&&(it(L,v.adler>>>16),it(L,65535&v.adler)),v.adler=1}if(69===L.status)if(L.gzhead.extra){for(O=L.pending;L.gzindex<(65535&L.gzhead.extra.length)&&(L.pending!==L.pending_buf_size||(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending!==L.pending_buf_size));)bt(L,255&L.gzhead.extra[L.gzindex]),L.gzindex++;L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),L.gzindex===L.gzhead.extra.length&&(L.gzindex=0,L.status=73)}else L.status=73;if(73===L.status)if(L.gzhead.name){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.gzindex=0,L.status=91)}else L.status=91;if(91===L.status)if(L.gzhead.comment){O=L.pending;do{if(L.pending===L.pending_buf_size&&(L.gzhead.hcrc&&L.pending>O&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),fe(v),O=L.pending,L.pending===L.pending_buf_size)){Z=1;break}Z=L.gzindexO&&(v.adler=$(v.adler,L.pending_buf,L.pending-O,O)),0===Z&&(L.status=103)}else L.status=103;if(103===L.status&&(L.gzhead.hcrc?(L.pending+2>L.pending_buf_size&&fe(v),L.pending+2<=L.pending_buf_size&&(bt(L,255&v.adler),bt(L,v.adler>>8&255),v.adler=0,L.status=Ce)):L.status=Ce),0!==L.pending){if(fe(v),0===v.avail_out)return L.last_flush=-1,I}else if(0===v.avail_in&&Ve(Se)<=Ve(J)&&4!==Se)return Vt(v,-5);if(666===L.status&&0!==v.avail_in)return Vt(v,-5);if(0!==v.avail_in||0!==L.lookahead||Se!==V&&666!==L.status){var Ee=2===L.strategy?function(ce,je){for(var Je;;){if(0===ce.lookahead&&(Zi(ce),0===ce.lookahead)){if(je===V)return 1;break}if(ce.match_length=0,Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++,Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):3===L.strategy?function(ce,je){for(var Je,ze,ht,oi,Kt=ce.window;;){if(ce.lookahead<=Ge){if(Zi(ce),ce.lookahead<=Ge&&je===V)return 1;if(0===ce.lookahead)break}if(ce.match_length=0,ce.lookahead>=ye&&0ce.lookahead&&(ce.match_length=ce.lookahead)}if(ce.match_length>=ye?(Je=S._tr_tally(ce,1,ce.match_length-ye),ce.lookahead-=ce.match_length,ce.strstart+=ce.match_length,ce.match_length=0):(Je=S._tr_tally(ce,0,ce.window[ce.strstart]),ce.lookahead--,ce.strstart++),Je&&(le(ce,!1),0===ce.strm.avail_out))return 1}return ce.insert=0,4===je?(le(ce,!0),0===ce.strm.avail_out?3:4):ce.last_lit&&(le(ce,!1),0===ce.strm.avail_out)?1:2}(L,Se):F[L.level].func(L,Se);if(3!==Ee&&4!==Ee||(L.status=666),1===Ee||3===Ee)return 0===v.avail_out&&(L.last_flush=-1),I;if(2===Ee&&(1===Se?S._tr_align(L):5!==Se&&(S._tr_stored_block(L,0,0,!1),3===Se&&(Tt(L.head),0===L.lookahead&&(L.strstart=0,L.block_start=0,L.insert=0))),fe(v),0===v.avail_out))return L.last_flush=-1,I}return 4!==Se?I:L.wrap<=0?1:(2===L.wrap?(bt(L,255&v.adler),bt(L,v.adler>>8&255),bt(L,v.adler>>16&255),bt(L,v.adler>>24&255),bt(L,255&v.total_in),bt(L,v.total_in>>8&255),bt(L,v.total_in>>16&255),bt(L,v.total_in>>24&255)):(it(L,v.adler>>>16),it(L,65535&v.adler)),fe(v),0=J.w_size&&(0===Z&&(Tt(J.head),J.strstart=0,J.block_start=0,J.insert=0),je=new R.Buf8(J.w_size),R.arraySet(je,Se,Je-J.w_size,J.w_size,0),Se=je,Je=J.w_size),de=v.avail_in,Ee=v.next_in,ce=v.input,v.avail_in=Je,v.next_in=0,v.input=Se,Zi(J);J.lookahead>=ye;){for(L=J.strstart,O=J.lookahead-(ye-1);J.ins_h=(J.ins_h<>>=ye=Fe>>>24,K-=ye,0==(ye=Fe>>>16&255))Me[W++]=65535&Fe;else{if(!(16&ye)){if(!(64&ye)){Fe=oe[(65535&Fe)+(j&(1<>>=ye,K-=ye),K<15&&(j+=x[P++]<>>=ye=Fe>>>24,K-=ye,!(16&(ye=Fe>>>16&255))){if(!(64&ye)){Fe=te[(65535&Fe)+(j&(1<>>=ye,K-=ye,(ye=W-V)>3,j&=(1<<(K-=Ge<<3))-1,F.next_in=P,F.next_out=W,F.avail_in=P<$?$-P+5:5-(P-$),F.avail_out=W>>24&255)+(H>>>8&65280)+((65280&H)<<8)+((255&H)<<24)}function j(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new F.Buf16(320),this.work=new F.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function K(H){var Ce;return H&&H.state?(H.total_in=H.total_out=(Ce=H.state).total=0,H.msg="",Ce.wrap&&(H.adler=1&Ce.wrap),Ce.mode=B,Ce.last=0,Ce.havedict=0,Ce.dmax=32768,Ce.head=null,Ce.hold=0,Ce.bits=0,Ce.lencode=Ce.lendyn=new F.Buf32(M),Ce.distcode=Ce.distdyn=new F.Buf32(N),Ce.sane=1,Ce.back=-1,G):I}function oe(H){var Ce;return H&&H.state?((Ce=H.state).wsize=0,Ce.whave=0,Ce.wnext=0,K(H)):I}function te(H,Ce){var x,Me;return H&&H.state?(Me=H.state,Ce<0?(x=0,Ce=-Ce):(x=1+(Ce>>4),Ce<48&&(Ce&=15)),Ce&&(Ce<8||15=Le.wsize?(F.arraySet(Le.window,Ce,x-Le.wsize,Le.wsize,0),Le.wnext=0,Le.whave=Le.wsize):(Me<(Rt=Le.wsize-Le.wnext)&&(Rt=Me),F.arraySet(Le.window,Ce,x-Me,Rt,Le.wnext),(Me-=Rt)?(F.arraySet(Le.window,Ce,x-Me,Me,0),Le.wnext=Me,Le.whave=Le.wsize):(Le.wnext+=Rt,Le.wnext===Le.wsize&&(Le.wnext=0),Le.whave>>8&255,x.check=S(x.check,Z,2,0),le=fe=0,x.mode=2;break}if(x.flags=0,x.head&&(x.head.done=!1),!(1&x.wrap)||(((255&fe)<<8)+(fe>>8))%31){H.msg="incorrect header check",x.mode=30;break}if(8!=(15&fe)){H.msg="unknown compression method",x.mode=30;break}if(le-=4,v=8+(15&(fe>>>=4)),0===x.wbits)x.wbits=v;else if(v>x.wbits){H.msg="invalid window size",x.mode=30;break}x.dmax=1<>8&1),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=3;case 3:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,Z[2]=fe>>>16&255,Z[3]=fe>>>24&255,x.check=S(x.check,Z,4,0)),le=fe=0,x.mode=4;case 4:for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>8),512&x.flags&&(Z[0]=255&fe,Z[1]=fe>>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0,x.mode=5;case 5:if(1024&x.flags){for(;le<16;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>8&255,x.check=S(x.check,Z,2,0)),le=fe=0}else x.head&&(x.head.extra=null);x.mode=6;case 6:if(1024&x.flags&&(Ve<(Qe=x.length)&&(Qe=Ve),Qe&&(x.head&&(v=x.head.extra_len-x.length,x.head.extra||(x.head.extra=new Array(x.head.extra_len)),F.arraySet(x.head.extra,Me,Le,Qe,v)),512&x.flags&&(x.check=S(x.check,Me,Qe,Le)),Ve-=Qe,Le+=Qe,x.length-=Qe),x.length))break e;x.length=0,x.mode=7;case 7:if(2048&x.flags){if(0===Ve)break e;for(Qe=0;v=Me[Le+Qe++],x.head&&v&&x.length<65536&&(x.head.name+=String.fromCharCode(v)),v&&Qe>9&1,x.head.done=!0),H.adler=x.check=0,x.mode=12;break;case 10:for(;le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=7&le,le-=7&le,x.mode=27;break}for(;le<3;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=1)){case 0:x.mode=14;break;case 1:if(Ge(x),x.mode=20,6!==Ce)break;fe>>>=2,le-=2;break e;case 2:x.mode=17;break;case 3:H.msg="invalid block type",x.mode=30}fe>>>=2,le-=2;break;case 14:for(fe>>>=7&le,le-=7≤le<32;){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>16^65535)){H.msg="invalid stored block lengths",x.mode=30;break}if(x.length=65535&fe,le=fe=0,x.mode=15,6===Ce)break e;case 15:x.mode=16;case 16:if(Qe=x.length){if(Ve>>=5)),le-=5,x.ncode=4+(15&(fe>>>=5)),fe>>>=4,le-=4,286>>=3,le-=3}for(;x.have<19;)x.lens[de[x.have++]]=0;if(x.lencode=x.lendyn,x.lenbits=7,Se=$(0,x.lens,0,19,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid code lengths set",x.mode=30;break}x.have=0,x.mode=19;case 19:for(;x.have>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Wt,le-=Wt,x.lens[x.have++]=cn;else{if(16===cn){for(L=Wt+2;le>>=Wt,le-=Wt,0===x.have){H.msg="invalid bit length repeat",x.mode=30;break}v=x.lens[x.have-1],Qe=3+(3&fe),fe>>>=2,le-=2}else if(17===cn){for(L=Wt+3;le>>=Wt)),fe>>>=3,le-=3}else{for(L=Wt+7;le>>=Wt)),fe>>>=7,le-=7}if(x.have+Qe>x.nlen+x.ndist){H.msg="invalid bit length repeat",x.mode=30;break}for(;Qe--;)x.lens[x.have++]=v}}if(30===x.mode)break;if(0===x.lens[256]){H.msg="invalid code -- missing end-of-block",x.mode=30;break}if(x.lenbits=9,Se=$(1,x.lens,0,x.nlen,x.lencode,0,x.work,J={bits:x.lenbits}),x.lenbits=J.bits,Se){H.msg="invalid literal/lengths set",x.mode=30;break}if(x.distbits=6,x.distcode=x.distdyn,Se=$(2,x.lens,x.nlen,x.ndist,x.distcode,0,x.work,J={bits:x.distbits}),x.distbits=J.bits,Se){H.msg="invalid distances set",x.mode=30;break}if(x.mode=20,6===Ce)break e;case 20:x.mode=21;case 21:if(6<=Ve&&258<=Tt){H.next_out=Vt,H.avail_out=Tt,H.next_in=Le,H.avail_in=Ve,x.hold=fe,x.bits=le,P(H,it),Vt=H.next_out,Rt=H.output,Tt=H.avail_out,Le=H.next_in,Me=H.input,Ve=H.avail_in,fe=x.hold,le=x.bits,12===x.mode&&(x.back=-1);break}for(x.back=0;ni=(O=x.lencode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,x.length=cn,0===ni){x.mode=26;break}if(32&ni){x.back=-1,x.mode=12;break}if(64&ni){H.msg="invalid literal/length code",x.mode=30;break}x.extra=15&ni,x.mode=22;case 22:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}x.was=x.length,x.mode=23;case 23:for(;ni=(O=x.distcode[fe&(1<>>16&255,cn=65535&O,!((Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>Ui)])>>>16&255,cn=65535&O,!(Ui+(Wt=O>>>24)<=le);){if(0===Ve)break e;Ve--,fe+=Me[Le++]<>>=Ui,le-=Ui,x.back+=Ui}if(fe>>>=Wt,le-=Wt,x.back+=Wt,64&ni){H.msg="invalid distance code",x.mode=30;break}x.offset=cn,x.extra=15&ni,x.mode=24;case 24:if(x.extra){for(L=x.extra;le>>=x.extra,le-=x.extra,x.back+=x.extra}if(x.offset>x.dmax){H.msg="invalid distance too far back",x.mode=30;break}x.mode=25;case 25:if(0===Tt)break e;if(x.offset>(Qe=it-Tt)){if((Qe=x.offset-Qe)>x.whave&&x.sane){H.msg="invalid distance too far back",x.mode=30;break}Zi=Qe>x.wnext?x.wsize-(Qe-=x.wnext):x.wnext-Qe,Qe>x.length&&(Qe=x.length),Fn=x.window}else Fn=Rt,Zi=Vt-x.offset,Qe=x.length;for(Ttwe?(ye=Zi[Fn+N[Ce]],le[bt+N[Ce]]):(ye=96,0),j=1<>Vt)+(K-=j)]=Fe<<24|ye<<16|Ge|0,0!==K;);for(j=1<>=1;if(0!==j?(fe&=j-1,fe+=j):fe=0,Ce++,0==--it[H]){if(H===Me)break;H=V[G+N[Ce]]}if(Rt>>7)]}function bt(O,Z){O.pending_buf[O.pending++]=255&Z,O.pending_buf[O.pending++]=Z>>>8&255}function it(O,Z,de){O.bi_valid>E-de?(O.bi_buf|=Z<>E-O.bi_valid,O.bi_valid+=de-E):(O.bi_buf|=Z<>>=1,de<<=1,0<--Z;);return de>>>1}function Fn(O,Z,de){var Ee,ce,je=new Array(N+1),Je=0;for(Ee=1;Ee<=N;Ee++)je[Ee]=Je=Je+de[Ee-1]<<1;for(ce=0;ce<=Z;ce++){var ze=O[2*ce+1];0!==ze&&(O[2*ce]=Zi(je[ze]++,ze))}}function Wt(O){var Z;for(Z=0;Z>1;1<=de;de--)Ui(O,je,de);for(ce=ht;de=O.heap[1],O.heap[1]=O.heap[O.heap_len--],Ui(O,je,1),Ee=O.heap[1],O.heap[--O.heap_max]=de,O.heap[--O.heap_max]=Ee,je[2*ce]=je[2*de]+je[2*Ee],O.depth[ce]=(O.depth[de]>=O.depth[Ee]?O.depth[de]:O.depth[Ee])+1,je[2*de+1]=je[2*Ee+1]=ce,O.heap[1]=ce++,Ui(O,je,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(Kt,go){var ws,_o,Mo,Ti,_c,xs,sr=go.dyn_tree,bc=go.max_code,Ag=go.stat_desc.static_tree,Ds=go.stat_desc.has_stree,vc=go.stat_desc.extra_bits,Sh=go.stat_desc.extra_base,Qr=go.stat_desc.max_length,yc=0;for(Ti=0;Ti<=N;Ti++)Kt.bl_count[Ti]=0;for(sr[2*Kt.heap[Kt.heap_max]+1]=0,ws=Kt.heap_max+1;ws<573;ws++)Qr<(Ti=sr[2*sr[2*(_o=Kt.heap[ws])+1]+1]+1)&&(Ti=Qr,yc++),sr[2*_o+1]=Ti,bc<_o||(Kt.bl_count[Ti]++,_c=0,Sh<=_o&&(_c=vc[_o-Sh]),Kt.opt_len+=(xs=sr[2*_o])*(Ti+_c),Ds&&(Kt.static_len+=xs*(Ag[2*_o+1]+_c)));if(0!==yc){do{for(Ti=Qr-1;0===Kt.bl_count[Ti];)Ti--;Kt.bl_count[Ti]--,Kt.bl_count[Ti+1]+=2,Kt.bl_count[Qr]--,yc-=2}while(0>=7;ce>>=1)if(1&oi&&0!==ze.dyn_ltree[2*ht])return 0;if(0!==ze.dyn_ltree[18]||0!==ze.dyn_ltree[20]||0!==ze.dyn_ltree[26])return 1;for(ht=32;ht>>3)<=(ce=O.opt_len+3+7>>>3)&&(ce=je)):ce=je=de+5,de+4<=ce&&-1!==Z?L(O,Z,de,Ee):4===O.strategy||je===ce?(it(O,2+(Ee?1:0),3),ar(O,mt,H)):(it(O,4+(Ee?1:0),3),function(ze,ht,oi,Kt){var go;for(it(ze,ht-257,5),it(ze,oi-1,5),it(ze,Kt-4,4),go=0;go>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&Z,O.pending_buf[O.l_buf+O.last_lit]=255&de,O.last_lit++,0===Z?O.dyn_ltree[2*de]++:(O.matches++,Z--,O.dyn_ltree[2*(x[de]+V+1)]++,O.dyn_dtree[2*le(Z)]++),O.last_lit===O.lit_bufsize-1},Y._tr_align=function(O){var Z;it(O,2,3),Qe(O,256,mt),16===(Z=O).bi_valid?(bt(Z,Z.bi_buf),Z.bi_buf=0,Z.bi_valid=0):8<=Z.bi_valid&&(Z.pending_buf[Z.pending++]=255&Z.bi_buf,Z.bi_buf>>=8,Z.bi_valid-=8)}},{"../utils/common":41}],53:[function(q,Re,Y){"use strict";Re.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(q,Re,Y){(function(F){!function(R,S){"use strict";if(!R.setImmediate){var P,$,W,V,G=1,I={},B=!1,M=R.document,N=Object.getPrototypeOf&&Object.getPrototypeOf(R);N=N&&N.setTimeout?N:R,P="[object process]"==={}.toString.call(R.process)?function(oe){process.nextTick(function(){j(oe)})}:function(){if(R.postMessage&&!R.importScripts){var oe=!0,te=R.onmessage;return R.onmessage=function(){oe=!1},R.postMessage("","*"),R.onmessage=te,oe}}()?(V="setImmediate$"+Math.random()+"$",R.addEventListener?R.addEventListener("message",K,!1):R.attachEvent("onmessage",K),function(oe){R.postMessage(V+oe,"*")}):R.MessageChannel?((W=new MessageChannel).port1.onmessage=function(oe){j(oe.data)},function(oe){W.port2.postMessage(oe)}):M&&"onreadystatechange"in M.createElement("script")?($=M.documentElement,function(oe){var te=M.createElement("script");te.onreadystatechange=function(){j(oe),te.onreadystatechange=null,$.removeChild(te),te=null},$.appendChild(te)}):function(oe){setTimeout(j,0,oe)},N.setImmediate=function(oe){"function"!=typeof oe&&(oe=new Function(""+oe));for(var te=new Array(arguments.length-1),Te=0;Te"u"?void 0===F?this:F:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)}},ld=>{ld(ld.s=536)}]); \ No newline at end of file diff --git a/ui/src/app/components/object-detail/object-detail.component.ts b/ui/src/app/components/object-detail/object-detail.component.ts index 10afb32fe..59043493e 100644 --- a/ui/src/app/components/object-detail/object-detail.component.ts +++ b/ui/src/app/components/object-detail/object-detail.component.ts @@ -925,7 +925,7 @@ export class ObjectDetailComponent implements OnInit { dialogRef.afterClosed().subscribe((dialogResult) => { if (dialogResult) { let interleavedChildId: string = - this.conv.SpSchema[this.currentObject!.id].ParentId != '' + this.conv.SpSchema[this.currentObject!.id].ParentTable.Id != '' ? this.currentObject!.id : this.conv.SpSchema[interleaveTableId].Id this.data @@ -1191,8 +1191,8 @@ export class ObjectDetailComponent implements OnInit { return this.currentObject?.type === ObjectExplorerNodeType.Table && this.currentObject.isSpannerNode && !this.currentObject.isDeleted && - this.conv.SpSchema[this.currentObject.id].ParentId != '' - ? this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentId]?.Name + this.conv.SpSchema[this.currentObject.id].ParentTable.Id != '' + ? this.conv.SpSchema[this.conv.SpSchema[this.currentObject.id].ParentTable.Id]?.Name : null } @@ -1520,14 +1520,14 @@ export class ObjectDetailComponent implements OnInit { } tableInterleaveWith(table: string): string { - if (this.conv.SpSchema[table].ParentId != '') { - return this.conv.SpSchema[table].ParentId + if (this.conv.SpSchema[table].ParentTable.Id != '') { + return this.conv.SpSchema[table].ParentTable.Id } let interleaveTable = '' Object.keys(this.conv.SpSchema).forEach((tableName: string) => { if ( - this.conv.SpSchema[tableName].ParentId != '' && - this.conv.SpSchema[tableName].ParentId == table + this.conv.SpSchema[tableName].ParentTable.Id != '' && + this.conv.SpSchema[tableName].ParentTable.Id == table ) { interleaveTable = tableName } @@ -1538,7 +1538,7 @@ export class ObjectDetailComponent implements OnInit { isPKPrefixModified(tableId: string, interleaveTableId: string): boolean { let parentPrimaryKey,childPrimaryKey: IIndexKey[] - if (this.conv.SpSchema[tableId].ParentId != interleaveTableId) { + if (this.conv.SpSchema[tableId].ParentTable.Id != interleaveTableId) { parentPrimaryKey = this.pkObj.Columns childPrimaryKey = this.conv.SpSchema[interleaveTableId].PrimaryKeys } else { diff --git a/ui/src/app/model/conv.ts b/ui/src/app/model/conv.ts index 0f2cffd59..8d4380f53 100644 --- a/ui/src/app/model/conv.ts +++ b/ui/src/app/model/conv.ts @@ -43,7 +43,7 @@ export interface NameAndCols { Cols: Record } -// Spanner schema +// Source schema export interface ITable { Name: string Id: string @@ -96,7 +96,12 @@ export interface ISpannerForeignKey { Id: string } -// source schema +export interface IInterleavedParent{ + Id: string + OnDelete: string +} + +// spanner schema export interface ICreateTable { Name: string ColIds: string[] @@ -105,7 +110,7 @@ export interface ICreateTable { PrimaryKeys: IIndexKey[] ForeignKeys: IForeignKey[] Indexes: ICreateIndex[] - ParentId: string + ParentTable: IInterleavedParent Comment: string Id: string } diff --git a/ui/src/app/services/conversion/conversion.service.ts b/ui/src/app/services/conversion/conversion.service.ts index 13eaa12e0..2ab80a104 100644 --- a/ui/src/app/services/conversion/conversion.service.ts +++ b/ui/src/app/services/conversion/conversion.service.ts @@ -85,11 +85,11 @@ export class ConversionService { name: spannerTable.Name, status: conversionRates[tableId], type: ObjectExplorerNodeType.Table, - parent: spannerTable.ParentId != '' ? conv.SpSchema[spannerTable.ParentId]?.Name : '', + parent: spannerTable.ParentTable.Id != '' ? conv.SpSchema[spannerTable.ParentTable.Id]?.Name : '', pos: -1, isSpannerNode: true, id: tableId, - parentId: spannerTable.ParentId, + parentId: spannerTable.ParentTable.Id, children: [ { name: `Indexes (${spannerTable.Indexes ? spannerTable.Indexes.length : 0})`, @@ -234,6 +234,7 @@ export class ConversionService { isSpannerNode: false, id: tableId, parentId: '', + parentOnDelete: '', children: [ { name: `Indexes (${srcTable.Indexes?.length || '0'})`, @@ -244,6 +245,7 @@ export class ConversionService { isSpannerNode: false, id: '', parentId: '', + parentOnDelete: '', children: srcTable.Indexes ? srcTable.Indexes.map((index: IIndex, i: number) => { return { diff --git a/ui/src/mocks/conv.ts b/ui/src/mocks/conv.ts index 2df3fb3a8..b65755a23 100644 --- a/ui/src/mocks/conv.ts +++ b/ui/src/mocks/conv.ts @@ -41,7 +41,7 @@ const mockIConv: IConv = { ] }, ], - ParentId: "", + ParentTable: {Id: "", OnDelete: ""}, Comment: "" } }, @@ -162,7 +162,7 @@ export const mockIConv2: IConv = { ] }, ], - ParentId: "", + ParentTable: {Id: "", OnDelete: ""}, Comment: "" }, "t2": { @@ -174,7 +174,7 @@ export const mockIConv2: IConv = { PrimaryKeys: [], ForeignKeys: [], Indexes: [], - ParentId: "", + ParentTable: {Id: "", OnDelete: ""}, Comment: "" } }, diff --git a/webv2/api/rules.go b/webv2/api/rules.go index f7962a1b8..68a6fa1f0 100644 --- a/webv2/api/rules.go +++ b/webv2/api/rules.go @@ -403,9 +403,9 @@ func revertShardIdColumnAsPrimaryKey(isAddedAtFirst bool) { func checkInterleaving() string { sessionState := session.GetSessionState() for _, spSchema := range sessionState.Conv.SpSchema { - if spSchema.ParentId != "" { + if spSchema.ParentTable.Id != "" { return spSchema.Name } } return "" -} \ No newline at end of file +} diff --git a/webv2/api/schema.go b/webv2/api/schema.go index 3a5a13e86..a635436e9 100644 --- a/webv2/api/schema.go +++ b/webv2/api/schema.go @@ -555,36 +555,32 @@ func UpdateForeignKeys(w http.ResponseWriter, r *http.Request) { updatedFKs := []ddl.Foreignkey{} for _, foreignKey := range sp.ForeignKeys { - for _, updatedForeignkey := range newFKs { + for i, updatedForeignkey := range newFKs { if foreignKey.Id == updatedForeignkey.Id && len(updatedForeignkey.ColIds) != 0 && updatedForeignkey.ReferTableId != "" { delete(usedNames, strings.ToLower(foreignKey.Name)) foreignKey.Name = updatedForeignkey.Name updatedFKs = append(updatedFKs, foreignKey) } - } - } - - position := -1 - - for i, fk := range updatedFKs { - // Condition to check whether FK has to be dropped - if len(fk.ReferColumnIds) == 0 && fk.ReferTableId == "" { - position = i - dropFkId := fk.Id - - // To remove the interleavable suggestions if they exist on dropping fk - colId := sp.ForeignKeys[position].ColIds[0] - schemaIssue := []internal.SchemaIssue{} - for _, v := range sessionState.Conv.SchemaIssues[tableId].ColumnLevelIssues[colId] { - if v != internal.InterleavedAddColumn && v != internal.InterleavedRenameColumn && v != internal.InterleavedNotInOrder && v != internal.InterleavedChangeColumnSize { - schemaIssue = append(schemaIssue, v) + if foreignKey.Id == updatedForeignkey.Id && len(updatedForeignkey.ReferColumnIds) == 0 && updatedForeignkey.ReferTableId == "" { + dropFkId := updatedForeignkey.Id + + // To remove the interleavable suggestions if they exist on dropping fk + colId := sp.ForeignKeys[i].ColIds[0] + schemaIssue := []internal.SchemaIssue{} + for _, v := range sessionState.Conv.SchemaIssues[tableId].ColumnLevelIssues[colId] { + if v != internal.InterleavedAddColumn && v != internal.InterleavedRenameColumn && v != internal.InterleavedNotInOrder && v != internal.InterleavedChangeColumnSize { + schemaIssue = append(schemaIssue, v) + } + } + if _, ok := sessionState.Conv.SchemaIssues[tableId]; ok { + sessionState.Conv.SchemaIssues[tableId].ColumnLevelIssues[colId] = schemaIssue + } + var err error + sp.ForeignKeys, err = utilities.RemoveFk(sp.ForeignKeys, dropFkId, sessionState.Conv.SrcSchema[tableId], tableId) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) } } - if _, ok := sessionState.Conv.SchemaIssues[tableId]; ok { - sessionState.Conv.SchemaIssues[tableId].ColumnLevelIssues[colId] = schemaIssue - } - - sp.ForeignKeys = utilities.RemoveFk(updatedFKs, dropFkId) } } sp.ForeignKeys = updatedFKs @@ -745,7 +741,7 @@ func RemoveParentTable(w http.ResponseWriter, r *http.Request) { defer sessionState.Conv.ConvLock.Unlock() conv := sessionState.Conv - if conv.SpSchema[tableId].ParentId == "" { + if conv.SpSchema[tableId].ParentTable.Id == "" { http.Error(w, fmt.Sprintf("Table is not interleaved"), http.StatusBadRequest) return } @@ -783,17 +779,18 @@ func RemoveParentTable(w http.ResponseWriter, r *http.Request) { if isPresent { if isAddedAtFirst { spFk.ColIds = append([]string{spTable.ShardIdColumn}, spFk.ColIds...) - spFk.ReferColumnIds = append([]string{sessionState.Conv.SpSchema[spTable.ParentId].ShardIdColumn}, spFk.ReferColumnIds...) + spFk.ReferColumnIds = append([]string{sessionState.Conv.SpSchema[spTable.ParentTable.Id].ShardIdColumn}, spFk.ReferColumnIds...) } else { spFk.ColIds = append(spFk.ColIds, spTable.ShardIdColumn) - spFk.ReferColumnIds = append(spFk.ReferColumnIds, sessionState.Conv.SpSchema[spTable.ParentId].ShardIdColumn) + spFk.ReferColumnIds = append(spFk.ReferColumnIds, sessionState.Conv.SpSchema[spTable.ParentTable.Id].ShardIdColumn) } } spFks := spTable.ForeignKeys spFks = append(spFks, spFk) spTable.ForeignKeys = spFks - spTable.ParentId = "" + spTable.ParentTable.Id = "" + spTable.ParentTable.OnDelete = "" conv.SpSchema[tableId] = spTable sessionState.Conv = conv @@ -1018,6 +1015,8 @@ func parentTableHelper(tableId string, update bool) *types.TableInterleaveStatus // TODO: Allow users to pick which parent to use if more than one. for i, fk := range sessionState.Conv.SpSchema[tableId].ForeignKeys { refTableId := fk.ReferTableId + onDelete := fk.OnDelete + var err error if _, found := sessionState.Conv.SyntheticPKeys[refTableId]; found { continue @@ -1028,11 +1027,15 @@ func parentTableHelper(tableId string, update bool) *types.TableInterleaveStatus colIdNotInOrder := checkPrimaryKeyOrder(tableId, refTableId, fk) - if update && sp.ParentId == "" && colIdNotInOrder == "" { + if update && sp.ParentTable.Id == "" && colIdNotInOrder == "" { usedNames := sessionState.Conv.UsedNames delete(usedNames, strings.ToLower(sp.ForeignKeys[i].Name)) - sp.ParentId = refTableId - sp.ForeignKeys = utilities.RemoveFk(sp.ForeignKeys, sp.ForeignKeys[i].Id) + sp.ParentTable.Id = refTableId + sp.ParentTable.OnDelete = onDelete + sp.ForeignKeys, err = utilities.RemoveFk(sp.ForeignKeys, sp.ForeignKeys[i].Id, sessionState.Conv.SrcSchema[tableId], tableId) + if err != nil { + continue + } } sessionState.Conv.SpSchema[tableId] = sp @@ -1056,6 +1059,7 @@ func parentTableHelper(tableId string, update bool) *types.TableInterleaveStatus tableInterleaveStatus.Possible = true tableInterleaveStatus.Parent = refTableId + tableInterleaveStatus.OnDelete = onDelete tableInterleaveStatus.Comment = "" } else { @@ -1356,8 +1360,9 @@ func dropTableHelper(w http.ResponseWriter, tableId string) session.ConvWithMeta //remove interleave that are interleaved on the drop table as parent for id, spTable := range spSchema { - if spTable.ParentId == tableId { - spTable.ParentId = "" + if spTable.ParentTable.Id == tableId { + spTable.ParentTable.Id = "" + spTable.ParentTable.OnDelete = "" spSchema[id] = spTable } } diff --git a/webv2/api/schema_test.go b/webv2/api/schema_test.go index 8d22e354b..af6dc8a58 100644 --- a/webv2/api/schema_test.go +++ b/webv2/api/schema_test.go @@ -406,23 +406,45 @@ func TestDropForeignKey(t *testing.T) { { name: "Test drop valid FK success", table: "t1", - input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + input: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, {Name: "", ColIds: []string{}, ReferTableId: "", ReferColumnIds: []string{}, Id: "f2", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, statusCode: http.StatusOK, conv: &internal.Conv{ + SrcSchema: map[string]schema.Table{ + "t1": { + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_SET_DEFAULT, OnUpdate: constants.FK_RESTRICT}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.FK_RESTRICT, OnUpdate: constants.FK_NO_ACTION}}, + }}, SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }}, + SchemaIssues: map[string]internal.TableIssues{ + "t1": internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete, internal.ForeignKeyOnUpdate, internal.ForeignKeyOnDelete}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{}, + }}, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), }, }, expectedConv: &internal.Conv{ + SrcSchema: map[string]schema.Table{ + "t1": { + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_SET_DEFAULT, OnUpdate: constants.FK_RESTRICT}, + {Name: "fk2", ColIds: []string{"c3", "c4"}, ReferTableId: "reft2", ReferColumnIds: []string{"ref_c2", "ref_c3"}, Id: "f2", OnDelete: constants.FK_RESTRICT, OnUpdate: constants.FK_NO_ACTION}}, + }}, SpSchema: map[string]ddl.CreateTable{ "t1": { - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c2"}, ReferTableId: "reft1", ReferColumnIds: []string{"ref_c1"}, Id: "f1", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, + }}, + SchemaIssues: map[string]internal.TableIssues{ + "t1": internal.TableIssues{ + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnUpdate, internal.ForeignKeyOnDelete}, + ColumnLevelIssues: map[string][]internal.SchemaIssue{ + "c3": {}, + }, }}, }, }, @@ -1470,7 +1492,8 @@ func TestDropTable(t *testing.T) { "c5": {Name: "cn5", Type: schema.Type{Name: "varchar"}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: "c5"}, "c6": {Name: "cn6", Type: schema.Type{Name: "bigint"}, NotNull: true, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: "c6"}, }, - Id: "t2", + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c4"}, ReferTableId: "t1", ReferColumnIds: []string{"c1"}, Id: "f1", OnDelete: constants.FK_CASCADE}}, + Id: "t2", }, }, SpSchema: map[string]ddl.CreateTable{ @@ -1493,6 +1516,7 @@ func TestDropTable(t *testing.T) { "c7": {Name: "synth_id", T: ddl.Type{Name: ddl.Int64}, NotNull: true, Id: "c7"}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c7", Desc: false}}, + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_CASCADE}, Id: "t2", }}, Audit: internal.Audit{ @@ -1533,6 +1557,7 @@ func TestDropTable(t *testing.T) { PrimaryKeys: []ddl.IndexKey{{ColId: "c7", Desc: false, Order: 0}}, ForeignKeys: []ddl.Foreignkey{}, Indexes: []ddl.CreateIndex(nil), + ParentTable: ddl.InterleavedParent{}, Id: "t2", }}, } @@ -1647,13 +1672,14 @@ func TestRestoreTable(t *testing.T) { // todo update SetParentTable with case III suggest interleve table column. func TestSetParentTable(t *testing.T) { tests := []struct { - name string - ct *internal.Conv - table string - statusCode int64 - expectedResponse *types.TableInterleaveStatus - expectedFKs []ddl.Foreignkey - parentTable string + name string + ct *internal.Conv + table string + statusCode int64 + expectedResponse *types.TableInterleaveStatus + expectedFKs []ddl.Foreignkey + parentTable ddl.InterleavedParent + expectedTableIssues []internal.SchemaIssue }{ { name: "no conv provided", @@ -1787,7 +1813,7 @@ func TestSetParentTable(t *testing.T) { }, table: "t1", statusCode: http.StatusOK, - expectedResponse: &types.TableInterleaveStatus{Possible: false, Parent: "", Comment: "No valid prefix"}, + expectedResponse: &types.TableInterleaveStatus{Possible: false, Parent: "", OnDelete: "", Comment: "No valid prefix"}, expectedFKs: []ddl.Foreignkey{{}}, }, { @@ -1840,7 +1866,7 @@ func TestSetParentTable(t *testing.T) { "c3": {Name: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 2}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.FK_CASCADE}}, }, "t2": { Name: "t2", @@ -1865,13 +1891,19 @@ func TestSetParentTable(t *testing.T) { }, table: "t1", statusCode: http.StatusOK, - expectedResponse: &types.TableInterleaveStatus{Possible: false, Parent: "", Comment: "No valid prefix"}, - expectedFKs: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}}}, - parentTable: "", + expectedResponse: &types.TableInterleaveStatus{Possible: false, Parent: "", OnDelete: "", Comment: "No valid prefix"}, + expectedFKs: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, OnDelete: constants.FK_CASCADE}}, + parentTable: ddl.InterleavedParent{Id: "", OnDelete: ""}, }, { name: "successful interleave", ct: &internal.Conv{ + SrcSchema: map[string]schema.Table{ + "t1": { + Name: "t1", + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c1"}, Id: "f1", OnDelete: constants.FK_RESTRICT}}, + }, + }, SpSchema: map[string]ddl.CreateTable{ "t1": { Name: "t1", @@ -1881,7 +1913,7 @@ func TestSetParentTable(t *testing.T) { "c3": {Name: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c1"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c1"}, Id: "f1", OnDelete: constants.FK_NO_ACTION}}, }, "t2": { Name: "t2", @@ -1895,6 +1927,7 @@ func TestSetParentTable(t *testing.T) { }, SchemaIssues: map[string]internal.TableIssues{ "t1": { + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete}, ColumnLevelIssues: make(map[string][]internal.SchemaIssue), }, }, @@ -1902,15 +1935,22 @@ func TestSetParentTable(t *testing.T) { MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), }, }, - table: "t1", - statusCode: http.StatusOK, - expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2"}, - expectedFKs: []ddl.Foreignkey{}, - parentTable: "t2", + table: "t1", + statusCode: http.StatusOK, + expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2", OnDelete: constants.FK_NO_ACTION}, + expectedFKs: []ddl.Foreignkey{}, + parentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, + expectedTableIssues: []internal.SchemaIssue{}, }, { name: "successful interleave with same primary key", ct: &internal.Conv{ + SrcSchema: map[string]schema.Table{ + "t1": { + Name: "t1", + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_RESTRICT}}, + }, + }, SpSchema: map[string]ddl.CreateTable{ "t1": { Name: "t1", @@ -1920,7 +1960,7 @@ func TestSetParentTable(t *testing.T) { "c3": {Name: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}, Id: "f1", OnDelete: constants.FK_CASCADE, OnUpdate: constants.FK_NO_ACTION}}, }, "t2": { Name: "t2", @@ -1934,6 +1974,7 @@ func TestSetParentTable(t *testing.T) { }, SchemaIssues: map[string]internal.TableIssues{ "t1": { + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnUpdate}, ColumnLevelIssues: make(map[string][]internal.SchemaIssue), }, }, @@ -1941,15 +1982,23 @@ func TestSetParentTable(t *testing.T) { MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), }, }, - table: "t1", - statusCode: http.StatusOK, - expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2"}, - expectedFKs: []ddl.Foreignkey{}, - parentTable: "t2", + table: "t1", + statusCode: http.StatusOK, + expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2", OnDelete: constants.FK_CASCADE}, + expectedFKs: []ddl.Foreignkey{}, + parentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, + expectedTableIssues: []internal.SchemaIssue{}, }, { name: "successful interleave with multiple fks refering multiple tables", ct: &internal.Conv{ + SrcSchema: map[string]schema.Table{ + "t1": { + ForeignKeys: []schema.ForeignKey{ + {Name: "fk1", ColIds: []string{"c3"}, ReferTableId: "t3", ReferColumnIds: []string{"c3"}, Id: "f1", OnDelete: constants.FK_SET_DEFAULT, OnUpdate: constants.FK_NO_ACTION}, + {Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}, Id: "f2", OnDelete: constants.FK_RESTRICT, OnUpdate: constants.FK_CASCADE}}, + }, + }, SpSchema: map[string]ddl.CreateTable{ "t1": { Name: "t1", @@ -1960,8 +2009,8 @@ func TestSetParentTable(t *testing.T) { }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, ForeignKeys: []ddl.Foreignkey{ - {Name: "fk1", ColIds: []string{"c3"}, ReferTableId: "t3", ReferColumnIds: []string{"c3"}}, - {Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}}}, + {Name: "fk1", ColIds: []string{"c3"}, ReferTableId: "t3", ReferColumnIds: []string{"c3"}, Id: "f1", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}, + {Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}, Id: "f2", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, }, "t2": { Name: "t2", @@ -1985,17 +2034,19 @@ func TestSetParentTable(t *testing.T) { SchemaIssues: map[string]internal.TableIssues{ "t1": { ColumnLevelIssues: make(map[string][]internal.SchemaIssue), + TableLevelIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete, internal.ForeignKeyOnDelete, internal.ForeignKeyOnUpdate}, }, }, Audit: internal.Audit{ MigrationType: migration.MigrationData_SCHEMA_ONLY.Enum(), }, }, - table: "t1", - statusCode: http.StatusOK, - expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2"}, - expectedFKs: []ddl.Foreignkey{ddl.Foreignkey{Name: "fk1", ColIds: []string{"c1", "c2"}, ReferTableId: "t2", ReferColumnIds: []string{"c1", "c2"}, Id: ""}}, - parentTable: "t2", + table: "t1", + statusCode: http.StatusOK, + expectedResponse: &types.TableInterleaveStatus{Possible: true, Parent: "t2", OnDelete: constants.FK_NO_ACTION}, + expectedFKs: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c3"}, ReferTableId: "t3", ReferColumnIds: []string{"c3"}, Id: "f1", OnDelete: constants.FK_NO_ACTION, OnUpdate: constants.FK_NO_ACTION}}, + parentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, + expectedTableIssues: []internal.SchemaIssue{internal.ForeignKeyOnDelete}, }, } for _, tc := range tests { @@ -2036,9 +2087,10 @@ func TestSetParentTable(t *testing.T) { if tc.statusCode == http.StatusOK { assert.Equal(t, tc.expectedResponse, res, tc.name) } - if tc.parentTable != "" { - assert.Equal(t, tc.parentTable, sessionState.Conv.SpSchema[tc.table].ParentId, tc.name) + if tc.parentTable.Id != "" { + assert.Equal(t, tc.parentTable, sessionState.Conv.SpSchema[tc.table].ParentTable, tc.name) assert.Equal(t, tc.expectedFKs, sessionState.Conv.SpSchema[tc.table].ForeignKeys, tc.name) + assert.Equal(t, tc.expectedTableIssues, sessionState.Conv.SchemaIssues[tc.table].TableLevelIssues, tc.name) } } } @@ -2070,7 +2122,7 @@ func TestRemoveParentTable(t *testing.T) { "c3": {Name: "c", Type: schema.Type{Name: "varchar"}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: "c3"}, }, PrimaryKeys: []schema.Key{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1", OnDelete: constants.FK_CASCADE}}, Id: "t1", }, @@ -2096,7 +2148,7 @@ func TestRemoveParentTable(t *testing.T) { }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, Id: "t1", - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -2123,9 +2175,9 @@ func TestRemoveParentTable(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1"}}, + ForeignKeys: []ddl.Foreignkey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1", OnDelete: constants.FK_CASCADE}}, Id: "t1", - ParentId: "", + ParentTable: ddl.InterleavedParent{Id: "", OnDelete: ""}, }, "t2": { Name: "table2", @@ -2158,7 +2210,7 @@ func TestRemoveParentTable(t *testing.T) { "c3": {Name: "c", Type: schema.Type{Name: "varchar"}, NotNull: false, Ignored: schema.Ignored{Check: false, Identity: false, Default: false, Exclusion: false, ForeignKey: false, AutoIncrement: false}, Id: "c3"}, }, PrimaryKeys: []schema.Key{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, - ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1"}}, + ForeignKeys: []schema.ForeignKey{{Name: "fk1", ColIds: []string{"c1"}, ReferTableId: "t2", ReferColumnIds: []string{"c4"}, Id: "f1", OnDelete: constants.FK_NO_ACTION}}, Id: "t1", }, @@ -2184,7 +2236,7 @@ func TestRemoveParentTable(t *testing.T) { }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c2", Desc: false, Order: 2}}, Id: "t1", - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "table2", diff --git a/webv2/index/index.go b/webv2/index/index.go index 0b9e949e8..932183127 100644 --- a/webv2/index/index.go +++ b/webv2/index/index.go @@ -90,7 +90,7 @@ func checkRedundantIndex(index []ddl.CreateIndex, spannerTable ddl.CreateTable) func checkInterleaveIndex(index []ddl.CreateIndex, spannerTable ddl.CreateTable) { // Suggestion gets added only if the table can be interleaved. - isInterleavable := spannerTable.ParentId != "" + isInterleavable := spannerTable.ParentTable.Id != "" sessionState := session.GetSessionState() diff --git a/webv2/primarykey/primarykey_service.go b/webv2/primarykey/primarykey_service.go index f76c355dd..a3378b402 100644 --- a/webv2/primarykey/primarykey_service.go +++ b/webv2/primarykey/primarykey_service.go @@ -79,7 +79,7 @@ func isValidColumnIds(pkRequest PrimaryKeyRequest, spannertable ddl.CreateTable) } func RemoveInterleave(conv *internal.Conv, spannertable ddl.CreateTable) { - if spannertable.ParentId != "" { + if spannertable.ParentTable.Id != "" { var childPkFirstColumn string var parentPkFirstColumn string for i := 0; i < len(spannertable.PrimaryKeys); i++ { @@ -87,13 +87,14 @@ func RemoveInterleave(conv *internal.Conv, spannertable ddl.CreateTable) { childPkFirstColumn = spannertable.PrimaryKeys[i].ColId } } - for i := 0; i < len(conv.SpSchema[spannertable.ParentId].PrimaryKeys); i++ { - if conv.SpSchema[spannertable.ParentId].PrimaryKeys[i].Order == 1 { - parentPkFirstColumn = conv.SpSchema[spannertable.ParentId].PrimaryKeys[i].ColId + for i := 0; i < len(conv.SpSchema[spannertable.ParentTable.Id].PrimaryKeys); i++ { + if conv.SpSchema[spannertable.ParentTable.Id].PrimaryKeys[i].Order == 1 { + parentPkFirstColumn = conv.SpSchema[spannertable.ParentTable.Id].PrimaryKeys[i].ColId } } if childPkFirstColumn != parentPkFirstColumn { - spannertable.ParentId = "" + spannertable.ParentTable.Id = "" + spannertable.ParentTable.OnDelete = "" conv.SpSchema[spannertable.Name] = spannertable } } diff --git a/webv2/table/remove_column.go b/webv2/table/remove_column.go index 1595c7db0..d2047d6a6 100644 --- a/webv2/table/remove_column.go +++ b/webv2/table/remove_column.go @@ -31,14 +31,16 @@ func RemoveColumn(tableId string, colId string, conv *internal.Conv) { if isParent { if isColFistOderPk(conv.SpSchema[tableId].PrimaryKeys, colId) { childSp := conv.SpSchema[childTableId] - childSp.ParentId = "" + childSp.ParentTable.Id = "" + childSp.ParentTable.OnDelete = "" conv.SpSchema[childTableId] = childSp } } - if conv.SpSchema[tableId].ParentId != "" { + if conv.SpSchema[tableId].ParentTable.Id != "" { if isColFistOderPk(conv.SpSchema[tableId].PrimaryKeys, colId) { - sp.ParentId = "" + sp.ParentTable.Id = "" + sp.ParentTable.OnDelete = "" conv.SpSchema[tableId] = sp } } diff --git a/webv2/table/rename_column.go b/webv2/table/rename_column.go index d9e0bc130..756c22c47 100644 --- a/webv2/table/rename_column.go +++ b/webv2/table/rename_column.go @@ -34,8 +34,8 @@ func renameColumn(newName, tableId, colId string, conv *internal.Conv) { } } - if conv.SpSchema[tableId].ParentId != "" { - parentTableId := conv.SpSchema[tableId].ParentId + if conv.SpSchema[tableId].ParentTable.Id != "" { + parentTableId := conv.SpSchema[tableId].ParentTable.Id parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { renameColumnNameTableSchema(conv, parentTableId, parentColId, newName) diff --git a/webv2/table/review_column_type.go b/webv2/table/review_column_type.go index 97893d8c3..a875c6efe 100644 --- a/webv2/table/review_column_type.go +++ b/webv2/table/review_column_type.go @@ -22,7 +22,7 @@ import ( utilities "github.com/GoogleCloudPlatform/spanner-migration-tool/webv2/utilities" ) -// ReviewColumnNameType review update of colum type to given newType. +// ReviewColumnNameType review update of column type to given newType. func ReviewColumnType(newType, tableId, colId string, conv *internal.Conv, interleaveTableSchema []InterleaveTableSchema, w http.ResponseWriter) (_ []InterleaveTableSchema, err error) { // review update of column type for refer table. interleaveTableSchema, err = reviewColumnTypeForReferredTable(newType, tableId, colId, conv, interleaveTableSchema) @@ -114,7 +114,7 @@ func reviewColumnTypeForReferringTable(newType, tableId, colId string, conv *int func reviewColumnTypeForParentTable(newType, tableId, colId string, conv *internal.Conv, interleaveTableSchema []InterleaveTableSchema, w http.ResponseWriter) (_ []InterleaveTableSchema, parentTableId string, err error) { sp := conv.SpSchema[tableId] - parentTableId = conv.SpSchema[tableId].ParentId + parentTableId = conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { @@ -207,7 +207,7 @@ func reviewColumnSizeForChildTable(colSize int64, tableId, colId string, conv *i func reviewColumnSizeForParentTable(colSize int64, tableId, colId string, conv *internal.Conv, interleaveTableSchema []InterleaveTableSchema) (_ []InterleaveTableSchema, parentTableId string) { sp := conv.SpSchema[tableId] - parentTableId = conv.SpSchema[tableId].ParentId + parentTableId = conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { diff --git a/webv2/table/review_rename_column.go b/webv2/table/review_rename_column.go index 0ca9bf423..399d83825 100644 --- a/webv2/table/review_rename_column.go +++ b/webv2/table/review_rename_column.go @@ -62,7 +62,7 @@ func reviewRenameColumnForChildTable(newName, tableId, colId string, conv *inter func reviewRenameColumnForParentTable(newName, tableId, colId string, conv *internal.Conv, interleaveTableSchema []InterleaveTableSchema) ([]InterleaveTableSchema, string) { sp := conv.SpSchema[tableId] - parentTableId := conv.SpSchema[tableId].ParentId + parentTableId := conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) diff --git a/webv2/table/review_table_schema_test.go b/webv2/table/review_table_schema_test.go index eeea1a9b4..cb4f6acb6 100644 --- a/webv2/table/review_table_schema_test.go +++ b/webv2/table/review_table_schema_test.go @@ -344,7 +344,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -396,7 +396,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -457,7 +457,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "table2", @@ -509,7 +509,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "table2", @@ -693,7 +693,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false, Order: 1}, {ColId: "c3", Desc: false, Order: 2}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -729,7 +729,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c3", Desc: false, Order: 1}}, - ParentId: "", + ParentTable: ddl.InterleavedParent{Id: "", OnDelete: ""}, }, "t2": { Name: "table2", @@ -782,7 +782,7 @@ func TestReviewTableSchema(t *testing.T) { "c5": {Name: "d", Id: "c5", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c4", Desc: false, Order: 1}}, - ParentId: "t1", + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, }, @@ -808,7 +808,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.Int64}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c3", Desc: false, Order: 1}}, - ParentId: "", + ParentTable: ddl.InterleavedParent{Id: "", OnDelete: ""}, }, "t2": { Name: "table2", @@ -1381,7 +1381,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -1406,7 +1406,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -1443,7 +1443,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "t2", @@ -1468,7 +1468,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "t2", @@ -1630,7 +1630,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}}, - ParentId: "t1", + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, }, }, @@ -1657,7 +1657,7 @@ func TestReviewTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}}, - ParentId: "t1", + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, }, }, @@ -1680,7 +1680,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, }, SrcSchema: map[string]schema.Table{ @@ -1715,7 +1715,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}, AutoGen: ddl.AutoGenCol{Name: "UUID", GenerationType: "Pre-defined"}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, }, SrcSchema: map[string]schema.Table{ @@ -1758,7 +1758,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1801,7 +1801,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1852,7 +1852,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1903,7 +1903,7 @@ func TestReviewTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ diff --git a/webv2/table/update_column_type.go b/webv2/table/update_column_type.go index fbc3875c2..2f10955a0 100644 --- a/webv2/table/update_column_type.go +++ b/webv2/table/update_column_type.go @@ -112,7 +112,7 @@ func updateColumnTypeForChildTable(newType, tableId, colId string, conv *interna func updateColumnTypeForParentTable(newType, tableId, colId string, conv *internal.Conv, w http.ResponseWriter) { sp := conv.SpSchema[tableId] - parentTableId := conv.SpSchema[tableId].ParentId + parentTableId := conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { @@ -148,7 +148,7 @@ func updateColumnSizeForChildTable(newSize, tableId, colId string, conv *interna func updateColumnSizeForParentTable(newSize, tableId, colId string, conv *internal.Conv) { sp := conv.SpSchema[tableId] - parentTableId := conv.SpSchema[tableId].ParentId + parentTableId := conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := utilities.GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { diff --git a/webv2/table/update_table_schema_test.go b/webv2/table/update_table_schema_test.go index fcc8d5964..1ee78ca4f 100644 --- a/webv2/table/update_table_schema_test.go +++ b/webv2/table/update_table_schema_test.go @@ -622,7 +622,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -676,7 +676,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "table2", @@ -741,7 +741,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "table2", @@ -795,7 +795,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, "t2": { Name: "table2", @@ -860,7 +860,7 @@ func TestUpdateTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -910,7 +910,7 @@ func TestUpdateTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -984,7 +984,7 @@ func TestUpdateTableSchema(t *testing.T) { "c6": {Name: "c", Id: "c6", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c4", Desc: false}}, - ParentId: "t1", + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1038,7 +1038,7 @@ func TestUpdateTableSchema(t *testing.T) { "c6": {Name: "c", Id: "c6", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c4", Desc: false}}, - ParentId: "t1", + ParentTable: ddl.InterleavedParent{Id: "t1", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1092,7 +1092,7 @@ func TestUpdateTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -1142,7 +1142,7 @@ func TestUpdateTableSchema(t *testing.T) { "c3": {Name: "c", Id: "c3", T: ddl.Type{Name: ddl.String, Len: ddl.MaxLength}, NotNull: true}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1", Desc: false}, {ColId: "c2", Desc: false}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, "t2": { Name: "t2", @@ -1313,7 +1313,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1348,7 +1348,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}, AutoGen: ddl.AutoGenCol{Name: "UUID", GenerationType: "Pre-defined"}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_NO_ACTION}, }, }, SrcSchema: map[string]schema.Table{ @@ -1388,7 +1388,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, }, SrcSchema: map[string]schema.Table{ @@ -1431,7 +1431,7 @@ func TestUpdateTableSchema(t *testing.T) { "c2": {Name: "b", Id: "c2", T: ddl.Type{Name: ddl.String, Len: 6}}, }, PrimaryKeys: []ddl.IndexKey{{ColId: "c1"}}, - ParentId: "t2", + ParentTable: ddl.InterleavedParent{Id: "t2", OnDelete: constants.FK_CASCADE}, }, }, SrcSchema: map[string]schema.Table{ diff --git a/webv2/types/types.go b/webv2/types/types.go index 28b86a77f..af056a084 100644 --- a/webv2/types/types.go +++ b/webv2/types/types.go @@ -171,5 +171,6 @@ type DropDetail struct { type TableInterleaveStatus struct { Possible bool Parent string + OnDelete string Comment string } diff --git a/webv2/utilities/utilities.go b/webv2/utilities/utilities.go index b05ac6f80..b03ac70ed 100644 --- a/webv2/utilities/utilities.go +++ b/webv2/utilities/utilities.go @@ -98,6 +98,16 @@ func RemoveSchemaIssue(schemaissue []internal.SchemaIssue, issue internal.Schema return schemaissue[0:k] } +// Removes only the first occurance of SchemaIssue from given list +func RemoveSchemaIssueOnlyOnce(schemaissue []internal.SchemaIssue, issue internal.SchemaIssue) []internal.SchemaIssue { + for i, v := range schemaissue { + if v == issue { + return append(schemaissue[:i], schemaissue[i+1:]...) + } + } + return schemaissue +} + // IsSchemaIssuePresent checks if issue is present in the given schemaissue list. func IsSchemaIssuePresent(schemaissue []internal.SchemaIssue, issue internal.SchemaIssue) bool { @@ -236,15 +246,38 @@ func RemovePk(slice []ddl.IndexKey, s int) []ddl.IndexKey { return append(slice[:s], slice[s+1:]...) } -func RemoveFk(slice []ddl.Foreignkey, fkId string) []ddl.Foreignkey { +func RemoveFk(slice []ddl.Foreignkey, fkId string, srcSchema schema.Table, tableId string) ([]ddl.Foreignkey, error) { + sessionState := session.GetSessionState() + tableIssues := sessionState.Conv.SchemaIssues[tableId].TableLevelIssues + pos := -1 for i, fk := range slice { if fk.Id == fkId { pos = i + + // Remove foreign key action conversion warnings for dropped FK + // + // Issues ForeignKeyOnDelete and ForeignKeyOnUpdate might be added to SchemaIssues[tableId] multiple times + // due to existance of multiple FKs. We only delete one instance of these issues to maintain + // correct warnings for other FKs + srcFk, err := internal.GetSrcFkFromId(srcSchema.ForeignKeys, fk.Id) + if err != nil { + return nil, err + } + if srcFk.OnDelete != fk.OnDelete { + tableIssues = RemoveSchemaIssueOnlyOnce(tableIssues, internal.ForeignKeyOnDelete) + } + if srcFk.OnUpdate != fk.OnUpdate { + tableIssues = RemoveSchemaIssueOnlyOnce(tableIssues, internal.ForeignKeyOnUpdate) + } + if issues, ok := sessionState.Conv.SchemaIssues[tableId]; ok { + issues.TableLevelIssues = tableIssues + sessionState.Conv.SchemaIssues[tableId] = issues + } break } } - return append(slice[:pos], slice[pos+1:]...) + return append(slice[:pos], slice[pos+1:]...), nil } func RemoveSecondaryIndex(slice []ddl.CreateIndex, s int) []ddl.CreateIndex { @@ -362,7 +395,7 @@ func UpdateMaxColumnLen(conv *internal.Conv, dataType, tableId, colId string, sp } // update column size of parent table. - parentTableId := conv.SpSchema[tableId].ParentId + parentTableId := conv.SpSchema[tableId].ParentTable.Id if parentTableId != "" { parentColId, err := GetColIdFromSpannerName(conv, parentTableId, sp.ColDefs[colId].Name) if err == nil { @@ -388,7 +421,7 @@ func IsParent(tableId string) (bool, string) { sessionState := session.GetSessionState() for _, spSchema := range sessionState.Conv.SpSchema { - if spSchema.ParentId == tableId { + if spSchema.ParentTable.Id == tableId { return true, spSchema.Id } } From ba1206ebd39457bb9ec38b89f415c98efd0ae40d Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 11:34:41 +0000 Subject: [PATCH 18/46] Backend IT Test 1 --- .../integration-tests-against-emulator.yaml | 1 + .../mysql_foreignkeyaction_dump.test.out | 110 ++++++++++++++++++ test_data/pg_dump.test.out | 36 ++++++ test_data/pg_foreignkeyaction_dump.test.out | 102 ++++++++++++++++ testing/mysql/integration_test.go | 82 +++++++++++++ testing/postgres/integration_test.go | 18 +++ 6 files changed, 349 insertions(+) create mode 100644 test_data/mysql_foreignkeyaction_dump.test.out create mode 100644 test_data/pg_foreignkeyaction_dump.test.out diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 07ce90382..c48560de9 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -110,6 +110,7 @@ jobs: - run: mysql --version - run: mysql -v -P 3306 --protocol=tcp -u root -proot test < test_data/mysqldump.test.out - run: mysql -v -P 3306 --protocol=tcp -u root -proot < test_data/mysql_interleave_dump.test.out + - run: mysql -v -P 3306 --protocol=tcp -u root -proot fkactions_test < test_data/mysql_foreignkeyaction_dump.test.out # init sql server with test_data - name: Install sqlcmd required for loading .sql files diff --git a/test_data/mysql_foreignkeyaction_dump.test.out b/test_data/mysql_foreignkeyaction_dump.test.out new file mode 100644 index 000000000..e3e3fd727 --- /dev/null +++ b/test_data/mysql_foreignkeyaction_dump.test.out @@ -0,0 +1,110 @@ +-- MySQL dump 10.17 Distrib 10.3.23-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: 127.0.0.1 Database: cart +-- ------------------------------------------------------ +-- Server version 5.7.25-google-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + + +CREATE DATABASE test_foreign_key_action_data; +USE test_interleave_table_data; + +-- +-- Table structure for table `cart` +-- + +DROP TABLE IF EXISTS `cart`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cart` ( + `user_id` varchar(20) NOT NULL, + `product_id` varchar(20) NOT NULL, + `quantity` bigint(20) DEFAULT NULL, + `last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`user_id`,`product_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +CREATE INDEX idx ON `cart` (`quantity`); + +-- +-- Dumping data for table `cart` +-- + +LOCK TABLES `cart` WRITE; +/*!40000 ALTER TABLE `cart` DISABLE KEYS */; +INSERT INTO `cart` VALUES ('901e-a6cfc2b502dc','abc-123',1,'2020-07-20 05:10:26'),('901e-a6cfc2b502dc','axd-673',2,'2020-07-20 05:10:43'),('a86b-82493320a775','zxi-631',5,'2020-07-20 05:10:46'); +/*!40000 ALTER TABLE `cart` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table name `PRODUCTS` differs only case from the table `cart`. +-- This was added to cover more cases in our integration tests. +-- +DROP TABLE IF EXISTS `PRODUCTS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PRODUCTS` ( + `usr_id` varchar(20) NOT NULL, + `prod_id` varchar(20) NOT NULL, + PRIMARY KEY (`usr_id`,`prod_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `products` +-- + +DROP TABLE IF EXISTS `products`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `products` ( + `product_id` varchar(20) NOT NULL, + `description` varchar(1000) DEFAULT NULL, + `price` decimal(10,2) DEFAULT NULL, + `date_added` date DEFAULT NULL, + PRIMARY KEY (`product_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- The index name `IDX` differs only in case from index idx on `cart`. +-- This was added to cover more cases in our integration tests. +-- +CREATE INDEX IDX ON `products` (`description`); + +-- +-- Dumping data for table `products` +-- + +LOCK TABLES `products` WRITE; +/*!40000 ALTER TABLE `products` DISABLE KEYS */; +INSERT INTO `products` VALUES ('abc-123','Blue suede shoes',141.99,'2020-06-06'),('axd-673','Antique typewriter',99.99,'2020-06-07'),('zxi-631','Glass vase',55.50,'2020-06-10'); +/*!40000 ALTER TABLE `products` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Adding Foreign Key Constraint between Cart and Products +-- +ALTER TABLE `cart` ADD CONSTRAINT `fk_cart_products` FOREIGN KEY (`product_id`) REFERENCES `products`(`product_id`) ON DELETE CASCADE ON UPDATE RESTRICT; + + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2020-08-10 17:40:01 diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index bb81a92cc..7fe9a25d7 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -31,6 +31,18 @@ CREATE TABLE public.cart ( ALTER TABLE public.cart OWNER TO postgres; +-- +-- Name: products; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.products ( + productid text NOT NULL, + description text, + price numeric(10, 2) +); + +ALTER TABLE public.products OWNER TO postgres; + -- -- Name: test; Type: TABLE; Schema: public; Owner: postgres -- @@ -84,8 +96,19 @@ COPY public.cart (productid, userid, quantity) FROM stdin; OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 +2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 \. +-- +-- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.products (productid, description, price) FROM stdin; +1YMWWN1N4O bookshelf 45.50 +OLJCESPC7Z armchair 54.99 +2KJHWIUS9K sofa 125.00 +0MWERIJB8H cupboard 59.99 +\. -- -- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres @@ -123,6 +146,13 @@ COPY public.test3 (id, a, b) FROM stdin; ALTER TABLE ONLY public.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); + +-- +-- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.products + ADD CONSTRAINT products_pkey PRIMARY KEY (productid); -- @@ -147,6 +177,12 @@ ALTER TABLE ONLY public.test3 ALTER TABLE ONLY public.test ADD CONSTRAINT test_pkey PRIMARY KEY (id); +-- +-- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres +-- +ALTER TABLE ONLY public.cart + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE CASCADE ON UPDATE RESTRICT; + -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser -- diff --git a/test_data/pg_foreignkeyaction_dump.test.out b/test_data/pg_foreignkeyaction_dump.test.out new file mode 100644 index 000000000..e063620c6 --- /dev/null +++ b/test_data/pg_foreignkeyaction_dump.test.out @@ -0,0 +1,102 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 9.6.16 +-- Dumped by pg_dump version 12.1 (Debian 12.1-1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +SET default_tablespace = ''; + +-- +-- Name: cart; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.cart ( + productid text NOT NULL, + userid text NOT NULL, + quantity bigint +); + + +ALTER TABLE public.cart OWNER TO postgres; + +-- +-- Name: products; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.products ( + productid text NOT NULL, + description text, + price numeric(10, 2) +); + +ALTER TABLE public.products OWNER TO postgres; + +-- +-- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.cart (productid, userid, quantity) FROM stdin; +1YMWWN1N4O 64e10503-9b6f-48e5-9e9c-2b7818ee322d 2 +OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 +OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 +OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 +2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 +\. + +-- +-- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.products (productid, description, price) FROM stdin; +1YMWWN1N4O bookshelf 45.50 +OLJCESPC7Z armchair 54.99 +2KJHWIUS9K sofa 125.00 +0MWERIJB8H cupboard 59.99 +\. + +-- +-- Name: cart cart_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.cart + ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); + +-- +-- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.products + ADD CONSTRAINT products_pkey PRIMARY KEY (productid); + +-- +-- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres +-- +ALTER TABLE ONLY public.cart + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE CASCADE ON UPDATE RESTRICT; + +-- +-- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser +-- + +REVOKE ALL ON SCHEMA public FROM cloudsqladmin; +REVOKE ALL ON SCHEMA public FROM PUBLIC; +GRANT ALL ON SCHEMA public TO cloudsqlsuperuser; +GRANT ALL ON SCHEMA public TO PUBLIC; + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index b03871f34..8a47eaaed 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -218,6 +218,45 @@ func TestIntegration_MySQLDUMP_SchemaAndDataSubcommand(t *testing.T) { checkResults(t, dbURI, false) } +func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { + onlyRunForEmulatorTest(t) + t.Parallel() + + tmpdir := prepareIntegrationTest(t) + defer os.RemoveAll(tmpdir) + + dbName := "mysql-dc-schema-and-data" + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + filePrefix := filepath.Join(tmpdir, dbName) + + host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") + envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + err := common.RunCommand(args, projectID) + common.RestoreEnvVariables(envVars) + if err != nil { + t.Fatal(err) + } + defer dropDatabase(t, dbURI) + + checkForeignKeyActions(ctx, t, dbURI) +} + +func TestIntegration_MySQLDUMP_ForeignKeyActionMigration(t *testing.T) { + onlyRunForEmulatorTest(t) + tmpdir := prepareIntegrationTest(t) + defer os.RemoveAll(tmpdir) + + dbName := "test-schema-and-data" + dumpFilePath := "../../test_data/mysql_foreignkeyaction_dump.test.out" + filePrefix := filepath.Join(tmpdir, dbName) + + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + runSchemaAndDataSubcommand(t, dbName, dbURI, filePrefix, dumpFilePath) + defer dropDatabase(t, dbURI) + checkForeignKeyActions(ctx, t, dbURI) +} + func checkResults(t *testing.T, dbURI string, skipJson bool) { // Make a query to check results. client, err := spanner.NewClient(ctx, dbURI) @@ -283,6 +322,49 @@ func checkJson(ctx context.Context, t *testing.T, client *spanner.Client, dbURI assert.Equal(t, got_profile, want_profile) } +func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { + client, err := spanner.NewClient(ctx, dbURI) + if err != nil { + log.Fatal(err) + } + defer client.Close() + + mutation := spanner.Delete("products", spanner.Key{"zxi-631"}) + + _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) + if err != nil { + t.Fatalf("Failed to delete row: %v", err) + } + + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE product_id = "zxi-631"`} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + _, err = iter.Next() + + assert.Equal(t, iterator.Done, err, "Expected no rows in 'cart' with deleted product_id") //testing ON DELETE CASCADE +} + +// // Generated DDL always contains Foreign Key Definitions as 'ALTER TABLE' statements +// // and will always define the ON DELETE action. Spanner does not support +// // ON UPDATE and this should not be a part of the DDL. +// func checkForeignKeyActions(ctx context.Context, t *testing.T, client *spanner.Client, dbURI string) { + +// resp, err := databaseAdmin.GetDatabaseDdl(ctx, &databasepb.GetDatabaseDdlRequest{Database: dbURI}) +// if err != nil { +// t.Fatalf("Could not read DDL from database %s: %v", dbURI, err) +// } +// for _, stmt := range resp.Statements { +// if strings.Contains(stmt, "ALTER TABLE ") && strings.Contains(stmt, "FOREIGN KEY") { +// assert.True(t, strings.Contains(stmt, "ON DELETE"), "Missing ON DELETE action") +// assert.False(t, strings.Contains(stmt, "ON UPDATE"), "Unexpected ON UPDATE action") + +// if strings.Contains(stmt, "cart") { +// assert.True(t, strings.Contains(stmt, "ON DELETE CASCADE")) +// } +// } +// } +// } + func onlyRunForEmulatorTest(t *testing.T) { if os.Getenv("SPANNER_EMULATOR_HOST") == "" { t.Skip("Skipping tests only running against the emulator.") diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 59e73885a..246602ab6 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -32,6 +32,7 @@ import ( "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/common/utils" "github.com/GoogleCloudPlatform/spanner-migration-tool/testing/common" + "github.com/stretchr/testify/assert" "google.golang.org/api/iterator" databasepb "google.golang.org/genproto/googleapis/spanner/admin/database/v1" ) @@ -211,6 +212,7 @@ func checkResults(t *testing.T, dbURI string) { checkTimestamps(ctx, t, client) checkCoreTypes(ctx, t, client) checkArrays(ctx, t, client) + checkForeignKeyActions(ctx, t, client) } func checkBigInt(ctx context.Context, t *testing.T, client *spanner.Client) { @@ -328,6 +330,22 @@ func checkArrays(ctx context.Context, t *testing.T, client *spanner.Client) { } } +func checkForeignKeyActions(ctx context.Context, t *testing.T, client *spanner.Client) { + + mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) + + _, err := client.Apply(ctx, []*spanner.Mutation{mutation}) + assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") + + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + row, err := iter.Next() + + assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION + assert.NotNil(t, row, "Expected rows in 'cart' to still exist") +} + func onlyRunForEmulatorTest(t *testing.T) { if os.Getenv("SPANNER_EMULATOR_HOST") == "" { t.Skip("Skipping tests only running against the emulator.") From 9da1cb015b7376b966435f95e1d9193cf854912f Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 11:46:01 +0000 Subject: [PATCH 19/46] updating yaml --- .github/workflows/integration-tests-against-emulator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index c48560de9..8a09d01bb 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -110,7 +110,7 @@ jobs: - run: mysql --version - run: mysql -v -P 3306 --protocol=tcp -u root -proot test < test_data/mysqldump.test.out - run: mysql -v -P 3306 --protocol=tcp -u root -proot < test_data/mysql_interleave_dump.test.out - - run: mysql -v -P 3306 --protocol=tcp -u root -proot fkactions_test < test_data/mysql_foreignkeyaction_dump.test.out + - run: mysql -v -P 3306 --protocol=tcp -u root -proot < test_data/mysql_foreignkeyaction_dump.test.out # init sql server with test_data - name: Install sqlcmd required for loading .sql files From f05ddcdaa7217d48e1c4b555e54ccca0ab9525ac Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 12:14:31 +0000 Subject: [PATCH 20/46] draft 2 --- test_data/mysql_foreignkeyaction_dump.test.out | 14 -------------- test_data/pg_dump.test.out | 2 +- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/test_data/mysql_foreignkeyaction_dump.test.out b/test_data/mysql_foreignkeyaction_dump.test.out index e3e3fd727..14d4457a2 100644 --- a/test_data/mysql_foreignkeyaction_dump.test.out +++ b/test_data/mysql_foreignkeyaction_dump.test.out @@ -47,20 +47,6 @@ INSERT INTO `cart` VALUES ('901e-a6cfc2b502dc','abc-123',1,'2020-07-20 05:10:26' /*!40000 ALTER TABLE `cart` ENABLE KEYS */; UNLOCK TABLES; --- --- Table name `PRODUCTS` differs only case from the table `cart`. --- This was added to cover more cases in our integration tests. --- -DROP TABLE IF EXISTS `PRODUCTS`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `PRODUCTS` ( - `usr_id` varchar(20) NOT NULL, - `prod_id` varchar(20) NOT NULL, - PRIMARY KEY (`usr_id`,`prod_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Table structure for table `products` -- diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index 7fe9a25d7..68f9c7efd 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -181,7 +181,7 @@ ALTER TABLE ONLY public.test -- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE CASCADE ON UPDATE RESTRICT; + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser From 90d46130fd93782455e5feed780d49937731706f Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 13:26:30 +0000 Subject: [PATCH 21/46] draft 3 --- .../integration-tests-against-emulator.yaml | 1 + .../mysql_foreignkeyaction_dump.test.out | 2 +- test_data/pg_dump.test.out | 36 ------------------- 3 files changed, 2 insertions(+), 37 deletions(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 8a09d01bb..e269f6ff5 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,6 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out + # - run: psql -f test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/test_data/mysql_foreignkeyaction_dump.test.out b/test_data/mysql_foreignkeyaction_dump.test.out index 14d4457a2..8c573b591 100644 --- a/test_data/mysql_foreignkeyaction_dump.test.out +++ b/test_data/mysql_foreignkeyaction_dump.test.out @@ -17,7 +17,7 @@ CREATE DATABASE test_foreign_key_action_data; -USE test_interleave_table_data; +USE test_foreign_key_action_data; -- -- Table structure for table `cart` diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index 68f9c7efd..bb81a92cc 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -31,18 +31,6 @@ CREATE TABLE public.cart ( ALTER TABLE public.cart OWNER TO postgres; --- --- Name: products; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.products ( - productid text NOT NULL, - description text, - price numeric(10, 2) -); - -ALTER TABLE public.products OWNER TO postgres; - -- -- Name: test; Type: TABLE; Schema: public; Owner: postgres -- @@ -96,19 +84,8 @@ COPY public.cart (productid, userid, quantity) FROM stdin; OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 -2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 \. --- --- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.products (productid, description, price) FROM stdin; -1YMWWN1N4O bookshelf 45.50 -OLJCESPC7Z armchair 54.99 -2KJHWIUS9K sofa 125.00 -0MWERIJB8H cupboard 59.99 -\. -- -- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres @@ -146,13 +123,6 @@ COPY public.test3 (id, a, b) FROM stdin; ALTER TABLE ONLY public.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); - --- --- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.products - ADD CONSTRAINT products_pkey PRIMARY KEY (productid); -- @@ -177,12 +147,6 @@ ALTER TABLE ONLY public.test3 ALTER TABLE ONLY public.test ADD CONSTRAINT test_pkey PRIMARY KEY (id); --- --- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres --- -ALTER TABLE ONLY public.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; - -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser -- From 27ad6a56b2cc9d3283d0ccece0405c4461019b98 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 14:02:15 +0000 Subject: [PATCH 22/46] draft 4 --- .../integration-tests-against-emulator.yaml | 2 +- test_data/pg_foreignkeyaction_dump.test.out | 43 ++++++------ testing/common/testutil.go | 2 +- testing/postgres/integration_test.go | 66 +++++++++++++++++-- 4 files changed, 86 insertions(+), 27 deletions(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index e269f6ff5..107a5da08 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - # - run: psql -f test_data/pg_foreignkeyaction_dump.test.out + - run: psql -d test_fka -f test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/test_data/pg_foreignkeyaction_dump.test.out b/test_data/pg_foreignkeyaction_dump.test.out index e063620c6..4fd48d51f 100644 --- a/test_data/pg_foreignkeyaction_dump.test.out +++ b/test_data/pg_foreignkeyaction_dump.test.out @@ -18,36 +18,37 @@ SET row_security = off; SET default_tablespace = ''; +CREATE DATABASE test_fka; -- --- Name: cart; Type: TABLE; Schema: public; Owner: postgres +-- Name: cart; Type: TABLE; Schema: test_fka; Owner: postgres -- -CREATE TABLE public.cart ( +CREATE TABLE test_fka.cart ( productid text NOT NULL, userid text NOT NULL, quantity bigint ); -ALTER TABLE public.cart OWNER TO postgres; +ALTER TABLE test_fka.cart OWNER TO postgres; -- --- Name: products; Type: TABLE; Schema: public; Owner: postgres +-- Name: products; Type: TABLE; Schema: test_fka; Owner: postgres -- -CREATE TABLE public.products ( +CREATE TABLE test_fka.products ( productid text NOT NULL, description text, price numeric(10, 2) ); -ALTER TABLE public.products OWNER TO postgres; +ALTER TABLE test_fka.products OWNER TO postgres; -- --- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres +-- Data for Name: cart; Type: TABLE DATA; Schema: test_fka; Owner: postgres -- -COPY public.cart (productid, userid, quantity) FROM stdin; +COPY test_fka.cart (productid, userid, quantity) FROM stdin; 1YMWWN1N4O 64e10503-9b6f-48e5-9e9c-2b7818ee322d 2 OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 @@ -56,10 +57,10 @@ OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 \. -- --- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres +-- Data for Name: products; Type: TABLE DATA; Schema: test_fka; Owner: postgres -- -COPY public.products (productid, description, price) FROM stdin; +COPY test_fka.products (productid, description, price) FROM stdin; 1YMWWN1N4O bookshelf 45.50 OLJCESPC7Z armchair 54.99 2KJHWIUS9K sofa 125.00 @@ -67,33 +68,33 @@ OLJCESPC7Z armchair 54.99 \. -- --- Name: cart cart_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- Name: cart cart_pkey; Type: CONSTRAINT; Schema: test_fka; Owner: postgres -- -ALTER TABLE ONLY public.cart +ALTER TABLE ONLY test_fka.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); -- --- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- Name: products products_pkey; Type: CONSTRAINT; Schema: test_fka; Owner: postgres -- -ALTER TABLE ONLY public.products +ALTER TABLE ONLY test_fka.products ADD CONSTRAINT products_pkey PRIMARY KEY (productid); -- --- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres +-- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: test_fka; Owner: postgres -- -ALTER TABLE ONLY public.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE CASCADE ON UPDATE RESTRICT; +ALTER TABLE ONLY test_fka.cart + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES test_fka.products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser -- -REVOKE ALL ON SCHEMA public FROM cloudsqladmin; -REVOKE ALL ON SCHEMA public FROM PUBLIC; -GRANT ALL ON SCHEMA public TO cloudsqlsuperuser; -GRANT ALL ON SCHEMA public TO PUBLIC; +REVOKE ALL ON SCHEMA test_fka FROM cloudsqladmin; +REVOKE ALL ON SCHEMA test_fka FROM PUBLIC; +GRANT ALL ON SCHEMA test_fka TO cloudsqlsuperuser; +GRANT ALL ON SCHEMA test_fka TO PUBLIC; -- diff --git a/testing/common/testutil.go b/testing/common/testutil.go index bb0c53ce5..338c1b349 100644 --- a/testing/common/testutil.go +++ b/testing/common/testutil.go @@ -48,7 +48,7 @@ func ClearEnvVariables(vars []string) map[string]string { envVars := make(map[string]string) for _, v := range vars { envVars[v] = os.Getenv(v) - os.Setenv(v, "") + // os.Setenv(v, "") } return envVars } diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 246602ab6..b542afbc6 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -200,6 +200,60 @@ func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { defer dropDatabase(t, dbURI) } +func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { + onlyRunForEmulatorTest(t) + t.Parallel() + + tmpdir := prepareIntegrationTest(t) + defer os.RemoveAll(tmpdir) + + now := time.Now() + g := utils.GetUtilInfoImpl{} + dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + + dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" + filePrefix := filepath.Join(tmpdir, dbName) + + args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s' < %s", filePrefix, instanceID, dbName, dataFilepath) + err := common.RunCommand(args, projectID) + if err != nil { + t.Fatal(err) + } + // Drop the database later. + defer dropDatabase(t, dbURI) + + checkForeignKeyActions(ctx, t, dbURI) +} + +func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { + onlyRunForEmulatorTest(t) + t.Parallel() + + tmpdir := prepareIntegrationTest(t) + defer os.RemoveAll(tmpdir) + + now := time.Now() + g := utils.GetUtilInfoImpl{} + dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + filePrefix := filepath.Join(tmpdir, dbName) + + host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + err := common.RunCommand(args, projectID) + + // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) + // err := common.RunCommand(args, projectID) + if err != nil { + t.Fatal(err) + } + // Drop the database later. + defer dropDatabase(t, dbURI) + + checkForeignKeyActions(ctx, t, dbURI) +} + func checkResults(t *testing.T, dbURI string) { // Make a query to check results. client, err := spanner.NewClient(ctx, dbURI) @@ -212,7 +266,6 @@ func checkResults(t *testing.T, dbURI string) { checkTimestamps(ctx, t, client) checkCoreTypes(ctx, t, client) checkArrays(ctx, t, client) - checkForeignKeyActions(ctx, t, client) } func checkBigInt(ctx context.Context, t *testing.T, client *spanner.Client) { @@ -330,11 +383,16 @@ func checkArrays(ctx context.Context, t *testing.T, client *spanner.Client) { } } -func checkForeignKeyActions(ctx context.Context, t *testing.T, client *spanner.Client) { - +func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { + // Make a query to check results. + client, err := spanner.NewClient(ctx, dbURI) + if err != nil { + log.Fatal(err) + } + defer client.Close() mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) - _, err := client.Apply(ctx, []*spanner.Mutation{mutation}) + _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} From c0f279519959b705709a53ea9d47c62fa223cb36 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 14:07:44 +0000 Subject: [PATCH 23/46] draft 5 --- .github/workflows/integration-tests-against-emulator.yaml | 2 +- testing/postgres/integration_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 107a5da08..7f83153db 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - - run: psql -d test_fka -f test_data/pg_foreignkeyaction_dump.test.out + - run: psql -f test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index b542afbc6..7fa3aa4a2 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -390,12 +390,12 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { log.Fatal(err) } defer client.Close() - mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) + mutation := spanner.Delete("test_fka.products", spanner.Key{"2KJHWIUS9K"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} + stmt := spanner.Statement{SQL: `SELECT * FROM test_fka.cart WHERE productid = "2KJHWIUS9K"`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() row, err := iter.Next() From 2ee25db554a42feaaa565fcc53ef12ac3eaa4ca4 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 19:32:52 +0000 Subject: [PATCH 24/46] mysql --- testing/common/testutil.go | 2 +- testing/mysql/integration_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/testing/common/testutil.go b/testing/common/testutil.go index 338c1b349..bb0c53ce5 100644 --- a/testing/common/testutil.go +++ b/testing/common/testutil.go @@ -48,7 +48,7 @@ func ClearEnvVariables(vars []string) map[string]string { envVars := make(map[string]string) for _, v := range vars { envVars[v] = os.Getenv(v) - // os.Setenv(v, "") + os.Setenv(v, "") } return envVars } diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index 8a47eaaed..ef7b76ad0 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -329,6 +329,14 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() + //comment this out + stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE product_id = "zxi-631"`} + iter1 := client.Single().Query(ctx, stmt1) + defer iter1.Stop() + _, err = iter1.Next() + assert.Equal(t, nil, err, "Expected rows in 'products'") + //-- + mutation := spanner.Delete("products", spanner.Key{"zxi-631"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) From dc191c4bc46f5dc28fdf87b59c25e28c107cbd5e Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 20:00:49 +0000 Subject: [PATCH 25/46] mysql --- testing/mysql/integration_test.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index ef7b76ad0..e5f7a9e12 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -225,14 +225,15 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - dbName := "mysql-dc-schema-and-data" + dbName := "mysql-foreignkey-actions" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") + // host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - err := common.RunCommand(args, projectID) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) + err := common.RunCommand(args, "emulator-test-project") common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) From 33878efbb695bd870267607b12227416a2b3e420 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 20:34:40 +0000 Subject: [PATCH 26/46] postgres + mysql --- testing/mysql/integration_test.go | 6 ++-- testing/postgres/integration_test.go | 54 ++++++++++++++++++---------- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index e5f7a9e12..926cd7a4c 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -229,10 +229,10 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - // host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") + host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) err := common.RunCommand(args, "emulator-test-project") common.RestoreEnvVariables(envVars) if err != nil { diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 7fa3aa4a2..049d9b5ac 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -184,7 +184,6 @@ func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - now := time.Now() g := utils.GetUtilInfoImpl{} dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) @@ -196,7 +195,7 @@ func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { if err != nil { t.Fatal(err) } - // Drop the database later. + defer dropDatabase(t, dbURI) } @@ -207,15 +206,18 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - now := time.Now() - g := utils.GetUtilInfoImpl{} - dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) + // now := time.Now() + // g := utils.GetUtilInfoImpl{} + // dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) + dbName := "test_fka" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" filePrefix := filepath.Join(tmpdir, dbName) - args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s' < %s", filePrefix, instanceID, dbName, dataFilepath) + host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s' < %s", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName, dataFilepath) + // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s' < %s", filePrefix, instanceID, dbName, dataFilepath) err := common.RunCommand(args, projectID) if err != nil { t.Fatal(err) @@ -233,25 +235,41 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - now := time.Now() - g := utils.GetUtilInfoImpl{} - dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + dbName := "postgres-foreignkey-actions" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - err := common.RunCommand(args, projectID) - - // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - // err := common.RunCommand(args, projectID) + host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") + envVars := common.ClearEnvVariables([]string{"PGHOST", "PGUSER", "PGPASSWORD"}) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) + err := common.RunCommand(args, "emulator-test-project") + common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) } - // Drop the database later. defer dropDatabase(t, dbURI) checkForeignKeyActions(ctx, t, dbURI) + + // now := time.Now() + // g := utils.GetUtilInfoImpl{} + // dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + // filePrefix := filepath.Join(tmpdir, dbName) + + // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + // err := common.RunCommand(args, projectID) + + // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) + // err := common.RunCommand(args, projectID) + // if err != nil { + // t.Fatal(err) + // } + // defer dropDatabase(t, dbURI) + + // checkForeignKeyActions(ctx, t, dbURI) } func checkResults(t *testing.T, dbURI string) { @@ -390,12 +408,12 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { log.Fatal(err) } defer client.Close() - mutation := spanner.Delete("test_fka.products", spanner.Key{"2KJHWIUS9K"}) + mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - stmt := spanner.Statement{SQL: `SELECT * FROM test_fka.cart WHERE productid = "2KJHWIUS9K"`} + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() row, err := iter.Next() From 0b0a3b7809a4dafec6b3fecae143cbfe51402df8 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 20:47:35 +0000 Subject: [PATCH 27/46] postgres + mysql --- testing/mysql/integration_test.go | 6 +++--- testing/postgres/integration_test.go | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index 926cd7a4c..e5f7a9e12 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -229,10 +229,10 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") + // host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) err := common.RunCommand(args, "emulator-test-project") common.RestoreEnvVariables(envVars) if err != nil { diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 049d9b5ac..86298b8d5 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -239,10 +239,10 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") + // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") envVars := common.ClearEnvVariables([]string{"PGHOST", "PGUSER", "PGPASSWORD"}) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) err := common.RunCommand(args, "emulator-test-project") common.RestoreEnvVariables(envVars) if err != nil { @@ -259,7 +259,7 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { // filePrefix := filepath.Join(tmpdir, dbName) // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) // err := common.RunCommand(args, projectID) // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) @@ -408,12 +408,12 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { log.Fatal(err) } defer client.Close() - mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) + mutation := spanner.Delete("test_fka_products", spanner.Key{"2KJHWIUS9K"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} + stmt := spanner.Statement{SQL: `SELECT * FROM test_fka_cart WHERE productid = "2KJHWIUS9K"`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() row, err := iter.Next() From f31ee539077946a948b13fd38a852f03b78c744d Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Wed, 17 Jul 2024 21:19:01 +0000 Subject: [PATCH 28/46] postgres + mysql --- testing/postgres/integration_test.go | 58 +++++++++++++++++++++------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 86298b8d5..3be532c1f 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -18,6 +18,7 @@ import ( "context" "flag" "fmt" + "io" "io/ioutil" "log" "math/big" @@ -32,7 +33,6 @@ import ( "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/common/utils" "github.com/GoogleCloudPlatform/spanner-migration-tool/testing/common" - "github.com/stretchr/testify/assert" "google.golang.org/api/iterator" databasepb "google.golang.org/genproto/googleapis/spanner/admin/database/v1" ) @@ -191,7 +191,7 @@ func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) args := fmt.Sprintf("schema -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - err := common.RunCommand(args, projectID) + err := common.RunCommand(args, "emulator-test-project") if err != nil { t.Fatal(err) } @@ -209,16 +209,17 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { // now := time.Now() // g := utils.GetUtilInfoImpl{} // dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) - dbName := "test_fka" + dbName := "pgdump-fka" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" filePrefix := filepath.Join(tmpdir, dbName) - host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s' < %s", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName, dataFilepath) + // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s' < %s", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName, dataFilepath) + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=pgdump-fka' < %s", constants.POSTGRES, filePrefix, dataFilepath) // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s' < %s", filePrefix, instanceID, dbName, dataFilepath) - err := common.RunCommand(args, projectID) + err := common.RunCommand(args, "emulator-test-project") if err != nil { t.Fatal(err) } @@ -402,24 +403,51 @@ func checkArrays(ctx context.Context, t *testing.T, client *spanner.Client) { } func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { - // Make a query to check results. + // client, err := spanner.NewClient(ctx, dbURI) + // if err != nil { + // log.Fatal(err) + // } + // defer client.Close() + // mutation := spanner.Delete("test_fka.products", spanner.Key{"2KJHWIUS9K"}) + + // _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) + // assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") + + // stmt := spanner.Statement{SQL: `SELECT * FROM test_fka.cart WHERE productid = "2KJHWIUS9K"`} + // iter := client.Single().Query(ctx, stmt) + // defer iter.Stop() + // row, err := iter.Next() + + // assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION + // assert.NotNil(t, row, "Expected rows in 'cart' to still exist") + client, err := spanner.NewClient(ctx, dbURI) if err != nil { log.Fatal(err) } defer client.Close() - mutation := spanner.Delete("test_fka_products", spanner.Key{"2KJHWIUS9K"}) - _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) - assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - - stmt := spanner.Statement{SQL: `SELECT * FROM test_fka_cart WHERE productid = "2KJHWIUS9K"`} + stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() - row, err := iter.Next() - assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION - assert.NotNil(t, row, "Expected rows in 'cart' to still exist") + fmt.Println("Tables in Spanner database:") + for { + row, err := iter.Next() + if err == io.EOF { + break + } + if err != nil { + log.Fatal(err) + } + + var tableName string + if err := row.Columns(&tableName); err != nil { + log.Fatal(err) + } + + fmt.Println("- ", tableName) + } } func onlyRunForEmulatorTest(t *testing.T) { From 772965386c1d6c120cfe5b00a7614b57808b51c8 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 05:43:59 +0000 Subject: [PATCH 29/46] postgres --- testing/postgres/integration_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 3be532c1f..0c12ad78f 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -426,8 +426,9 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { log.Fatal(err) } defer client.Close() + fmt.Println("dbURI- ", dbURI) - stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} + stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() From bc2044a3e14e58aecf1eafeb86ee254fd9dd9288 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 06:17:06 +0000 Subject: [PATCH 30/46] postgres --- test_data/pg_foreignkeyaction_dump.test.out | 42 ++++++++-------- testing/postgres/integration_test.go | 53 +++++++++++---------- 2 files changed, 48 insertions(+), 47 deletions(-) diff --git a/test_data/pg_foreignkeyaction_dump.test.out b/test_data/pg_foreignkeyaction_dump.test.out index 4fd48d51f..c8ddc6732 100644 --- a/test_data/pg_foreignkeyaction_dump.test.out +++ b/test_data/pg_foreignkeyaction_dump.test.out @@ -20,35 +20,35 @@ SET default_tablespace = ''; CREATE DATABASE test_fka; -- --- Name: cart; Type: TABLE; Schema: test_fka; Owner: postgres +-- Name: cart; Type: TABLE; Schema: public; Owner: postgres -- -CREATE TABLE test_fka.cart ( +CREATE TABLE public.cart ( productid text NOT NULL, userid text NOT NULL, quantity bigint ); -ALTER TABLE test_fka.cart OWNER TO postgres; +ALTER TABLE public.cart OWNER TO postgres; -- --- Name: products; Type: TABLE; Schema: test_fka; Owner: postgres +-- Name: products; Type: TABLE; Schema: public; Owner: postgres -- -CREATE TABLE test_fka.products ( +CREATE TABLE public.products ( productid text NOT NULL, description text, price numeric(10, 2) ); -ALTER TABLE test_fka.products OWNER TO postgres; +ALTER TABLE public.products OWNER TO postgres; -- --- Data for Name: cart; Type: TABLE DATA; Schema: test_fka; Owner: postgres +-- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres -- -COPY test_fka.cart (productid, userid, quantity) FROM stdin; +COPY public.cart (productid, userid, quantity) FROM stdin; 1YMWWN1N4O 64e10503-9b6f-48e5-9e9c-2b7818ee322d 2 OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 @@ -57,10 +57,10 @@ OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 \. -- --- Data for Name: products; Type: TABLE DATA; Schema: test_fka; Owner: postgres +-- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres -- -COPY test_fka.products (productid, description, price) FROM stdin; +COPY public.products (productid, description, price) FROM stdin; 1YMWWN1N4O bookshelf 45.50 OLJCESPC7Z armchair 54.99 2KJHWIUS9K sofa 125.00 @@ -68,33 +68,33 @@ OLJCESPC7Z armchair 54.99 \. -- --- Name: cart cart_pkey; Type: CONSTRAINT; Schema: test_fka; Owner: postgres +-- Name: cart cart_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- -ALTER TABLE ONLY test_fka.cart +ALTER TABLE ONLY public.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); -- --- Name: products products_pkey; Type: CONSTRAINT; Schema: test_fka; Owner: postgres +-- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- -ALTER TABLE ONLY test_fka.products +ALTER TABLE ONLY public.products ADD CONSTRAINT products_pkey PRIMARY KEY (productid); -- --- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: test_fka; Owner: postgres +-- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres -- -ALTER TABLE ONLY test_fka.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES test_fka.products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; +ALTER TABLE ONLY public.cart + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES public.products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser -- -REVOKE ALL ON SCHEMA test_fka FROM cloudsqladmin; -REVOKE ALL ON SCHEMA test_fka FROM PUBLIC; -GRANT ALL ON SCHEMA test_fka TO cloudsqlsuperuser; -GRANT ALL ON SCHEMA test_fka TO PUBLIC; +REVOKE ALL ON SCHEMA public FROM cloudsqladmin; +REVOKE ALL ON SCHEMA public FROM PUBLIC; +GRANT ALL ON SCHEMA public TO cloudsqlsuperuser; +GRANT ALL ON SCHEMA public TO PUBLIC; -- diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 0c12ad78f..df24d3a7b 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -236,41 +236,42 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - dbName := "postgres-foreignkey-actions" - dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - filePrefix := filepath.Join(tmpdir, dbName) + // dbName := "postgres-foreignkey-actions" + // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + // filePrefix := filepath.Join(tmpdir, dbName) - // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") - envVars := common.ClearEnvVariables([]string{"PGHOST", "PGUSER", "PGPASSWORD"}) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) - err := common.RunCommand(args, "emulator-test-project") - common.RestoreEnvVariables(envVars) - if err != nil { - t.Fatal(err) - } - defer dropDatabase(t, dbURI) + // // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") + // envVars := common.ClearEnvVariables([]string{"PGHOST", "PGUSER", "PGPASSWORD"}) + // // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) + // err := common.RunCommand(args, "emulator-test-project") + // common.RestoreEnvVariables(envVars) + // if err != nil { + // t.Fatal(err) + // } + // defer dropDatabase(t, dbURI) - checkForeignKeyActions(ctx, t, dbURI) + // checkForeignKeyActions(ctx, t, dbURI) - // now := time.Now() - // g := utils.GetUtilInfoImpl{} - // dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) - // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - // filePrefix := filepath.Join(tmpdir, dbName) + now := time.Now() + g := utils.GetUtilInfoImpl{} + dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + filePrefix := filepath.Join(tmpdir, dbName) // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s'", constants.POSTGRES, filePrefix, dbName) // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) - // err := common.RunCommand(args, projectID) + err := common.RunCommand(args, projectID) // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) // err := common.RunCommand(args, projectID) - // if err != nil { - // t.Fatal(err) - // } - // defer dropDatabase(t, dbURI) + if err != nil { + t.Fatal(err) + } + defer dropDatabase(t, dbURI) - // checkForeignKeyActions(ctx, t, dbURI) + checkForeignKeyActions(ctx, t, dbURI) } func checkResults(t *testing.T, dbURI string) { @@ -428,7 +429,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { defer client.Close() fmt.Println("dbURI- ", dbURI) - stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables`} + stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() From b2cc82e833b9528b4b10b82103b27bfb2f96b0b6 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 06:32:15 +0000 Subject: [PATCH 31/46] postgres --- .github/workflows/integration-tests-against-emulator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 7f83153db..f94a4a28c 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - - run: psql -f test_data/pg_foreignkeyaction_dump.test.out + - run: psql -d test_fka < test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version From 4c50be8872488096155d747e8ac69e0aa7d0e6a1 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 06:41:48 +0000 Subject: [PATCH 32/46] postgres --- .../integration-tests-against-emulator.yaml | 2 +- test_data/pg_dump.test.out | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index f94a4a28c..9c65dd60b 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - - run: psql -d test_fka < test_data/pg_foreignkeyaction_dump.test.out + # - run: psql -d test_fka < test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index bb81a92cc..68f9c7efd 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -31,6 +31,18 @@ CREATE TABLE public.cart ( ALTER TABLE public.cart OWNER TO postgres; +-- +-- Name: products; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.products ( + productid text NOT NULL, + description text, + price numeric(10, 2) +); + +ALTER TABLE public.products OWNER TO postgres; + -- -- Name: test; Type: TABLE; Schema: public; Owner: postgres -- @@ -84,8 +96,19 @@ COPY public.cart (productid, userid, quantity) FROM stdin; OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 +2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 \. +-- +-- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.products (productid, description, price) FROM stdin; +1YMWWN1N4O bookshelf 45.50 +OLJCESPC7Z armchair 54.99 +2KJHWIUS9K sofa 125.00 +0MWERIJB8H cupboard 59.99 +\. -- -- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres @@ -123,6 +146,13 @@ COPY public.test3 (id, a, b) FROM stdin; ALTER TABLE ONLY public.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); + +-- +-- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.products + ADD CONSTRAINT products_pkey PRIMARY KEY (productid); -- @@ -147,6 +177,12 @@ ALTER TABLE ONLY public.test3 ALTER TABLE ONLY public.test ADD CONSTRAINT test_pkey PRIMARY KEY (id); +-- +-- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres +-- +ALTER TABLE ONLY public.cart + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; + -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser -- From eb72ec21b5ee8f485f3aca390d0fcc1317a550f0 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 06:59:53 +0000 Subject: [PATCH 33/46] postgres --- testing/postgres/integration_test.go | 114 +++++++++++++++------------ 1 file changed, 65 insertions(+), 49 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index df24d3a7b..1f3b9b944 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -18,7 +18,6 @@ import ( "context" "flag" "fmt" - "io" "io/ioutil" "log" "math/big" @@ -33,6 +32,7 @@ import ( "github.com/GoogleCloudPlatform/spanner-migration-tool/common/constants" "github.com/GoogleCloudPlatform/spanner-migration-tool/common/utils" "github.com/GoogleCloudPlatform/spanner-migration-tool/testing/common" + "github.com/stretchr/testify/assert" "google.golang.org/api/iterator" databasepb "google.golang.org/genproto/googleapis/spanner/admin/database/v1" ) @@ -206,10 +206,10 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) - // now := time.Now() - // g := utils.GetUtilInfoImpl{} - // dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) - dbName := "pgdump-fka" + now := time.Now() + g := utils.GetUtilInfoImpl{} + dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) + // dbName := "pgdump-fka" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" @@ -217,8 +217,8 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s' < %s", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName, dataFilepath) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=pgdump-fka' < %s", constants.POSTGRES, filePrefix, dataFilepath) - // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s' < %s", filePrefix, instanceID, dbName, dataFilepath) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s' < %s", constants.POSTGRES, filePrefix, dataFilepath, dbName) + args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=test-instance,dbName=%s' < %s", filePrefix, dbName, dataFilepath) err := common.RunCommand(args, "emulator-test-project") if err != nil { t.Fatal(err) @@ -253,24 +253,40 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { // checkForeignKeyActions(ctx, t, dbURI) + // ------------------ + // now := time.Now() + // g := utils.GetUtilInfoImpl{} + // dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + // filePrefix := filepath.Join(tmpdir, dbName) + + // // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s'", constants.POSTGRES, filePrefix, dbName) + // // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) + // err := common.RunCommand(args, projectID) + + // // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) + // // err := common.RunCommand(args, projectID) + // if err != nil { + // t.Fatal(err) + // } + // defer dropDatabase(t, dbURI) + + // checkForeignKeyActions(ctx, t, dbURI) + now := time.Now() g := utils.GetUtilInfoImpl{} dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s'", constants.POSTGRES, filePrefix, dbName) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) + args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) err := common.RunCommand(args, projectID) - - // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - // err := common.RunCommand(args, projectID) if err != nil { t.Fatal(err) } + // Drop the database later. defer dropDatabase(t, dbURI) - checkForeignKeyActions(ctx, t, dbURI) } @@ -404,52 +420,52 @@ func checkArrays(ctx context.Context, t *testing.T, client *spanner.Client) { } func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { - // client, err := spanner.NewClient(ctx, dbURI) - // if err != nil { - // log.Fatal(err) - // } - // defer client.Close() - // mutation := spanner.Delete("test_fka.products", spanner.Key{"2KJHWIUS9K"}) - - // _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) - // assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - - // stmt := spanner.Statement{SQL: `SELECT * FROM test_fka.cart WHERE productid = "2KJHWIUS9K"`} - // iter := client.Single().Query(ctx, stmt) - // defer iter.Stop() - // row, err := iter.Next() - - // assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION - // assert.NotNil(t, row, "Expected rows in 'cart' to still exist") - client, err := spanner.NewClient(ctx, dbURI) if err != nil { log.Fatal(err) } defer client.Close() - fmt.Println("dbURI- ", dbURI) + mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) - stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} + _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) + assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") + + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() + row, err := iter.Next() - fmt.Println("Tables in Spanner database:") - for { - row, err := iter.Next() - if err == io.EOF { - break - } - if err != nil { - log.Fatal(err) - } + assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION + assert.NotNil(t, row, "Expected rows in 'cart' to still exist") - var tableName string - if err := row.Columns(&tableName); err != nil { - log.Fatal(err) - } + // client, err := spanner.NewClient(ctx, dbURI) + // if err != nil { + // log.Fatal(err) + // } + // defer client.Close() + // fmt.Println("dbURI- ", dbURI) - fmt.Println("- ", tableName) - } + // stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} + // iter := client.Single().Query(ctx, stmt) + // defer iter.Stop() + + // fmt.Println("Tables in Spanner database:") + // for { + // row, err := iter.Next() + // if err == io.EOF { + // break + // } + // if err != nil { + // log.Fatal(err) + // } + + // var tableName string + // if err := row.Columns(&tableName); err != nil { + // log.Fatal(err) + // } + + // fmt.Println("- ", tableName) + // } } func onlyRunForEmulatorTest(t *testing.T) { From 9fe5fbbb705ef6485d59c41a6b14a68c0dad7d20 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 07:14:04 +0000 Subject: [PATCH 34/46] postgres --- testing/postgres/integration_test.go | 84 +++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 1f3b9b944..c2be10ae8 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -18,6 +18,7 @@ import ( "context" "flag" "fmt" + "io" "io/ioutil" "log" "math/big" @@ -175,7 +176,8 @@ func TestIntegration_POSTGRES_SchemaAndDataSubcommand(t *testing.T) { // Drop the database later. defer dropDatabase(t, dbURI) - checkResults(t, dbURI) + // checkResults(t, dbURI) + printSpannerData(ctx, dbURI) } func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { @@ -287,7 +289,8 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { } // Drop the database later. defer dropDatabase(t, dbURI) - checkForeignKeyActions(ctx, t, dbURI) + // checkForeignKeyActions(ctx, t, dbURI) + printSpannerData(ctx, dbURI) } func checkResults(t *testing.T, dbURI string) { @@ -467,6 +470,83 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { // fmt.Println("- ", tableName) // } } +func printSpannerData(ctx context.Context, dbURI string) { + client, err := spanner.NewClient(ctx, dbURI) + if err != nil { + log.Fatal(err) + } + defer client.Close() + fmt.Println("dbURI- ", dbURI) + + // Print rows from the "products" table + printTableRows(ctx, client, "products") + + // Print rows from the "cart" table + printTableRows(ctx, client, "cart") + + // Print referential constraint information + printReferentialConstraints(ctx, client) +} + +func printTableRows(ctx context.Context, client *spanner.Client, tableName string) { + fmt.Printf("\nRows in table '%s':\n", tableName) + stmt := spanner.Statement{SQL: fmt.Sprintf("SELECT * FROM %s", tableName)} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + + for { + row, err := iter.Next() + if err == io.EOF { + break + } + if err != nil { + log.Fatal(err) + } + + // Assuming you know the column structure, adjust this part accordingly + var col1, col2, col3 string // Replace with your actual column types + if err := row.Columns(&col1, &col2, &col3); err != nil { + log.Fatal(err) + } + fmt.Printf(" %s, %s, %s\n", col1, col2, col3) + } +} + +func printReferentialConstraints(ctx context.Context, client *spanner.Client) { + fmt.Println("\nReferential Constraints:") + stmt := spanner.Statement{SQL: ` + SELECT + tc.table_name AS referencing_table, + cc.column_name AS referencing_column, + tc.constraint_name, + kcu.table_name AS referenced_table, + kcu.column_name AS referenced_column + FROM information_schema.table_constraints AS tc + JOIN information_schema.constraint_column_usage AS ccu + ON tc.constraint_name = ccu.constraint_name + JOIN information_schema.key_column_usage AS kcu + ON tc.constraint_name = kcu.constraint_name + WHERE tc.constraint_type = 'FOREIGN KEY' + `} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + + for { + row, err := iter.Next() + if err == io.EOF { + break + } + if err != nil { + log.Fatal(err) + } + + var refTable, refColumn, constraint, referencedTable, referencedColumn string + if err := row.Columns(&refTable, &refColumn, &constraint, &referencedTable, &referencedColumn); err != nil { + log.Fatal(err) + } + fmt.Printf(" Constraint: %s, From: %s.%s, To: %s.%s\n", constraint, refTable, refColumn, referencedTable, referencedColumn) + } +} func onlyRunForEmulatorTest(t *testing.T) { if os.Getenv("SPANNER_EMULATOR_HOST") == "" { From 8d9b0c45ec87a638d37ec378430d2ebe49cc048c Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 07:24:26 +0000 Subject: [PATCH 35/46] postgres --- test_data/pg_dump.test.out | 10 +++++----- testing/postgres/integration_test.go | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index 68f9c7efd..2679ec912 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -38,7 +38,7 @@ ALTER TABLE public.cart OWNER TO postgres; CREATE TABLE public.products ( productid text NOT NULL, description text, - price numeric(10, 2) + price bigint ); ALTER TABLE public.products OWNER TO postgres; @@ -104,10 +104,10 @@ OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 -- COPY public.products (productid, description, price) FROM stdin; -1YMWWN1N4O bookshelf 45.50 -OLJCESPC7Z armchair 54.99 -2KJHWIUS9K sofa 125.00 -0MWERIJB8H cupboard 59.99 +1YMWWN1N4O bookshelf 45 +OLJCESPC7Z armchair 54 +2KJHWIUS9K sofa 125 +0MWERIJB8H cupboard 59 \. -- diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index c2be10ae8..f0bc9ed90 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -504,7 +504,8 @@ func printTableRows(ctx context.Context, client *spanner.Client, tableName strin } // Assuming you know the column structure, adjust this part accordingly - var col1, col2, col3 string // Replace with your actual column types + var col1, col2 string // Replace with your actual column types + var col3 int if err := row.Columns(&col1, &col2, &col3); err != nil { log.Fatal(err) } From cf151626e995bef1a1a796a5af091579373a7e1c Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 07:38:02 +0000 Subject: [PATCH 36/46] postgres --- testing/postgres/integration_test.go | 56 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index f0bc9ed90..6f932422a 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -228,11 +228,11 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { // Drop the database later. defer dropDatabase(t, dbURI) - checkForeignKeyActions(ctx, t, dbURI) + // checkForeignKeyActions(ctx, t, dbURI) } func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { - onlyRunForEmulatorTest(t) + // onlyRunForEmulatorTest(t) t.Parallel() tmpdir := prepareIntegrationTest(t) @@ -479,39 +479,39 @@ func printSpannerData(ctx context.Context, dbURI string) { fmt.Println("dbURI- ", dbURI) // Print rows from the "products" table - printTableRows(ctx, client, "products") + // printTableRows(ctx, client, "products") // Print rows from the "cart" table - printTableRows(ctx, client, "cart") + // printTableRows(ctx, client, "cart") // Print referential constraint information printReferentialConstraints(ctx, client) } -func printTableRows(ctx context.Context, client *spanner.Client, tableName string) { - fmt.Printf("\nRows in table '%s':\n", tableName) - stmt := spanner.Statement{SQL: fmt.Sprintf("SELECT * FROM %s", tableName)} - iter := client.Single().Query(ctx, stmt) - defer iter.Stop() - - for { - row, err := iter.Next() - if err == io.EOF { - break - } - if err != nil { - log.Fatal(err) - } - - // Assuming you know the column structure, adjust this part accordingly - var col1, col2 string // Replace with your actual column types - var col3 int - if err := row.Columns(&col1, &col2, &col3); err != nil { - log.Fatal(err) - } - fmt.Printf(" %s, %s, %s\n", col1, col2, col3) - } -} +// func printTableRows(ctx context.Context, client *spanner.Client, tableName string) { +// fmt.Printf("\nRows in table '%s':\n", tableName) +// stmt := spanner.Statement{SQL: fmt.Sprintf("SELECT * FROM %s", tableName)} +// iter := client.Single().Query(ctx, stmt) +// defer iter.Stop() + +// for { +// row, err := iter.Next() +// if err == io.EOF { +// break +// } +// if err != nil { +// log.Fatal(err) +// } + +// // Assuming you know the column structure, adjust this part accordingly +// var col1, col2 string // Replace with your actual column types +// var col3 int +// if err := row.Columns(&col1, &col2, &col3); err != nil { +// log.Fatal(err) +// } +// fmt.Printf(" %s, %s, %s\n", col1, col2, col3) +// } +// } func printReferentialConstraints(ctx context.Context, client *spanner.Client) { fmt.Println("\nReferential Constraints:") From 0f429f2454f895adcc82f9f406037668819d62fb Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 07:40:55 +0000 Subject: [PATCH 37/46] postgres --- testing/postgres/integration_test.go | 32 +++++++++++++++++----------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 6f932422a..3d99c24a9 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -516,19 +516,27 @@ func printSpannerData(ctx context.Context, dbURI string) { func printReferentialConstraints(ctx context.Context, client *spanner.Client) { fmt.Println("\nReferential Constraints:") stmt := spanner.Statement{SQL: ` - SELECT - tc.table_name AS referencing_table, - cc.column_name AS referencing_column, - tc.constraint_name, - kcu.table_name AS referenced_table, - kcu.column_name AS referenced_column - FROM information_schema.table_constraints AS tc - JOIN information_schema.constraint_column_usage AS ccu - ON tc.constraint_name = ccu.constraint_name - JOIN information_schema.key_column_usage AS kcu - ON tc.constraint_name = kcu.constraint_name - WHERE tc.constraint_type = 'FOREIGN KEY' + SELECT + rc.constraint_schema AS "TABLE_SCHEMA", + ccu.table_name AS "REFERENCED_TABLE_NAME", + kcu.column_name AS "COLUMN_NAME", + ccu.column_name AS "REF_COLUMN_NAME", + rc.constraint_name AS "CONSTRAINT_NAME", + rc.delete_rule AS "ON_DELETE", + rc.update_rule AS "ON_UPDATE" +FROM + INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc +INNER JOIN + INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu + ON rc.constraint_name = kcu.constraint_name + AND rc.constraint_schema = kcu.constraint_schema +INNER JOIN + INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu + ON rc.constraint_name = ccu.constraint_name + AND rc.constraint_schema = ccu.constraint_schema +WHERE tc.constraint_type = 'FOREIGN KEY' `} + iter := client.Single().Query(ctx, stmt) defer iter.Stop() From cdeab60fd76e8b5db52612340e30ea1d56161ff9 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 07:52:50 +0000 Subject: [PATCH 38/46] postgres --- testing/postgres/integration_test.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 3d99c24a9..0b274f521 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -517,13 +517,13 @@ func printReferentialConstraints(ctx context.Context, client *spanner.Client) { fmt.Println("\nReferential Constraints:") stmt := spanner.Statement{SQL: ` SELECT - rc.constraint_schema AS "TABLE_SCHEMA", - ccu.table_name AS "REFERENCED_TABLE_NAME", - kcu.column_name AS "COLUMN_NAME", - ccu.column_name AS "REF_COLUMN_NAME", - rc.constraint_name AS "CONSTRAINT_NAME", - rc.delete_rule AS "ON_DELETE", - rc.update_rule AS "ON_UPDATE" + rc.constraint_schema AS TABLE_SCHEMA, + ccu.table_name AS REFERENCED_TABLE_NAME, + kcu.column_name AS COLUMN_NAME, + ccu.column_name AS REF_COLUMN_NAME, + rc.constraint_name AS CONSTRAINT_NAME, + rc.delete_rule AS ON_DELETE, + rc.update_rule AS ON_UPDATE FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc INNER JOIN @@ -534,7 +534,7 @@ INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON rc.constraint_name = ccu.constraint_name AND rc.constraint_schema = ccu.constraint_schema -WHERE tc.constraint_type = 'FOREIGN KEY' +WHERE rc.constraint_type = 'FOREIGN KEY' `} iter := client.Single().Query(ctx, stmt) From ce095913f0861498f7d271ab86ea9c2cf153419b Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 08:01:23 +0000 Subject: [PATCH 39/46] postgres --- testing/postgres/integration_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 0b274f521..f8c1a951a 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -534,7 +534,6 @@ INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON rc.constraint_name = ccu.constraint_name AND rc.constraint_schema = ccu.constraint_schema -WHERE rc.constraint_type = 'FOREIGN KEY' `} iter := client.Single().Query(ctx, stmt) From 95e6ffbacf470f9758ff19ca31935f18724c432c Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 09:26:14 +0000 Subject: [PATCH 40/46] one pgdump --- .../integration-tests-against-emulator.yaml | 2 +- testing/postgres/integration_test.go | 86 +++++++------------ 2 files changed, 30 insertions(+), 58 deletions(-) diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index 9c65dd60b..d2a263733 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,7 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - # - run: psql -d test_fka < test_data/pg_foreignkeyaction_dump.test.out + # - run: psql -f test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index f8c1a951a..a295f75b7 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -176,8 +176,8 @@ func TestIntegration_POSTGRES_SchemaAndDataSubcommand(t *testing.T) { // Drop the database later. defer dropDatabase(t, dbURI) - // checkResults(t, dbURI) - printSpannerData(ctx, dbURI) + checkResults(t, dbURI) + // printReferentialConstraints(ctx, dbURI) } func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { @@ -214,7 +214,8 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { // dbName := "pgdump-fka" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" + // dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" + dataFilepath := "../../test_data/pg_dump.test.out" filePrefix := filepath.Join(tmpdir, dbName) // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") @@ -228,16 +229,30 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { // Drop the database later. defer dropDatabase(t, dbURI) - // checkForeignKeyActions(ctx, t, dbURI) + checkForeignKeyActions(ctx, t, dbURI) } func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { - // onlyRunForEmulatorTest(t) + onlyRunForEmulatorTest(t) t.Parallel() tmpdir := prepareIntegrationTest(t) defer os.RemoveAll(tmpdir) + now := time.Now() + g := utils.GetUtilInfoImpl{} + dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) + dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) + filePrefix := filepath.Join(tmpdir, dbName) + + args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) + err := common.RunCommand(args, projectID) + if err != nil { + t.Fatal(err) + } + defer dropDatabase(t, dbURI) + checkForeignKeyActions(ctx, t, dbURI) + // dbName := "postgres-foreignkey-actions" // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) // filePrefix := filepath.Join(tmpdir, dbName) @@ -276,21 +291,6 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { // checkForeignKeyActions(ctx, t, dbURI) - now := time.Now() - g := utils.GetUtilInfoImpl{} - dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) - dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - filePrefix := filepath.Join(tmpdir, dbName) - - args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - err := common.RunCommand(args, projectID) - if err != nil { - t.Fatal(err) - } - // Drop the database later. - defer dropDatabase(t, dbURI) - // checkForeignKeyActions(ctx, t, dbURI) - printSpannerData(ctx, dbURI) } func checkResults(t *testing.T, dbURI string) { @@ -428,6 +428,14 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { log.Fatal(err) } defer client.Close() + + stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = "2KJHWIUS9K"`} + iter1 := client.Single().Query(ctx, stmt1) + defer iter1.Stop() + row1, _ := iter1.Next() + + assert.NotNil(t, row1, "Error fetching rows from 'products'") + mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) @@ -470,7 +478,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { // fmt.Println("- ", tableName) // } } -func printSpannerData(ctx context.Context, dbURI string) { +func printReferentialConstraints(ctx context.Context, dbURI string) { client, err := spanner.NewClient(ctx, dbURI) if err != nil { log.Fatal(err) @@ -478,42 +486,6 @@ func printSpannerData(ctx context.Context, dbURI string) { defer client.Close() fmt.Println("dbURI- ", dbURI) - // Print rows from the "products" table - // printTableRows(ctx, client, "products") - - // Print rows from the "cart" table - // printTableRows(ctx, client, "cart") - - // Print referential constraint information - printReferentialConstraints(ctx, client) -} - -// func printTableRows(ctx context.Context, client *spanner.Client, tableName string) { -// fmt.Printf("\nRows in table '%s':\n", tableName) -// stmt := spanner.Statement{SQL: fmt.Sprintf("SELECT * FROM %s", tableName)} -// iter := client.Single().Query(ctx, stmt) -// defer iter.Stop() - -// for { -// row, err := iter.Next() -// if err == io.EOF { -// break -// } -// if err != nil { -// log.Fatal(err) -// } - -// // Assuming you know the column structure, adjust this part accordingly -// var col1, col2 string // Replace with your actual column types -// var col3 int -// if err := row.Columns(&col1, &col2, &col3); err != nil { -// log.Fatal(err) -// } -// fmt.Printf(" %s, %s, %s\n", col1, col2, col3) -// } -// } - -func printReferentialConstraints(ctx context.Context, client *spanner.Client) { fmt.Println("\nReferential Constraints:") stmt := spanner.Statement{SQL: ` SELECT From 42432d923318c402dca68abb24a289f1c7fc7385 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 09:43:50 +0000 Subject: [PATCH 41/46] one pgdump - changing pg query --- testing/postgres/integration_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index a295f75b7..569275863 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -246,7 +246,7 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - err := common.RunCommand(args, projectID) + err := common.RunCommand(args, "emulator-test-project") if err != nil { t.Fatal(err) } @@ -429,19 +429,19 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() - stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = "2KJHWIUS9K"`} + stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '2KJHWIUS9K'`} iter1 := client.Single().Query(ctx, stmt1) defer iter1.Stop() row1, _ := iter1.Next() - assert.NotNil(t, row1, "Error fetching rows from 'products'") + assert.NotNil(t, row1, "No row exists with given key in 'products'") mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) - assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") + // assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = "2KJHWIUS9K"`} + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '2KJHWIUS9K'`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() row, err := iter.Next() From f06d3a02edb7db24f7024f58a0da70fe4852233b Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 09:55:24 +0000 Subject: [PATCH 42/46] one pgdump - changing pg query + dump --- test_data/pg_dump.test.out | 111 ++------------------------- testing/postgres/integration_test.go | 25 +++--- 2 files changed, 23 insertions(+), 113 deletions(-) diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index 2679ec912..b4bb9ba25 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -18,6 +18,7 @@ SET row_security = off; SET default_tablespace = ''; +CREATE DATABASE test_fka; -- -- Name: cart; Type: TABLE; Schema: public; Owner: postgres -- @@ -38,55 +39,11 @@ ALTER TABLE public.cart OWNER TO postgres; CREATE TABLE public.products ( productid text NOT NULL, description text, - price bigint + price numeric(10, 2) ); ALTER TABLE public.products OWNER TO postgres; --- --- Name: test; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.test ( - id integer NOT NULL, - t timestamp without time zone, - tz timestamp with time zone -); - - -ALTER TABLE public.test OWNER TO postgres; - --- --- Name: test2; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.test2 ( - id integer NOT NULL, - a boolean, - b bytea, - c date, - d double precision, - e integer, - f numeric(38, 9), - g text -); - - -ALTER TABLE public.test2 OWNER TO postgres; - --- --- Name: test3; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.test3 ( - id integer NOT NULL, - a integer[], - b text[] -); - - -ALTER TABLE public.test3 OWNER TO postgres; - -- -- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres -- @@ -96,7 +53,6 @@ COPY public.cart (productid, userid, quantity) FROM stdin; OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 -2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 \. -- @@ -104,40 +60,10 @@ OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 -- COPY public.products (productid, description, price) FROM stdin; -1YMWWN1N4O bookshelf 45 -OLJCESPC7Z armchair 54 -2KJHWIUS9K sofa 125 -0MWERIJB8H cupboard 59 -\. - --- --- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.test (id, t, tz) FROM stdin; -1 2019-10-28 15:00:00 2019-10-28 19:00:00+00 -2 2019-10-28 15:00:00 2019-10-28 15:00:00+00 -3 2019-10-28 15:00:00 2019-10-28 19:00:00+00 -4 2019-10-28 15:00:00.123457 2019-10-28 15:00:00.123457+00 -\. - --- --- Data for Name: test2; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.test2 (id, a, b, c, d, e, f, g) FROM stdin; -1 t \\x00010203deadbeef 2019-10-28 99.9 42 1234567890123456789012345678.123456789 hi -2 f \\x00010203424344 2018-11-28 12.3 6 1234567890123456789012345.1223456 hello -\. - - --- --- Data for Name: test3; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.test3 (id, a, b) FROM stdin; -1 {1,2,3} {1,nice,foo} -2 {6} {i,am,not,a,number} +1YMWWN1N4O bookshelf 45.50 +OLJCESPC7Z armchair 54.99 +2KJHWIUS9K sofa 125.00 +0MWERIJB8H cupboard 59.99 \. -- @@ -154,34 +80,11 @@ ALTER TABLE ONLY public.cart ALTER TABLE ONLY public.products ADD CONSTRAINT products_pkey PRIMARY KEY (productid); - --- --- Name: test2 test2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.test2 - ADD CONSTRAINT test2_pkey PRIMARY KEY (id); - - --- --- Name: test3 test3_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.test3 - ADD CONSTRAINT test3_pkey PRIMARY KEY (id); - --- --- Name: test test_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.test - ADD CONSTRAINT test_pkey PRIMARY KEY (id); - -- -- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; + ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES public.products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; -- -- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 569275863..60961bd47 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -429,22 +429,29 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() - stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '2KJHWIUS9K'`} - iter1 := client.Single().Query(ctx, stmt1) - defer iter1.Stop() - row1, _ := iter1.Next() + stmt := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + row, _ := iter.Next() - assert.NotNil(t, row1, "No row exists with given key in 'products'") + assert.NotNil(t, row, "No row exists with given key in 'products'") - mutation := spanner.Delete("products", spanner.Key{"2KJHWIUS9K"}) + mutation := spanner.Delete("products", spanner.Key{"1YMWWN1N4O"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) // assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") - stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '2KJHWIUS9K'`} - iter := client.Single().Query(ctx, stmt) + stmt = spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} + iter = client.Single().Query(ctx, stmt) + defer iter.Stop() + row, _ = iter.Next() + + assert.Nil(t, row, "Rows still exists with given key in 'products'") + + stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '1YMWWN1N4O'`} + iter = client.Single().Query(ctx, stmt) defer iter.Stop() - row, err := iter.Next() + row, err = iter.Next() assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION assert.NotNil(t, row, "Expected rows in 'cart' to still exist") From 524143ff6e0cd797d0d7cb7a4c98e6e304b34b26 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 10:21:55 +0000 Subject: [PATCH 43/46] pgdump working --- test_data/pg_dump.test.out | 100 +++++++++++++++++++++++++-- testing/mysql/integration_test.go | 21 ++++-- testing/postgres/integration_test.go | 2 +- 3 files changed, 109 insertions(+), 14 deletions(-) diff --git a/test_data/pg_dump.test.out b/test_data/pg_dump.test.out index b4bb9ba25..4de529431 100644 --- a/test_data/pg_dump.test.out +++ b/test_data/pg_dump.test.out @@ -18,7 +18,6 @@ SET row_security = off; SET default_tablespace = ''; -CREATE DATABASE test_fka; -- -- Name: cart; Type: TABLE; Schema: public; Owner: postgres -- @@ -44,6 +43,50 @@ CREATE TABLE public.products ( ALTER TABLE public.products OWNER TO postgres; +-- +-- Name: test; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.test ( + id integer NOT NULL, + t timestamp without time zone, + tz timestamp with time zone +); + + +ALTER TABLE public.test OWNER TO postgres; + +-- +-- Name: test2; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.test2 ( + id integer NOT NULL, + a boolean, + b bytea, + c date, + d double precision, + e integer, + f numeric(38, 9), + g text +); + + +ALTER TABLE public.test2 OWNER TO postgres; + +-- +-- Name: test3; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.test3 ( + id integer NOT NULL, + a integer[], + b text[] +); + + +ALTER TABLE public.test3 OWNER TO postgres; + -- -- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres -- @@ -66,19 +109,65 @@ OLJCESPC7Z armchair 54.99 0MWERIJB8H cupboard 59.99 \. +-- +-- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.test (id, t, tz) FROM stdin; +1 2019-10-28 15:00:00 2019-10-28 19:00:00+00 +2 2019-10-28 15:00:00 2019-10-28 15:00:00+00 +3 2019-10-28 15:00:00 2019-10-28 19:00:00+00 +4 2019-10-28 15:00:00.123457 2019-10-28 15:00:00.123457+00 +\. + +-- +-- Data for Name: test2; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.test2 (id, a, b, c, d, e, f, g) FROM stdin; +1 t \\x00010203deadbeef 2019-10-28 99.9 42 1234567890123456789012345678.123456789 hi +2 f \\x00010203424344 2018-11-28 12.3 6 1234567890123456789012345.1223456 hello +\. + + +-- +-- Data for Name: test3; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.test3 (id, a, b) FROM stdin; +1 {1,2,3} {1,nice,foo} +2 {6} {i,am,not,a,number} +\. + -- -- Name: cart cart_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.cart ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); - + + +-- +-- Name: test2 test2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.test2 + ADD CONSTRAINT test2_pkey PRIMARY KEY (id); + + +-- +-- Name: test3 test3_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.test3 + ADD CONSTRAINT test3_pkey PRIMARY KEY (id); + -- --- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- Name: test test_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- -ALTER TABLE ONLY public.products - ADD CONSTRAINT products_pkey PRIMARY KEY (productid); +ALTER TABLE ONLY public.test + ADD CONSTRAINT test_pkey PRIMARY KEY (id); -- -- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres @@ -99,4 +188,3 @@ GRANT ALL ON SCHEMA public TO PUBLIC; -- -- PostgreSQL database dump complete -- - diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index e5f7a9e12..de55dfc8d 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -331,12 +331,12 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { defer client.Close() //comment this out - stmt1 := spanner.Statement{SQL: `SELECT * FROM products WHERE product_id = "zxi-631"`} - iter1 := client.Single().Query(ctx, stmt1) - defer iter1.Stop() - _, err = iter1.Next() + stmt := spanner.Statement{SQL: `SELECT * FROM products WHERE product_id = "zxi-631"`} + iter := client.Single().Query(ctx, stmt) + defer iter.Stop() + _, err = iter.Next() assert.Equal(t, nil, err, "Expected rows in 'products'") - //-- + //- mutation := spanner.Delete("products", spanner.Key{"zxi-631"}) @@ -345,8 +345,15 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { t.Fatalf("Failed to delete row: %v", err) } - stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE product_id = "zxi-631"`} - iter := client.Single().Query(ctx, stmt) + stmt = spanner.Statement{SQL: `SELECT * FROM products WHERE productid = "zxi-631"`} + iter = client.Single().Query(ctx, stmt) + defer iter.Stop() + row, _ := iter.Next() + + assert.Nil(t, row, "Rows still exists with given key in 'products'") + + stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE product_id = "zxi-631"`} + iter = client.Single().Query(ctx, stmt) defer iter.Stop() _, err = iter.Next() diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 60961bd47..5b23ea14d 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -446,7 +446,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { defer iter.Stop() row, _ = iter.Next() - assert.Nil(t, row, "Rows still exists with given key in 'products'") + assert.NotNil(t, row, "Rows were incorrectly deleted with given key in 'products'") stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '1YMWWN1N4O'`} iter = client.Single().Query(ctx, stmt) From a1884752d65414c7ee7150999b1938baad491eab Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 10:59:29 +0000 Subject: [PATCH 44/46] mysql exp --- testing/mysql/integration_test.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index de55dfc8d..ea69ceffc 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -229,11 +229,12 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) filePrefix := filepath.Join(tmpdir, dbName) - // host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") + host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) - err := common.RunCommand(args, "emulator-test-project") + args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) + // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) + // err := common.RunCommand(args, "emulator-test-project") + err := common.RunCommand(args, projectID) common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) From 663353e39812961400201582ec95921fcaa71c4d Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 11:13:43 +0000 Subject: [PATCH 45/46] mysql exp --- testing/mysql/integration_test.go | 28 ++++++----------- testing/postgres/integration_test.go | 47 ++-------------------------- 2 files changed, 13 insertions(+), 62 deletions(-) diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index ea69ceffc..0ec1bc25f 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -122,10 +122,10 @@ func TestIntegration_MYSQL_SchemaAndDataSubcommand(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), os.Getenv("MYSQLDATABASE"), os.Getenv("MYSQLPWD") - envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLDATABASE", "MYSQLPWD"}) + // envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLDATABASE", "MYSQLPWD"}) args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) err := common.RunCommand(args, projectID) - common.RestoreEnvVariables(envVars) + // common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) } @@ -230,12 +230,12 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") - envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) + // envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) // err := common.RunCommand(args, "emulator-test-project") err := common.RunCommand(args, projectID) - common.RestoreEnvVariables(envVars) + // common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) } @@ -331,34 +331,26 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() - //comment this out - stmt := spanner.Statement{SQL: `SELECT * FROM products WHERE product_id = "zxi-631"`} + // Verifying that the row to be deleted exists in child - otherwise test will incorrectly pass + stmt := spanner.Statement{SQL: `SELECT * FROM cart WHERE product_id = "zxi-631"`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() _, err = iter.Next() - assert.Equal(t, nil, err, "Expected rows in 'products'") - //- + assert.Equal(t, nil, err, "Expected rows with product_id \"zxi-631\" in 'cart'") + // Deleting row from Spanner DB mutation := spanner.Delete("products", spanner.Key{"zxi-631"}) - _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) if err != nil { t.Fatalf("Failed to delete row: %v", err) } - stmt = spanner.Statement{SQL: `SELECT * FROM products WHERE productid = "zxi-631"`} - iter = client.Single().Query(ctx, stmt) - defer iter.Stop() - row, _ := iter.Next() - - assert.Nil(t, row, "Rows still exists with given key in 'products'") - + // Testing ON DELETE CASCADE i.e. row from child (cart) should have been automatically deleted stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE product_id = "zxi-631"`} iter = client.Single().Query(ctx, stmt) defer iter.Stop() _, err = iter.Next() - - assert.Equal(t, iterator.Done, err, "Expected no rows in 'cart' with deleted product_id") //testing ON DELETE CASCADE + assert.Equal(t, iterator.Done, err, "Expected no rows in 'cart' with deleted product_id") } // // Generated DDL always contains Foreign Key Definitions as 'ALTER TABLE' statements diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index 5b23ea14d..cd23a6b7a 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -252,45 +252,6 @@ func TestIntegration_POSTGRES_ForeignKeyActionMigration(t *testing.T) { } defer dropDatabase(t, dbURI) checkForeignKeyActions(ctx, t, dbURI) - - // dbName := "postgres-foreignkey-actions" - // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - // filePrefix := filepath.Join(tmpdir, dbName) - - // // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") - // envVars := common.ClearEnvVariables([]string{"PGHOST", "PGUSER", "PGPASSWORD"}) - // // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=postgres-foreignkey-actions'", constants.POSTGRES, filePrefix) - // err := common.RunCommand(args, "emulator-test-project") - // common.RestoreEnvVariables(envVars) - // if err != nil { - // t.Fatal(err) - // } - // defer dropDatabase(t, dbURI) - - // checkForeignKeyActions(ctx, t, dbURI) - - // ------------------ - // now := time.Now() - // g := utils.GetUtilInfoImpl{} - // dbName, _ := g.GetDatabaseName(constants.POSTGRES, now) - // dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - // filePrefix := filepath.Join(tmpdir, dbName) - - // // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("test_fka"), os.Getenv("PGPWD") - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s'", constants.POSTGRES, filePrefix, dbName) - // // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName) - // err := common.RunCommand(args, projectID) - - // // args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=%s,dbName=%s'", filePrefix, instanceID, dbName) - // // err := common.RunCommand(args, projectID) - // if err != nil { - // t.Fatal(err) - // } - // defer dropDatabase(t, dbURI) - - // checkForeignKeyActions(ctx, t, dbURI) - } func checkResults(t *testing.T, dbURI string) { @@ -429,6 +390,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() + // Verifying that the row to be deleted exists in parent stmt := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() @@ -436,24 +398,21 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { assert.NotNil(t, row, "No row exists with given key in 'products'") + // Deleting row from Spanner DB mutation := spanner.Delete("products", spanner.Key{"1YMWWN1N4O"}) - _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) - // assert.Error(t, err, "Expected ON DELETE NO ACTION to prevent deletion") + // Testing ON DELETE NO ACTION - row shouldn't have been deleted in parent and child stmt = spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} iter = client.Single().Query(ctx, stmt) defer iter.Stop() row, _ = iter.Next() - assert.NotNil(t, row, "Rows were incorrectly deleted with given key in 'products'") stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '1YMWWN1N4O'`} iter = client.Single().Query(ctx, stmt) defer iter.Stop() row, err = iter.Next() - - assert.Nil(t, err, "Error fetching rows from 'cart'") //testing ON DELETE NO ACTION assert.NotNil(t, row, "Expected rows in 'cart' to still exist") // client, err := spanner.NewClient(ctx, dbURI) From a93721cfae9f2256adcfaafa467e6330a3765555 Mon Sep 17 00:00:00 2001 From: aasthabharill-google Date: Thu, 18 Jul 2024 11:31:16 +0000 Subject: [PATCH 46/46] final? --- .../integration-tests-against-emulator.yaml | 1 - test_data/pg_foreignkeyaction_dump.test.out | 103 ------------------ testing/mysql/integration_test.go | 30 +---- testing/postgres/integration_test.go | 95 ++-------------- 4 files changed, 9 insertions(+), 220 deletions(-) delete mode 100644 test_data/pg_foreignkeyaction_dump.test.out diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml index d2a263733..8a09d01bb 100644 --- a/.github/workflows/integration-tests-against-emulator.yaml +++ b/.github/workflows/integration-tests-against-emulator.yaml @@ -105,7 +105,6 @@ jobs: sudo apt-get -yq install postgresql-client - run: psql --version - run: psql -f test_data/pg_dump.test.out - # - run: psql -f test_data/pg_foreignkeyaction_dump.test.out # init a MySQL database from the test_data - run: mysql --version diff --git a/test_data/pg_foreignkeyaction_dump.test.out b/test_data/pg_foreignkeyaction_dump.test.out deleted file mode 100644 index c8ddc6732..000000000 --- a/test_data/pg_foreignkeyaction_dump.test.out +++ /dev/null @@ -1,103 +0,0 @@ --- --- PostgreSQL database dump --- - --- Dumped from database version 9.6.16 --- Dumped by pg_dump version 12.1 (Debian 12.1-1) - -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - -SET default_tablespace = ''; - -CREATE DATABASE test_fka; --- --- Name: cart; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.cart ( - productid text NOT NULL, - userid text NOT NULL, - quantity bigint -); - - -ALTER TABLE public.cart OWNER TO postgres; - --- --- Name: products; Type: TABLE; Schema: public; Owner: postgres --- - -CREATE TABLE public.products ( - productid text NOT NULL, - description text, - price numeric(10, 2) -); - -ALTER TABLE public.products OWNER TO postgres; - --- --- Data for Name: cart; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.cart (productid, userid, quantity) FROM stdin; -1YMWWN1N4O 64e10503-9b6f-48e5-9e9c-2b7818ee322d 2 -OLJCESPC7Z 419af207-ac61-4131-b1a6-bb627405e92d 1 -OLJCESPC7Z 31ad80e3-182b-42b0-a164-b4c7ea976ce4 125 -OLJCESPC7Z 17b14ec1-5a42-4087-bb3f-3ebd32bacf2a 106 -2KJHWIUS9K 23n81hi2-8n35-4820-an9w-7febu5sfyv8f 3 -\. - --- --- Data for Name: products; Type: TABLE DATA; Schema: public; Owner: postgres --- - -COPY public.products (productid, description, price) FROM stdin; -1YMWWN1N4O bookshelf 45.50 -OLJCESPC7Z armchair 54.99 -2KJHWIUS9K sofa 125.00 -0MWERIJB8H cupboard 59.99 -\. - --- --- Name: cart cart_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.cart - ADD CONSTRAINT cart_pkey PRIMARY KEY (userid, productid); - --- --- Name: products products_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres --- - -ALTER TABLE ONLY public.products - ADD CONSTRAINT products_pkey PRIMARY KEY (productid); - --- --- Name: cart fk_cart_products; Type: CONSTRAINT; Schema: public; Owner: postgres --- -ALTER TABLE ONLY public.cart - ADD CONSTRAINT fk_cart_products FOREIGN KEY (productid) REFERENCES public.products (productid) ON DELETE NO ACTION ON UPDATE RESTRICT; - --- --- Name: SCHEMA public; Type: ACL; Schema: -; Owner: cloudsqlsuperuser --- - -REVOKE ALL ON SCHEMA public FROM cloudsqladmin; -REVOKE ALL ON SCHEMA public FROM PUBLIC; -GRANT ALL ON SCHEMA public TO cloudsqlsuperuser; -GRANT ALL ON SCHEMA public TO PUBLIC; - - --- --- PostgreSQL database dump complete --- - diff --git a/testing/mysql/integration_test.go b/testing/mysql/integration_test.go index 0ec1bc25f..690b1adb6 100644 --- a/testing/mysql/integration_test.go +++ b/testing/mysql/integration_test.go @@ -122,10 +122,8 @@ func TestIntegration_MYSQL_SchemaAndDataSubcommand(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), os.Getenv("MYSQLDATABASE"), os.Getenv("MYSQLPWD") - // envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLDATABASE", "MYSQLPWD"}) args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) err := common.RunCommand(args, projectID) - // common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) } @@ -230,12 +228,8 @@ func TestIntegration_MYSQL_ForeignKeyActionMigration(t *testing.T) { filePrefix := filepath.Join(tmpdir, dbName) host, user, srcDb, password := os.Getenv("MYSQLHOST"), os.Getenv("MYSQLUSER"), "test_foreign_key_action_data", os.Getenv("MYSQLPWD") - // envVars := common.ClearEnvVariables([]string{"MYSQLHOST", "MYSQLUSER", "MYSQLPWD"}) args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s'", constants.MYSQL, filePrefix, host, user, srcDb, password, instanceID, dbName) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=root,dbName=test_foreign_key_action_data,password=root' -target-profile='instance=test-instance,dbName=mysql-foreignkey-actions'", constants.MYSQL, filePrefix) - // err := common.RunCommand(args, "emulator-test-project") err := common.RunCommand(args, projectID) - // common.RestoreEnvVariables(envVars) if err != nil { t.Fatal(err) } @@ -255,6 +249,7 @@ func TestIntegration_MySQLDUMP_ForeignKeyActionMigration(t *testing.T) { dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) runSchemaAndDataSubcommand(t, dbName, dbURI, filePrefix, dumpFilePath) + defer dropDatabase(t, dbURI) checkForeignKeyActions(ctx, t, dbURI) } @@ -338,7 +333,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { _, err = iter.Next() assert.Equal(t, nil, err, "Expected rows with product_id \"zxi-631\" in 'cart'") - // Deleting row from Spanner DB + // Deleting row from parent table in Spanner DB mutation := spanner.Delete("products", spanner.Key{"zxi-631"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) if err != nil { @@ -353,27 +348,6 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { assert.Equal(t, iterator.Done, err, "Expected no rows in 'cart' with deleted product_id") } -// // Generated DDL always contains Foreign Key Definitions as 'ALTER TABLE' statements -// // and will always define the ON DELETE action. Spanner does not support -// // ON UPDATE and this should not be a part of the DDL. -// func checkForeignKeyActions(ctx context.Context, t *testing.T, client *spanner.Client, dbURI string) { - -// resp, err := databaseAdmin.GetDatabaseDdl(ctx, &databasepb.GetDatabaseDdlRequest{Database: dbURI}) -// if err != nil { -// t.Fatalf("Could not read DDL from database %s: %v", dbURI, err) -// } -// for _, stmt := range resp.Statements { -// if strings.Contains(stmt, "ALTER TABLE ") && strings.Contains(stmt, "FOREIGN KEY") { -// assert.True(t, strings.Contains(stmt, "ON DELETE"), "Missing ON DELETE action") -// assert.False(t, strings.Contains(stmt, "ON UPDATE"), "Unexpected ON UPDATE action") - -// if strings.Contains(stmt, "cart") { -// assert.True(t, strings.Contains(stmt, "ON DELETE CASCADE")) -// } -// } -// } -// } - func onlyRunForEmulatorTest(t *testing.T) { if os.Getenv("SPANNER_EMULATOR_HOST") == "" { t.Skip("Skipping tests only running against the emulator.") diff --git a/testing/postgres/integration_test.go b/testing/postgres/integration_test.go index cd23a6b7a..32610d706 100644 --- a/testing/postgres/integration_test.go +++ b/testing/postgres/integration_test.go @@ -18,7 +18,6 @@ import ( "context" "flag" "fmt" - "io" "io/ioutil" "log" "math/big" @@ -177,7 +176,6 @@ func TestIntegration_POSTGRES_SchemaAndDataSubcommand(t *testing.T) { defer dropDatabase(t, dbURI) checkResults(t, dbURI) - // printReferentialConstraints(ctx, dbURI) } func TestIntegration_POSTGRES_SchemaSubcommand(t *testing.T) { @@ -211,16 +209,11 @@ func TestIntegration_PGDUMP_ForeignKeyActionMigration(t *testing.T) { now := time.Now() g := utils.GetUtilInfoImpl{} dbName, _ := g.GetDatabaseName(constants.PGDUMP, now) - // dbName := "pgdump-fka" dbURI := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectID, instanceID, dbName) - // dataFilepath := "../../test_data/pg_foreignkeyaction_dump.test.out" dataFilepath := "../../test_data/pg_dump.test.out" filePrefix := filepath.Join(tmpdir, dbName) - // host, user, srcDb, password := os.Getenv("PGHOST"), os.Getenv("PGUSER"), "test_fka", os.Getenv("PGPASSWORD") - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=%s,user=%s,dbName=%s,password=%s' -target-profile='instance=%s,dbName=%s' < %s", constants.POSTGRES, filePrefix, host, user, srcDb, password, instanceID, dbName, dataFilepath) - // args := fmt.Sprintf("schema-and-data -source=%s -prefix=%s -source-profile='host=localhost,user=postgres,dbName=test_fka,password=postgres' -target-profile='instance=test-instance,dbName=%s' < %s", constants.POSTGRES, filePrefix, dataFilepath, dbName) args := fmt.Sprintf("schema-and-data -prefix %s -source=postgres -target-profile='instance=test-instance,dbName=%s' < %s", filePrefix, dbName, dataFilepath) err := common.RunCommand(args, "emulator-test-project") if err != nil { @@ -390,7 +383,7 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { } defer client.Close() - // Verifying that the row to be deleted exists in parent + // Verifying that the row to be deleted exists in parent - otherwise testing would be incorrect stmt := spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} iter := client.Single().Query(ctx, stmt) defer iter.Stop() @@ -398,100 +391,26 @@ func checkForeignKeyActions(ctx context.Context, t *testing.T, dbURI string) { assert.NotNil(t, row, "No row exists with given key in 'products'") - // Deleting row from Spanner DB + // Deleting row from parent table in Spanner DB mutation := spanner.Delete("products", spanner.Key{"1YMWWN1N4O"}) _, err = client.Apply(ctx, []*spanner.Mutation{mutation}) + // check iska behaviour + if err != nil { + t.Fatalf("Failed to delete row: %v", err) + } // Testing ON DELETE NO ACTION - row shouldn't have been deleted in parent and child stmt = spanner.Statement{SQL: `SELECT * FROM products WHERE productid = '1YMWWN1N4O'`} iter = client.Single().Query(ctx, stmt) defer iter.Stop() row, _ = iter.Next() - assert.NotNil(t, row, "Rows were incorrectly deleted with given key in 'products'") + assert.NotNil(t, row, "Expected rows in 'products' to still exist") stmt = spanner.Statement{SQL: `SELECT * FROM cart WHERE productid = '1YMWWN1N4O'`} iter = client.Single().Query(ctx, stmt) defer iter.Stop() row, err = iter.Next() assert.NotNil(t, row, "Expected rows in 'cart' to still exist") - - // client, err := spanner.NewClient(ctx, dbURI) - // if err != nil { - // log.Fatal(err) - // } - // defer client.Close() - // fmt.Println("dbURI- ", dbURI) - - // stmt := spanner.Statement{SQL: `SELECT table_name FROM information_schema.tables WHERE table_schema = ''`} - // iter := client.Single().Query(ctx, stmt) - // defer iter.Stop() - - // fmt.Println("Tables in Spanner database:") - // for { - // row, err := iter.Next() - // if err == io.EOF { - // break - // } - // if err != nil { - // log.Fatal(err) - // } - - // var tableName string - // if err := row.Columns(&tableName); err != nil { - // log.Fatal(err) - // } - - // fmt.Println("- ", tableName) - // } -} -func printReferentialConstraints(ctx context.Context, dbURI string) { - client, err := spanner.NewClient(ctx, dbURI) - if err != nil { - log.Fatal(err) - } - defer client.Close() - fmt.Println("dbURI- ", dbURI) - - fmt.Println("\nReferential Constraints:") - stmt := spanner.Statement{SQL: ` - SELECT - rc.constraint_schema AS TABLE_SCHEMA, - ccu.table_name AS REFERENCED_TABLE_NAME, - kcu.column_name AS COLUMN_NAME, - ccu.column_name AS REF_COLUMN_NAME, - rc.constraint_name AS CONSTRAINT_NAME, - rc.delete_rule AS ON_DELETE, - rc.update_rule AS ON_UPDATE -FROM - INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc -INNER JOIN - INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu - ON rc.constraint_name = kcu.constraint_name - AND rc.constraint_schema = kcu.constraint_schema -INNER JOIN - INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu - ON rc.constraint_name = ccu.constraint_name - AND rc.constraint_schema = ccu.constraint_schema - `} - - iter := client.Single().Query(ctx, stmt) - defer iter.Stop() - - for { - row, err := iter.Next() - if err == io.EOF { - break - } - if err != nil { - log.Fatal(err) - } - - var refTable, refColumn, constraint, referencedTable, referencedColumn string - if err := row.Columns(&refTable, &refColumn, &constraint, &referencedTable, &referencedColumn); err != nil { - log.Fatal(err) - } - fmt.Printf(" Constraint: %s, From: %s.%s, To: %s.%s\n", constraint, refTable, refColumn, referencedTable, referencedColumn) - } } func onlyRunForEmulatorTest(t *testing.T) {